adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )
本文
前情提要
我们通过 SN 码和 IMEI 码来混合确定一个唯一的 android 手机。
SN码是Serial Number的缩写,有时也叫SerialNo,也就是产品序列号,产品序列是为了验证“产品的合法身份”而引入的一个概念,它是用来保障用户的正版权益,享受合法服务的;一套正版的产品只对应一组产品序列号。别称:机器码、认证码、注册申请码等。
adb 命令获取 android SN码方式:
adb shell getprop gsm.serial
IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的”电子串号”,它与每台移动电话机一一对应,而且该码是全世界唯一的。每一只移动电话机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。 IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受。
adb 获取 android imei 码:
adb shell service call iphonesubinfo 1
返回(右面的数字就是 imei码):
Result: Parcel(
0x00000000: 00000000 0000000f 00360038 00330039 '........8.6.9.3.'
0x00000010: 00300030 00320030 00380030 00310034 '0.0.0.2.0.8.4.1.'
0x00000020: 00330032 00000039 '2.3.9... ')
代码获取 IMEI码:
((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId();
代码获取 SN码:
SN 码不能直接获取,需要通过反射的方法获取。
反射工具类
/**
* 通过类对象,运行指定方法
* @param obj 类对象
* @param methodName 方法名
* @param params 参数值
* @return 失败返回null
*/
public static Object invokeDeclaredMethod(Object obj, String methodName, Object[] params) {
if (obj == null || TextUtils.isEmpty(methodName)) {
return null;
}
Class> clazz = obj.getClass();
try {
Class>[] paramTypes = null;
if (params != null) {
paramTypes = new Class[params.length];
for (int i = 0; i < params.length; ++i) {
paramTypes[i] = params[i].getClass();
}
}
Method method = clazz.getDeclaredMethod(methodName, paramTypes);
method.setAccessible(true);
return method.invoke(obj, params);
} catch (NoSuchMethodException e) {
Log.i("reflect", "method " + methodName + " not found in " + obj.getClass().getName());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
代码获取 SN 码
try {
String.valueOf(ReflectionUtil.invokeDeclaredMethod(new Build(), "getString", new Object[]{"gsm.serial"}));
} catch (Exception e) {
e.printStackTrace();
}
adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )相关推荐
- 电脑安装了金山毒霸,手机连接电脑,输入adb devices 无法获取设备信息的解决方法
打开金山毒霸软件,点击右上角的"设置中心" 点击"实用工具" 3.点击"手机助手",勾选"禁止手机助手组件" 4.重启电 ...
- adb 判断imei_adb 获取imei
{"data":{"id":"8000-000000437045-0","name":"SEO专题页栏目分发组 ...
- 获取电脑的 SN 码
wmic bios get serialnumber 转载于:https://www.cnblogs.com/lovling/p/10103752.html
- 驱动以SN码获取流程定制Barcode属性
Barcode为一串序列码,实际使用时往往为设备的SN码.以高通平台代码为例,Barcode获取为设备的SN码,即设备的Serial Number.则由此,Barcode值的获取可以参照高通平台的S ...
- 获取安卓设备唯一标识码并存储在SharedPRreferences中
前言:设备登陆时提供设备序列号信息传到后端,安卓设备日新月异,一些设备仅支持wifi上网即没插卡功能,且互联网企业APP根本无法限制统一用户设备,用户可使用虚拟机不断创建新模拟器来伪装成新设备用于注册 ...
- Unity功能——设备硬件绑定(通过设备SN码)
Unity 移动设备软件绑定(通过设备SN码) 原理: 已有一台设备(手机),想让自己应用(apk)仅在这一台手机上.通过获取手机的设备码(SN码),然后在程序中收入对应SN码,进行验证. 关键代码: ...
- Android专业获取设备信息如:AndroidID、唯一设备ID、制造商、型号、版本号、版本码等
在开发app中很多时候需要获取设备的基本信息等运用到项目中,就需要一些方法获取,网上资源中方法五花八门,有的还获取不到,令人头大,话不多说,鄙人整理了一套方法,话不多说真机测试如下>上图: 接下 ...
- 保姆级STM32F103C8T6做USB-TypeC版J-link OB(官方数据手册,硬件设计,固件烧录,序列号SN修改)
前言 项目开发要用到Jlink调试代码,每次连接都有用Jlink 的Jtag连接板子的SWD接口,又恰逢开发板升级,然后想着能否把Jlink集成在下一代的开发板上. 看了下手中的Jlink好像比较小 ...
- plus获取软件相关信息,plus获取设备信息唯一标识
Android平台5+ API提前生效,支持在plusready事件前调用 ios上plus是一直存在的,不涉及等ready事件.但安卓上还是需要等plus ready. 在安卓环境中,通常情况下需要 ...
最新文章
- html恢复按钮按下前的状态,如何通过点击按钮暂停和恢复html页面的执行
- 跟我学Spring3(8.2):对ORM的支持之集成Hibernate3
- Spark详解(八):Spark 容错以及高可用性HA
- Spring5参考指南:依赖注入
- ArcGIS实验教程——实验三十六:ArcGIS Python脚本的巧妙使用
- JPA和Hibernate级联类型的初学者指南
- 为啥不用ActiveRecord
- [PyTorch] 基于Python和PyTorch的线性拟合
- Tuxera NTFS 2021 for Mac(NTFS磁盘格式读写工具)
- antd的select的滚动条怎么才会出现_纵向滚动条对横向滚动条的影响
- SHA1散列算法及其C++实现
- 安装SQLServer2016出错提示:需要安装oracle JRE7 更新 51(64位)或更高版本2种解决办法.
- IBM Think 2019核心议题:如何打造可信人工智能
- STM32F4 USB3300 fs/hs uvc实现ov2640的图像传输和静态图片
- Qt使用QImage裁剪图片
- 小白之路由浅入深之------day24
- 内积、外积、元素积、克罗内克积的区分及用法【python】
- 计算机二三四级软考、志愿者实习、软著外观实用发明专利、著作、科研论文EI/SCI在大学期间野蛮成长方式
- 由 excel 转换为 markdown,及收获
- 51单片机(十二)—— 单片机复位
热门文章
- 国际赛事证书,220G数据集开放下载|ACCV2022国际细粒度图像分析挑战赛开赛
- 五、传输层(三)TCP
- 洛谷P4572 [JSOI2013] 哈利波特与死亡圣器
- osEye.Net:离别是为了将来的重逢
- 安卓机如果相册不选图片就退出_微商相册如何在「多台设备登录」?
- html批量转码工具,文件转码工具(文件GBK与UTF编码批量转码工具)
- 小刘同学的第七十四篇博文
- 关于PHP程序员技术职业生涯规划--swool大神韩天峰
- 12c rac在安装grid软件执行root.sh脚本的时候出现PRCT-1431,CLSRSC-180
- 微信公众号基础04_分享和录音功能的实现