這兩天更新了手機,把小米5 更新到 MIUI8
為了 LINE 當然就馬上準備恢復 Android ID
但是過去的方法卻不行了,所以又是爬文…
查詢 Android ID
|
adb shell content query --uri content://settings/secure --where "name=\'android_id\'" |
以下列出幾個變更的方法, 將 NEW_ANDROID_ID 取代成 AndroidID
- 使用 update 直接修改
|
adb shell content update --uri content://settings/secure --bind value:s:NEW_ANDROID_ID --where "name=\'android_id\'" |
- 如果 update 無效,可以先 刪除 再 新增
|
adb shell content delete --uri content://settings/secure --where "name=\'android_id\'" adb shell content insert --uri content://settings/secure --bind name:s:android_id --bind value:s:NEW_ANDROID_ID |
- 直接設定新的 Android ID,實際動作和上一個一樣 先刪後增
|
adb shell settings put secure android_id NEW_ADNROID_ID |
- 最後一個方式需要 root 設備 (Android 7.x 實測可用)
|
C:\>adb shell shell@device:/ $ su root@device:/ # settings put secure android_id NEW_ANDROID_ID root@device:/ # exit shell@device:/ $ exit C:\> |
或是
|
C:\>adb shell su -c settings put secure android_id NEW_ANDROID_ID |
在 MIUI 7 時,鸚鵡都使用第2個方式
到了 MIUI 8 時,執行 delete 就會出現下面的錯誤
|
Error while accessing provider:settings java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS at android.os.Parcel.readException(Parcel.java:1620) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.delete(ContentProviderNative.java:544) at com.android.commands.content.Content$DeleteCommand.onExecute(Content.java:473) at com.android.commands.content.Content$Command.execute(Content.java:418) at com.android.commands.content.Content.main(Content.java:623) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:308) |
參考資料
- https://www.asus.com/zentalk/tw/thread-162470-1-1.html