Android下使用pm disable命令或package-restrictions.xml配置文件来禁止某个app的使用或自启动
必须root用户操作。
查看哪些app的哪些组件监听了BOOT_COMPLETED广播:
# pm query-receivers –components -a android.intent.action.BOOT_COMPLETED
…
com.autochips.atclogger/.framework.LogReceiver
…
停止接收该广播的组件(如果有多个用户用到该app,则可以增加–user XX参数):
# pm disable com.autochips.atclogger/.framework.LogReceiver
效果在下面配置文件里体现:
# cat /data/system/users/0/package-restrictions.xml
…
<pkg name=”com.autochips.atclogger” ceDataInode=”81987″>
<disabled-components>
<item name=”com.autochips.atclogger.framework.LogReceiver” />
</disabled-components>
</pkg>
…
立即会生效,当然要测试禁止掉了BOOT_COMPLETED,必须重启。
如果要完全禁止app的使用,pm命令只带包名不带组件名即可:
# pm disable com.autochips.atclogger
如果要重新启用:
# pm enable com.autochips.atclogger
可以加入到init.rc,这样就不用等启动后再手工去执行一次禁止了(当然需要用的时候就得手工enable):
# vi /init.rc
…
on property:sys.boot_completed=1
…
exec u:r:init:s0 — /system/bin/pm disable com.autochips.atclogger
…