如何阻止Android Management API在设备enrollment后删除系统应用
解决Android Management API注册后默认系统应用被删除的问题
1. 先获取目标系统应用的包名
系统应用的包名因厂商和Android版本而异,你可以通过以下方式获取:
- 在同型号的未注册设备上,打开终端执行
adb shell pm list packages -s,会列出所有系统预装应用的包名。常见示例:- Google原生图库:
com.google.android.apps.photos - Google原生时钟:
com.google.android.deskclock - 小米图库:
com.miui.gallery - 三星图库:
com.sec.android.gallery3d
- Google原生图库:
- 如果设备已经注册,可临时调整策略允许adb调试,连接设备后执行同样命令获取包名。
2. 调整策略配置保留系统应用
核心是把需要保留的系统应用加入策略白名单,并禁用自动移除预装应用的配置:
- 检查策略中是否存在
removePreinstalledApps: true字段,如有则删除或改为false(这个字段会自动删除所有未列入白名单的预装应用) - 在
applications数组中添加目标应用的包名,设置installType为FORCE_INSTALLED,确保应用被强制保留且无法被卸载 - 将
playStoreMode设置为ALLOW_LIST,限定仅白名单内的应用可存在(包含系统应用)
示例策略片段:
{ "applications": [ { "packageName": "com.google.android.apps.photos", "installType": "FORCE_INSTALLED" }, { "packageName": "com.google.android.deskclock", "installType": "FORCE_INSTALLED" } // 按需添加更多需要保留的系统应用包名 ], "playStoreMode": "ALLOW_LIST", "removePreinstalledApps": false }
3. 验证策略生效
更新策略后,将其重新应用到对应设备或设备组,等待设备同步最新策略(通常需几分钟)。同步完成后检查设备上的系统应用是否已保留。
注意:installAppDisabled字段仅禁止安装新应用,不会影响已预装的系统应用,所以之前的无效是因为没触及核心的预装应用移除配置。
内容的提问来源于stack exchange,提问作者priyansh kasera
相关产品推荐
相关产品推荐

