禁用APK以及恢复使用APK

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,但是木有作用~~~~

你可能感兴趣的:(apk,kill,禁用apk,禁用Component,激活apk)