文章

關閉 / 刪除 Zenfone / ROG Phone 全局顯示 IMEI 浮水印方法筆記

由於華碩會在特殊的系統版本中加入全局顯示 IMEI 浮水印的功能,導致使用者在使用手機時會一直看到 IMEI 浮水印,影響使用體驗XD

所以我在這邊紀錄一下關閉 / 刪除 Zenfone / ROG Phone 全局顯示 IMEI 浮水印的方法筆記。

  • 一開始我先使用 dumpsys activity services | grep -iE "imei|watermark" 指令查看目前系統中有關 IMEI 浮水印的服務,抓到 com.asus.ims.watermark/.ImsWatermarkService 這個服務
1
2
3
4
5
6
7
8
9
ASUS_AI2301:/ $ dumpsys activity services | grep -iE "imei|watermark"
  * ServiceRecord{2b3bc26 u0 com.asus.ims.watermark/.ImsWatermarkService}
    intent={act=com.asus.ims.watermark.service cmp=com.asus.ims.watermark/.ImsWatermarkService}
    packageName=com.asus.ims.watermark
    permission=com.asus.ims.watermark.BIND
    baseDir=/system/priv-app/ImsWatermarkService/ImsWatermarkService.apk
    dataDir=/data/user/0/com.asus.ims.watermark
    infoAllowStartForeground=[callingPackage: android; callingUid: 1000; uidState: PER ; intent: Intent { act=com.asus.ims.watermark.service cmp=com.asus.ims.watermark/.ImsWatermarkService }; code:PROC_STATE_PERSISTENT; tempAllowListReason:<,reasonCode:SYSTEM_ALLOW_LISTED,duration:9223372036854775807,callingUid:-1>; targetSdkVersion:33; callerTargetSdkVersion:33; startForegroundCount:0; bindFromPackage:null]

  • 嘗試使用 pm disable-user & am stopservice --user 0 -n com.asus.ims.watermark/.ImsWatermarkService || true & pm disable --user 0 com.asus.ims.watermark/.ImsWatermarkService 指令來停用這個服務,都沒有辦法成功停用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
ASUS_AI2301:/ $ pm disable-user --user 0 com.asus.ims.watermark

Exception occurred while executing 'disable-user':
java.lang.IllegalArgumentException: com.asus.ims.watermark can't be disabled!
        at com.android.server.pm.PackageManagerService.setEnabledSettings(PackageManagerService.java:3812)
        at com.android.server.pm.PackageManagerService.-$$Nest$msetEnabledSettings(Unknown Source:0)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.setApplicationEnabledSetting(PackageManagerService.java:5645)
        at com.android.server.pm.PackageManagerShellCommand.runSetEnabledSetting(PackageManagerShellCommand.java:2356)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:274)
        at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
        at android.os.ShellCommand.exec(ShellCommand.java:38)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6162)
        at android.os.Binder.shellCommand(Binder.java:1049)
        at android.os.Binder.onTransact(Binder.java:877)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4437)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6146)
        at android.os.Binder.execTransactInternal(Binder.java:1285)
        at android.os.Binder.execTransact(Binder.java:1244)
255|ASUS_AI2301:/ $ am stopservice --user 0 -n com.asus.ims.watermark/.ImsWatermarkService || true
Stopping service: Intent { cmp=com.asus.ims.watermark/.ImsWatermarkService }
Error stopping service
ASUS_AI2301:/ $ pm disable --user 0 com.asus.ims.watermark/.ImsWatermarkService

Exception occurred while executing 'disable':
java.lang.IllegalArgumentException: com.asus.ims.watermark can't be disabled!
        at com.android.server.pm.PackageManagerService.setEnabledSettings(PackageManagerService.java:3812)
        at com.android.server.pm.PackageManagerService.-$$Nest$msetEnabledSettings(Unknown Source:0)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.setComponentEnabledSetting(PackageManagerService.java:5769)
        at com.android.server.pm.PackageManagerShellCommand.runSetEnabledSetting(PackageManagerShellCommand.java:2363)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:272)
        at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
        at android.os.ShellCommand.exec(ShellCommand.java:38)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6162)
        at android.os.Binder.shellCommand(Binder.java:1049)
        at android.os.Binder.onTransact(Binder.java:877)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4437)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6146)
        at android.os.Binder.execTransactInternal(Binder.java:1285)
        at android.os.Binder.execTransact(Binder.java:1244)


  • 最後索性直接使用 pm uninstall -k --user 0 com.asus.ims.watermark 指令來刪除這個 APP,成功刪除後重啟手機,IMEI 浮水印就不見了。
1
2
3
4
5
6
7
8
ASUS_AI2301:/ $ pm uninstall -k --user 0 com.asus.ims.watermark
Success
ASUS_AI2301:/ $ reboot

C:\Users\EdwardWu>adb shell
ASUS_AI2301:/ $ dumpsys activity services | grep -iE "imei|watermark"
1|ASUS_AI2301:/ $

tags: Android ASUS ROG
本文章以 CC BY 4.0 授權