MobileInfo
项目地址:guxiaonian/MobileInfo
Table of Contents
- 数据信息
- App 信息获取
- App 安装列表获取
- 音量数据获取
- 版本数据获取
- 电池数据获取
- Cpu 实时数据获取
- 蓝牙数据获取
- 系统 Build 数据获取
- 摄像头数据获取
- Cpu 数据获取
- 调试数据获取
- host 数据获取
- 模拟器数据获取
- hook 数据获取
- 本地数据获取
- 内存数据获取
- 多开数据获取
- 网络数据获取
- root 数据获取
- 屏幕数据获取
- SDCard 数据获取
- 设置数据获取
- 信号数据获取
- 手机卡数据获取
- 堆栈数据获取
- 唯一 ID 数据获取
- UA 数据获取
- Xposed 数据获取
依赖
implementation 'fairy.easy:mobilehardware:{latest-version}'
数据信息
App 信息获取
代码示例
PackageHelper.getPackageInfo(getApplicationContext())
数据格式
{"appName":"MobileInfo","packageName":"com.mobile.mobileinfo","packageSign":"521cec5eb6984bc70f5b2a27e437b979","appVersionCode":"1","appVersionName":"1.0","targetSdkVersion":"27","minSdkVersion":"14"}
数据键 | 数据类型 | 数据解释 |
---|---|---|
appName | String | app 名字 |
packageName | String | app 包名 |
packageSign | String | app 包签名 |
appVersionCode | String | app 版本号 |
appVersionName | String | app 版本名 |
targetSdkVersion | String | 目标系统版本号 |
minSdkVersion | String | 最低系统版本号 |
App 安装列表获取
代码示例
ListAppHelper.mobListApp(getApplicationContext())
数据格式
[{"packageName":"com.huawei.android.tips","versionName":"1.0","versionCode":"1","isSystem":"false"}
]
数据键 | 数据类型 | 数据解释 |
---|---|---|
packageName | String | app 包名 |
appVersionCode | String | app 版本号 |
appVersionName | String | app 版本名 |
isSystem | String | 是否是系统 app |
音量数据获取
代码示例
AudioHelper.mobGetMobAudio(getApplicationContext())
数据格式
{"maxVoiceCall":"15","currentVoiceCall":"3","maxSystem":"15","currentSystem":"0","maxRing":"15","currentRing":"0","maxMusic":"15","currentMusic":"0","maxAlarm":"15","currentAlarm":"0"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
maxVoiceCall | String | 最大通话音量 |
currentVoiceCall | String | 当前通话音量 |
maxSystem | String | 最大系统音量 |
currentSystem | String | 当前系统音量 |
maxRing | String | 最大铃声音量 |
currentRing | String | 当前铃声音量 |
maxMusic | String | 最大音乐音量 |
currentMusic | String | 当前音乐音量 |
maxAlarm | String | 最大提示声音音量 |
currentAlarm | String | 当前提示声音音量 |
版本数据获取
代码示例
BandHelper.mobGetBandInfo()
数据格式
{"baseBand":"21C30B323S006C000,21C30B323S006C000","innerBand":"STF-AL00 8.0.0.360(C00GT)","linuxBand":"$unknown"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
baseBand | String | 基带版本 |
innerBand | String | 内部版本 |
linuxBand | String | linux 内核版本 |
电池数据获取
代码示例
BatteryHelper.mobGetBattery(getApplicationContext())
数据格式
{"br":"74.0%","status":"charging","plugState":"usb","health":"good","present":"true","technology":"Li-poly","temperature":"33℃","voltage":"4.068V","power":"3100.0mAh"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
br | String | 电量百分比 |
status | String | 电池状态 |
plugState | String | 电池充电状态 |
health | String | 电池健康状况 |
present | String | 是否有电池 |
technology | String | 电池的技术制造 |
temperature | String | 电池温度 |
voltage | String | 电池电压 |
power | String | 电池总电量 |
Cpu 实时数据获取
代码示例
CpuInternals.getInstance().getCpuSampler().start();
CpuInternals.getInstance().getCpuSampler().getCpuList();
CpuInternals.getInstance().getCpuSampler().stop();
蓝牙数据获取
代码示例
BluetoothHelper.mobGetMobBluetooth(getApplicationContext())
数据格式
{"bluetoothAddress":"$unknown","isEnabled":"true","device":[{"name":"iPhone","address":"E4:9A:79:89:C7:24",}],"phoneName":"Honor"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
bluetoothAddress | String | 蓝牙地址 |
isEnabled | String | 蓝牙是否打开 |
device | JSONArray | 连接的手机的信息 |
name | String | 连接手机的蓝牙地址 |
address | String | 连接手机的蓝牙名字 |
phoneName | String | 手机设置的名字 |
系统 Build 数据获取
代码示例
BuildHelper.mobGetBuildInfo()
数据格式
{"board":"STF","bootloader":"unknown","brand":"HONOR","device":"HWSTF","display":"STF-AL00 8.0.0.360(C00GT)","fingerprint":"HONOR/STF-AL00/HWSTF:8.0.0/HUAWEISTF-AL00/360(C00GT):user/release-keys","hardware":"hi3660","host":"WUH1000129106","id":"HUAWEISTF-AL00","manufacturer":"HUAWEI","model":"STF-AL00","product":"STF-AL00","radio":"21C30B323S006C000,21C30B323S006C000","serial":"8BN0217901012695","tags":"release-keys","time":"1553851883000","type":"user","user":"test","osVersion":"HONOR/STF-AL00/HWSTF:8.0.0/HUAWEISTF-AL00/358(C00GT):user/release-keys","releaseVersion":"8.0.0","codeName":"$unknown","incremental":"360(C00GT)","sdkInt":"26","previewSdkInt":"0","securityPatch":"2019-04-05"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
board | String | 主板名称 |
bootloader | String | 系统引导程序版本号 |
brand | String | 系统定制商 |
device | String | 设备参数 |
display | String | 显示屏参数 |
fingerprint | String | 硬件名 |
hardware | String | 内核命令行中的硬件名 |
host | String | host |
id | String | 标签 |
manufacturer | String | 硬件厂商 |
model | String | 版本 |
product | String | 手机厂商 |
radio | String | 无线电固件的版本字符串 |
serial | String | 获取硬件序列号 |
tags | String | 描述 Build 的标签 |
time | String | time |
type | String | type |
user | String | user |
osVersion | String | os 版本 |
releaseVersion | String | 版本 |
codeName | String | 当前开发代码名称 |
incremental | String | 基础源代码控件用于表示此构建的内部值 |
sdkInt | String | SDK 的版本 |
previewSdkInt | String | SDK 的预览版本 |
securityPatch | String | 用户可见的安全补丁程序级别 |
摄像头数据获取
代码示例
CameraHelper.getCameraInfo(getApplicationContext())
数据格式
{"cameraInfo":[{"cameraFacing":"back","cameraLevel":"limited","cameraFlashInfo":"true","outputFormats":["raw_sensor","jpeg","private","yuv_420_888","depth16"]}]
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
cameraInfo | JSONArray | 摄像头信息 |
cameraFacing | String | 摄像头的位置 |
cameraLevel | String | 摄像头支持水平 |
cameraFlashInfo | String | 是否有闪光灯 |
outputFormats | JSONArray | 摄像头支持的格式 |
Cpu 数据获取
代码示例
CpuHelper.mobGetCpuInfo()
数据格式
{"cpuName":"0","cpuFreq":"1844000KHZ","cpuMaxFreq":"1844000KHZ","cpuMinFreq":"533000KHZ","cpuHardware":"hi3660","cpuCores":"8","cpuTemp":"36℃","cpuAbi":"arm64-v8a,armeabi-v7a,armeabi"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
cpuName | String | CPU 名字 |
cpuFreq | String | CPU 频率 |
cpuMaxFreq | String | CPU 最大频率 |
cpuMinFreq | String | CPU 最小频率 |
cpuHardware | String | CPU 硬件名 |
cpuCores | String | CPU 核数 |
cpuTemp | String | CPU 温度 |
cpuAbi | String | CPU 架构 |
调试数据获取
代码示例
DebugHelper.getDebuggingData(getApplicationContext())
数据格式
{"isOpenDebug":"true","isDebugVersion":"true","isDebugging":"false","isReadProcStatus":"false","isAllowMockLocation":"false"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
isOpenDebug | String | 是否开启了调试模式 |
isDebugVersion | String | 是否是 Debug 版本 |
isDebugging | String | 是否正在调试 |
isReadProcStatus | String | 读取 id 判断是否在调试 |
isAllowMockLocation | String | 是否打开位置模拟 |
host 数据获取
代码示例
DnsHelper.mobDNS("ip")
模拟器数据获取
代码示例
EmulatorHelper.mobCheckEmulator(getApplicationContext())
数据格式
{"checkBuild":"false","checkPkg":"false","checkPipes":"false","checkQEmuDriverFile":"false","checkHasLightSensorManager":"false","checkCpuInfo":"false"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
checkBuild | String | build |
checkPkg | String | 包名修改 |
checkPipes | String | 管道检测 |
checkQEmuDriverFile | String | 驱动程序检测 |
checkHasLightSensorManager | String | 光传感器检测 |
checkCpuInfo | String | cpu 架构检测 |
hook 数据获取
代码示例
HookHelper.isXposedHook(getApplicationContext())
数据格式
{"xposedInfo":{"checkXposedPackage":"false","checkXposedHookMethod":"false","checkXposedJars":"false","checkClassLoader":"false","checkNativeMethod":"false","checkSystem":"false","checkExecLib":"false","checkCheckman":"false","checkXposedBridge":"false"},"substrateInfo":{"checkSubstratePackage":"false","checkSubstrateHookMethod":"false","checkSubstrateJars":"false"},"fridaInfo":{"checkRunningProcesses":"false","checkFridaJars":"false"}
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
xposedInfo | JSONObject | Xposed 信息 |
checkXposedPackage | String | 包名检测 |
checkXposedHookMethod | String | 检测调用栈中的可疑方法 |
checkXposedJars | String | 检测内存中可疑的 jars |
checkClassLoader | String | 检测载入 Xposed 工具类 |
checkNativeMethod | String | 判断系统方法调用钩子 |
checkSystem | String | 虚拟检测 Xposed 环境 |
checkExecLib | String | 寻找 Xposed 运行库文件 |
checkCheckman | String | 内核查找 Xposed 链接库 |
checkXposedBridge | String | 环境变量特征字判断 |
substrateInfo | JSONObject | Substrate 信息 |
checkSubstratePackage | String | 包名检测 |
checkSubstrateHookMethod | String | 检测调用栈中的可疑方法 |
checkSubstrateJars | String | 检测内存中可疑的 jars |
fridaInfo | JSONObject | Frida 信息 |
checkRunningProcesses | String | 检测进程信息 |
checkFridaJars | String | 检测内存中可疑的 jars |
本地数据获取
代码示例
LocalHelper.mobGetMobLocal()
数据格式
{"country":"CN","language":"zh"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
country | String | 当前国家 |
language | String | 当前语言 |
内存数据获取
代码示例
MemoryHelper.getMemoryInfo(getApplicationContext())
数据格式
{"ramMemoryTotal":"3.90 GB","ramMemoryAvailable":"1.56 GB","romMemoryAvailable":"40.22 GB","romMemoryTotal":"56.30 GB","sdCardMemoryAvailable":"40.20 GB","sdCardMemoryTotal":"56.28 GB"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
ramMemoryTotal | String | RAM 全部内存 |
ramMemoryAvailable | String | RAM 可用内存 |
romMemoryAvailable | String | ROM 可用内存 |
romMemoryTotal | String | ROM 全部内存 |
sdCardMemoryAvailable | String | 内存卡可用内存 |
sdCardMemoryTotal | String | 内存卡全部内存 |
多开数据获取
代码示例
MoreOpenHelper.checkVirtual(getApplicationContext())
数据格式
{"checkByPrivateFilePath":"false","checkByMultiApkPackageName":"false","checkByHasSameUid":"false"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
checkByPrivateFilePath | String | 检测私有路径 |
checkByMultiApkPackageName | String | maps 检测 |
checkByHasSameUid | String | ps 检测 |
网络数据获取
代码示例
NetWorkHelper.mobGetMobNetWork(getApplicationContext())
数据格式
{"type":"WIFI","networkAvailable":"true","haveIntent":"false","isFlightMode":"false","isNFCEnabled":"true","isHotspotEnabled":"false","hotspotSSID":"$unknown","hotspotPwd":"$unknown","encryptionType":"$unknown"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
type | String | 网络类型 |
networkAvailable | String | 网络是否可用 |
haveIntent | String | 是否开启数据流量 |
isFlightMode | String | 是否是飞行模式 |
isNFCEnabled | String | NFC 功能是否开启 |
isHotspotEnabled | String | 是否开启热点 |
hotspotSSID | String | 热点账号 |
hotspotPwd | String | 热点密码 |
encryptionType | String | 热点加密类型 |
root 数据获取
代码示例
RootHelper.mobileRoot(getApplicationContext())
屏幕数据获取
代码示例
ScreenHelper.mobGetMobScreen(getApplicationContext())
数据格式
{"densityScale":"3.0","densityDpi":"480","width":"1080","height":"1920","isScreenAuto":"false","isScreenAutoChange":"false","screenBrightness":"114","checkHideStatusBar":"false","checkHasNavigationBar":"false","getStatusBarHeight":"72","getNavigationBarHeight":"126"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
densityScale | String | 当前屏幕密度与标准屏幕密度的比值 |
densityDpi | String | 屏幕密度 |
width | String | 屏幕宽度 |
height | String | 屏幕高度 |
isScreenAuto | String | 亮度是否为自动调节 |
isScreenAutoChange | String | 屏幕亮度 |
screenBrightness | String | 屏幕是否开启自动旋转 |
checkHideStatusBar | String | 是否隐藏状态栏 |
checkHasNavigationBar | String | 是否显示底部导航栏 |
getStatusBarHeight | String | 获取状态栏高度 |
getNavigationBarHeight | String | 获取底部导航栏的高度 |
SDCard 数据获取
代码示例
SDCardHelper.mobGetSdCard()
数据格式
{"isSDCardEnable":"true","getSDCardPath":"/storage/emulated/0"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
isSDCardEnable | String | SDCard 是否可用 |
getSDCardPath | String | SDCard 的路径 |
设置数据获取
代码示例
SettingsHelper.mobGetMobSettings(getApplicationContext())
数据格式
{"androidId":"f573c0f6ca5178a2"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
androidId | String | androidId |
信号数据获取
代码示例
SignalHelper.mobGetNetRssi(getApplicationContext())
数据格式
{"type":"WIFI","bssid":"82:2a:a8:1b:58:de","ssid":"GPNL","ipAddress":"192.168.1.73","ipAddressIpv6":"$unknown","macAddress":"D8:C7:71:E4:48:B9","networkId":"93","linkSpeed":"86Mbps","rssi":"-53","level":"4","supplicantState":"COMPLETED","proxy":"false","proxyAddress":"$unknown","proxyPort":"$unknown"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
type | String | 网络类型 |
bssid | String | bssid |
ssid | String | ssid |
ipAddress | String | ipv4 |
ipAddressIpv6 | String | ipv6 |
macAddress | String | mac 地址 |
networkId | String | 网络 id |
linkSpeed | String | 网络速度 |
rssi | String | 信号强度 |
level | String | 信号等级 |
supplicantState | String | 连接状态 |
proxy | String | 是否开启代理 |
proxyAddress | String | 代理地址 |
proxyPort | String | 代理端口号 |
手机卡数据获取
代码示例
SimCardHelper.mobileSimInfo(getApplicationContext())
数据格式
{"sim1Imei":"$unknown","sim2Imei":"866957032955878","sim1Imsi":"460037121038284","sim2Imsi":"$unknown","simSlotIndex":"0","meid":"A000007ADE42E2","sim1ImsiOperator":"CT","sim2ImsiOperator":"$unknown","sim1Ready":"true","sim2Ready":"false","isTwoCard":"false","isHaveCard":"true","operator":"CT"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
sim1Imei | String | 卡 1IMEI |
sim2Imei | String | 卡 2IMEI |
sim1Imsi | String | 卡 1IMSI |
sim2Imsi | String | 卡 2IMSI |
simSlotIndex | String | 有流量的卡的卡槽 id |
meid | String | MEID |
sim1ImsiOperator | String | 卡 1 运营商 |
sim2ImsiOperator | String | 卡 2 运营商 |
sim1Ready | String | 卡 1 是否激活 |
sim2Ready | String | 卡 2 是否激活 |
isTwoCard | String | 是否有两张卡 |
isHaveCard | String | 是否有卡 |
operator | String | 流量卡运营商 |
堆栈数据获取
代码示例
StackSampler.getStackInfo(Thread.currentThread())
唯一 ID 数据获取
代码示例
PhoneIdHelper.getPsuedoUniqueID()
UA 数据获取
代码示例
UserAgentHelper.getDefaultUserAgent(getApplicationContext())
Xposed 数据获取
代码示例
XposedHookHelper.checkXposedInjet(getApplicationContext())
数据格式
{"xposedApp":"false","xposedImei":"false","xposedImsi":"false","xposedSerial":"false","xposedSsid":"false","xposedMac":"false","xposedAddress":"false","xposedAndroidId":"false","xposedLatitude":"false","xposedLongitude":"false"
}
数据键 | 数据类型 | 数据解释 |
---|---|---|
xposedApp | String | 是否 hook 了本 APP |
xposedImei | String | 是否 hook 了 IMEI |
xposedImsi | String | 是否 hook 了 IMSI |
xposedSerial | String | 是否 hook 了序列号 |
xposedSsid | String | 是否 hook 了 SSID |
xposedMac | String | 是否 hook 了 MAC 地址 |
xposedAddress | String | 是否 hook 了蓝牙地址 |
xposedAndroidId | String | 是否 hook 了 AndroidId |
xposedLatitude | String | 否 hook 了纬度 |
xposedLongitude | String | 是否 hook 了经度 |
MobileInfo相关推荐
- MobileInfo,如何成为杰出的程序员
| plugState | String | 电池充电状态 | | health | String | 电池健康状况 | | present | String | 是否有电池 | | technolo ...
- 010_JavaScript变量
1. JavaScript变量是存储数据值的容器. 2. 声明变量 2.1. 使用var(关键字)+变量名的方式声明变量. 2.2. 声明之后, 变量是没有值的: var carName; 2.3. ...
- 使用MyEclipse简单调用WebServices
使用MyEclipse调用第三方WebServices,第一步先新建一个Java工程项目: 在工程项目中点击右键,新建一个Web Service Client 一直next,到这个界面时,需要把wsd ...
- android wifi是否可用,Android判断网络是否可用、区分WiFi和数据、是否被安全软件拦截...
Android判断网络是否可用.区分WiFi和数据.是否被安全软件拦截 网络请求失败的原因有很多,手机没有连网是很常见的原因,这时需要提醒用户打开网络.怎么从众多可能的失败原因中判断是不是手机没连网呢 ...
- vue项目中获取当前设备 操作系统及版本,设备型号,ip,地区信息
1.获取ip,地区信息 使用搜狐IP地址查询接口(?后边设置编码)须连网! http://pv.sohu.com/cityjson http://pv.sohu.com/cityjson?ie=utf ...
- javaScripty笔记
<JavaScript-笔记> CSS的基本选择器 选择器分类 语法 标签选择器 标签名 类选择器 .类名 ID选择器 #ID 通用选择器 * CSS的扩展选择器选择元素 扩展选择器 作用 ...
- dya04 js_02
1 json的入门 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...
- Android监听手机网络变化
Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...
- Python零基础速成班-第13讲-Python正则表达式Regex
Python零基础速成班-第13讲-Python正则表达式Regex 学习目标 正则表达式 课后作业(4必做) 友情提示:将下文中代码拷贝到JupyterNotebook中直接执行即可,部分代码需要连 ...
最新文章
- TensorFlow tf.nn.conv2d是怎样实现卷积的?
- 优秀编程团队需要改善的12件事情
- 最常见的HTTP错误
- redis实现轮询算法_基于zookeeper或redis实现分布式锁
- 在WORD中插入带圈的数字的序号
- anjularjs ajax 调用,AngularJS AJAX调用的服务(AngularJS Ajax Call in Service
- LeetCode 475. 供暖器(双指针二分查找)
- UML设计的9种图例
- jmeter断言 判断响应数据是否符合预期
- 36. 打印数组的主次对角线
- 实战教你刷显卡BIOS
- 易灵思FPGA-软件Efinity和Modelsim联仿设置
- pyhton BOF图像检索
- 阴阳师手游服务器维护,12月30日阴阳师服务器维护更新公告
- 阿里云思维导图系列(五)阿里云关系型数据库产品全家福
- layui 怎么设置点击图片放大_layui图片如何放大
- 【ES】一、ES入门及JavaAPI使用
- CAD图纸无法复制粘贴该怎么办?
- Java并发编程: CyclicBarrier让多线程齐步走
- IDEA选中一列数据
热门文章
- 深圳云计算培训:文件属性 chattr
- 苹果手机拷贝功能 php,苹果iPhone上的“通用剪贴板”到底是什么?
- HOW2J.CN--JAVA学习笔记
- 【树莓派不吃灰】基础篇④ Raspberry Pi上搭建NodeJS运行环境
- 夜间模式的开启与关闭,父模板的制作(2017.11.2)
- 运动健身行业门店运营管理解决方案
- 计算机毕业设计Java创新学分认证系统(源码+系统+mysql数据库+lw文档)
- 计算机ps cs2考试,初中信息技术《认识Photoshop CS2的工作界面》答辩
- UL1017是什么标准?吸尘器UL1017报告
- 学Python这本书不错!