android如何通过adb命令获取手机的IMEI

android如何通过adb命令获取手机的IMEI,第1张

android如何通过adb命令获取手机的IMEI, 请教各位高手,怎么通过adb命令行获取和修改bluestacks的IMEI

java获得android的imei号步骤:

1、权限添加:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

TelephonyManager telephonyManager = (TelephonyManager) this

.getSystemService(Context.TELEPHONY_SERVICE)

String IMEI = telephonyManager.getDeviceId()

2、adb命令获得:

adb shell dumpsys iphonesubinfo

如何通过adb命令获取手机型号与设备信息

1、在命令行中输入“adb shell”

2、进入shell之后,再输入“cat /system/build.prop | grep "product"”

其实,设备信息,主要是存放在“/system/build.prop”文件,通过“cat”命令就可以查看了。

1、手机先要有root权限,这是前提。

2、获取root权限后,adb devices可返回设备信息

*#06#

如何通过adb root 手机 命令

权限提取,一让洞种是连接电脑刷入破解文件;另一种则是在手机上运行破解软件。注意:获取Root权限过程有风险,后果自负 Universal Androot 手机上运行破解软件(Z4ROOT,KINGROOT,) 这类获取Root权限的软件效果因“机型”而异,而且成功率不高,想想也知道了:在一个没有Root的手机上以普通权限运行软件妄图取得Root权限,难度可想而知。常见的此类软件有: Universal Androot 官网 z4root 官网 这两个软件都是软件开发爱好者开发的,放在同一个论坛上,“官网”就是一个帖子。注册论坛后可以下载。也可以到掌上应用汇搜索下载 连接电脑刷入破解文件 这种办法成功率非常高,用电脑对付手机还不是小菜一碟!坦慎枯这种方法,对大部分机型同样适用。知名的该类软件是:SuperOneClick 官网,或用第三方刷机工具(甜椒,卓大师,刷机精灵等等),效果一样。ROOT之后,必须安装SUPERUSER哦,这个用于权限分配的软件

如何通过adb命令安装app到安装终端

准备工作

确信 \Android-sdk-windows\tools\下有 adb.exe     AdbWinApi.dll     AdbWinU *** Api.dll 三个文件,如孝茄果没有从\android-sdk-windows\platform-tools\ 下面拷贝到tools下(android sdk 3.0 以上版本一些工具默认不放在tools下,作为可选配置放在platform-tools下)

安装apk到手机:adb install c:\HA_drocap2_JOY3G.apk。

启动所安装的程序,手机要是root权限并且进入到data\app目录下,# am start -n .vsp/.vsp.StartActivty。

查看相应的日志

adb logcat -s wele:i

怎样通过adb命令来root手机

首先,这个真的无需内核是否支持,与内核无关,即原生的就行;

1,手机拥有可以 ROOT 授权的工具,比如: SuperSu;

2,手机打开“开发者选项”

2,PC 命令行 / Linux、Mac 终端:

命令:adb shell

命令:su

同时注意观察手机有两个提示需要确认:

1,是否允许设备连接到手机;

2,SuperSu Root 授权确认;

/**

* 获拍仿取手机IMEI

*/

private static StringgetIMEI(Context context) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {

return null

    }

try {

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)

   租侍    袭型纤 if (telephonyManager ==null) {

return null

        }

@SuppressLint({"MissingPermission", "HardwareIds"}) String imei = telephonyManager.getDeviceId()

        return imei

    }catch (Exception e) {

return null

    }

}

随着android系统不断升级,android设备的imei号已经越来越难获取了。网上一些推荐会用meid、androidid来代替imei号。但是因为项目推广需要比对渠道那边回传imei号来确认新增。

发现部分机型渠道(eg:快手)可以获取到而我们获取不到,导致无法确认新增。最终在TelephonyManager中找到getDeviceSoftwareVersion()方法。可以变相实现获取imei号(但也会有getDeviceSoftwareVersion获取不到的机型,不过验证渠道那边也获取不到了)。

public static String getIMEI() {

TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE)

String imei = null

if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {

try {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

imei = telephonyManager.getImei()

if (!TextUtils.isEmpty(imei)) {

return imei

} else {

String softwareVersion = getDeviceSoftwareVersion()

if (!TextUtils.isEmpty(softwareVersion) &&softwareVersion.length() >14) {

String imeiHead = softwareVersion.substring(0, 14)

imei = imeiHead + luhn(imeiHead)

return imei

} else {

return null

}

}

} else {

return telephonyManager.getDeviceId()

}

} catch (Exception e) {

e.printStackTrace()

}

}

return imei

}

/**

* Luhn算法

* 根据号码获取校验位

*

* @param cardNumber

* @return

*/

public static int luhn(String cardNumber) {

int totalNumber = 0

for (int i = cardNumber.length() - 1i >= 0i -= 2) {

int tmpNumber = calculate(Integer.parseInt(String.valueOf(cardNumber.charAt(i))) * 2)

if (i == 0) {

totalNumber += tmpNumber

} else {

totalNumber += tmpNumber + Integer.parseInt(String.valueOf(cardNumber.charAt(i - 1)))

}

其实是因为getDeviceSoftwareVersion和getImei()拼接侍败规则只有末位两个数不相同,而imei的末位数可以通过luhn算法获取,从而拼接成imei值(自测有效)。

但是毕竟还是有部分机型获取不到imei,可以使用oaid来补充说明。

如局销果是自己app内部做唯一标老腊颤识的话可以用meid、androidid或deviceid来代替imei

public static String getUniqueId() {

TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE)

if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12365900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存