iOS 获取硬件信息

iOS 获取硬件信息

iOS 系统总以保护用户隐私标榜,从禁止获取 Mac 地址,禁止获取 UDID,禁止获取手机号码,禁止获取IMEI等等。。。,iOS 开发人员总是在苹果限制的道路上斗智斗勇!

下表中不包括用私有API获取硬件信息,因为使用私有API会被禁止上架。

信息类型 类型说明 能否获取 示例 备注
设备型号 具体那一款手机 支持 iPhone,iPad,iPod 通过 systemInfo.machine 获取
系统版本 设备系统的版本 支持 iPhone9,1,iPhone9,2 通过 systemInfo.machine 获取
屏幕分辨率 手机屏幕分辨率 支持 568×320,667×375 包括物理分辨率和逻辑分辨率
IMEI 手机设备唯一标识 不支持 493002407599521 iOS 5 之后被禁止获取
IMSI sim 卡用户身份识别码 不支持 460030912121001 只能获取部分代号
sim 卡序列号 sim 卡的唯一标识 不支持 手机卡背面 4 行共 20 个数字 无法获取
手机号码 一般为11位数字 不支持 18888888888 iOS 5 之后被禁止获取,获取值都为 nil
运营商信息 提供网络服务的供应商 支持 中国移动,中国联通,中国电信 有多种方法获取
设备内存 手机内存 RAM 支持 2000.0MB 可通过系统 API 获取
App 占用内存 App 占用的内存 RAM 支持 43.5MB 可通过系统 API 获取
磁盘总空间 设备存储的总大小 支持 16384.0MB 可通过系统 API 获取
磁盘空闲空间 设备存储未使用空间大小 支持 2200.0MB 可通过系统 API 获取
磁盘已使用空间 设备存储未使用空间大小 支持 2200.0MB 可通过系统 API 获取
CPU 型号 CPU 类型 支持 CPU_TYPE_X86_64 CPU 类型
CPU 个数 CPU 是几核的 支持 4,核心数为 4 CPU 核心数
手机主板型号 手机主板硬件的编号 不支持 无法获取 无法获取
是否破解 手机是否越狱 不准确 通过判断是否存在某些文件 新越狱工具可能检测不到
mac 地址 网卡的物理地址 不支持 02:00:00:00:00:00 iOS 7 之后被禁止获取
当前网络环境 当前手机使用 WiFi/4G 支持 2G/3G/4G/WIFI 系统方法获取或读取状态栏获取
局域网 IP 手机连入网络的局域网地址 不准确 192.168.1.3 使用 VPN 等复杂网络可能会不准确
IP 手机连入网络的地址 不支持 111.200.9.21 不支持本地获取,可通过后台返回
GPS 卫星定位 不准确 获取经纬度反地理编码 地下室等 GPS 信号弱有较大误差
设备序列号 设备唯一标识 不准确 iOS 的 UUID 删除重装会变,重置位置和隐私会变
APP 更新时间 软件更新时间或首次安装时间 支持 2019-06-01 12:32:38 可读取info.plist创建时间
检测代理 设备使用代理 IP 支持 YES/NO 可准确检测设备是否设置了代理
电池电量 当前设备电池电量百分比 支持 0.53 表示剩余电量 53% 取值范围 0 至 1.0,-1.0 表示无法识别电池

部分详细说明

  • 手机型号:通过 systemInfo.machine 获取判断是哪种设备。
  • 系统版本:通过 systemInfo.machine 获取设备型号后判断,例如 iPhone9,1 对应 iPhone7,iPhone9,2 对应 iPhone7 Plus。
  • 屏幕分辨率:包括物理分辨率和逻辑分辨率,物理分辨率=逻辑分辨率×屏幕缩放比(就是的 1x,2x,3x),1x 设备现在基本绝迹,2x 对应 4 寸和 4.7 屏幕,3x 对应 Plus 设备的 5.5 寸屏幕。
  • IMEI:IMEI(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,是由 15 位数字组成的”电子串号”,它与每台移动电话机一一对应,而且该码是全世界唯一的。电话拨号键盘输入 *#06# 即可显示。
  • IMSI:sim 卡中用户身份识别码,储存在 sim 卡中。iOS 设备现在只能通过 CTTelephonyNetworkInfo 获取部分信息,如中国 MCC 代号460,MNC 中国移动为 00,02,07,IMSI 是由信息拼接而成,具体拼接方法 Google。
  • sim卡序列号:sim 卡的唯一标识,就是 sim 卡背面的四行数字,共 20 个数字。
  • 运营商信息:有多种方法获取,通过CTTelephonyNetworkInfo框架获取,或者通过遍历状态栏StatusBar图标文字获取;其中如果未安装sim卡时,国行iPhone通过CTTelephonyNetworkInfo获取为默认值中国移动。
  • 运行内存:手机运行程序时的内存RAM(不是存储空间),可通过手机型号反推,通过API获取的不准确。
  • CPU 型号:能够获取 CPU 类型(例如 32 位 CPU 和 64 位CPU)和核心数(双核单核)。
  • mac 地址:iOS 7 之后被禁止获取,所有手机获取到的都是 02:00:00:00:00:00。
  • APP 安装时间及更新时间:可用沙盒文件(例如 info.plist)创建时间来计算实际安装时间,也就是更新时间。至于 App 首次安装时间,可在沙盒存储一个时间标记,有值读取即可,无值时存入本次的安装时间。

获取硬件信息截图

设备信息
设备信息

如果您觉得有所帮助,GitHub LFPhoneInfoDemo上赏个Star ⭐️,您的鼓励是我前进的动力!