1.将当前APK禁用掉[kill app]:
提供包名和主Activity名称,设置Component的属性为 COMPONENT_ENABLED_STATE_DISABLED,flage为DONT_KILL_APP。
Settings.Secure.putInt(getContentResolver(), Settings.Secure.DEVICE_PROVISIONED, 1);
PackageManager pm = getPackageManager();
ComponentName name = new ComponentName(this, FactoryTest.class);//提供包和主Activity名称
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
设置成功后,可以再次命令启动该应用,会提示主Acitivity在AndroidMainFest.xml中没有显示注册之类的error.同时在应用列表中也再也找不到该应用。
同时也可以通过查看/data/system/packages.xml中会出现:
<item name="android.permission.FACTORY_TEST" package="android" protection="2" />
2.恢复APK的使用:--激活apk的使用
需要在当前apk中重写一个开机启动的类,在该类中添加如下代码:
Settings.Secure.putInt(ctx.getContentResolver(), Settings.Secure.DEVICE_PROVISIONED, 1);
PackageManager pm = ctx.getPackageManager();
ComponentName name = new ComponentName(ctx, FactoryTest.class);
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
----尝试过直接修改/data/system/packages.xml,但是木有作用~~~~