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

转载于:https://my.oschina.net/hiliusl/blog/174850

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值