adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )

本文介绍了如何使用adb命令行工具获取Android设备的SN码(序列号)和IMEI码。SN码是产品的序列号,用于验证设备合法性。IMEI码是全球唯一的设备标识。通过adb shell命令获取SN码为`adb shell getprop gsm.serial`,获取IMEI码为`adb shell service call iphonesubinfo 1`。在代码中,IMEI码可以通过`TelephonyManager`获取,而SN码则需要借助反射方法获得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文

前情提要

我们通过 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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值