implementation 'fairy.easy:mobilehardware:{latest-version}'
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 | 最低系统版本号 |
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 | 电池总电量 |
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 | 手机设置的名字 |
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 | 摄像头支持的格式 |
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 | 是否打开位置模拟 |
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架构检测 |
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 | 热点加密类型 |
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 | 获取底部导航栏的高度 |
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())
PhoneIdHelper.getPsuedoUniqueID()
UserAgentHelper.getDefaultUserAgent(getApplicationContext())
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了经度 |