Android9.0从系统层面修改android_id

原因

按照android官方说明,android_id会随着恢复出厂设置或重新烧录系统,或切换用户登陆都会重新随机生成新的anroid_id
因此对于一些依赖anroid_id做唯一识别标识之一的软件来说就有问题了。

修改成唯一的方法

我这里使用serialno作为android_id, 因为从我这边开发板追溯代码看到,serialno是从核心板的某块stm32里取的值,目前看是唯一的。
具体修改步骤:
1)进到android9.0系统源码里,frameworks/base/packages/SettingsProvider/src/com/android/providers/settings

2)修改SettingsProvider.java, 找到方法:private void ensureSecureSettingAndroidIdSetLocked(SettingsState secureSettings)
大概在2730行左右(懒的直接跳到这里就可),然后直接把 String androidId 修改为如下:

 String androidId = SystemProperties.get("ro.serialno", Long.toHexString(new SecureRandom().nextLong()));

就是通过获取Properties内的ro.serialno来替换原来的随机生成的值,记得:
import android.os.SystemProperties;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值