adb Android禁用四大组件与如何冻结APP

ComponentName name = new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
			pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

不可用状态:COMPONENT_ENABLED_STATE_DISABLED
可用状态:COMPONENT_ENABLED_STATE_ENABLED
默认状态:COMPONENT_ENABLED_STATE_DEFAULT
flags:行为标签,值可以是DONT_KILL_APP或者0。 0说明杀死包含该组件的app

ComponentName 可以是包名类名

adb 手动设置:
adb shell pm enable 包名/类名

例如:adb shell pm enable com.vincent.test/.MainActivity

	   pm clear [--user USER_ID] PACKAGE
       pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT
       pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT
       pm hide [--user USER_ID] PACKAGE_OR_COMPONENT
       pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT

包名类名获取:

       //获取其他app的servcie
       List<ResolveInfo> infos2 = pm.queryIntentServices(intent2, 0);
		
		//获取其他app的广播
       List<ResolveInfo> infos3 = pm.queryBroadcastReceivers(intent2, 0);
       
       //获取其他app的Activity
      List<ResolveInfo> infos2 = pm.queryIntentActivities(intent2, 0);

		//获取其他app的ContentProvider
       List<ResolveInfo> infos3 = pm.queryContentProviders(intent2, 0);

其中intent2 里面可以设置 action\packageName等过滤

而且,禁用信息可以在 /data/system/users/0/package-restrictions.xml 目录下查看,如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<package-restrictions>
    <pkg name="com.gzads.tvac" stopped="true" nl="true" enabled="3">
        <enabled-components>
            <item name="com.baidu.location.f" />
            <item name="com.gzads.tvac.AutoStartServiceOnBoot" />
        </enabled-components>
        <disabled-components>
            <item name="com.android.xmpp.NotificationService" />
            <item name="com.gzads.tvac.TVACService" />
            <item name="com.sky.cool.service.ViewService" />
        </disabled-components>
    </pkg>
    <pkg name="com.brlf.tvlivelaunch" stopped="true" nl="true" />
    <pkg name="tv.fun.children">
        <disabled-components>
            <item name="tv.fun.children.ui.ChildrenActivity" />
        </disabled-components>
    </pkg>
    <pkg name="tv.newtv.hnvideo" stopped="true" nl="true" />
    <pkg name="com.iflytek.xiri2.system" stopped="true" />
    <pkg name="com.droidlogic.videoplayer">
        <disabled-components>
            <item name="com.droidlogic.videoplayer.FileList" />
        </disabled-components>
    </pkg>
    <pkg name="com.cmcc.andtv" stopped="true" nl="true" />
    <pkg name="com.chinamobile.ronghe" stopped="true" nl="true" />
    <pkg name="com.droidlogic.otaupgrade">
        <disabled-components>
            <item name="com.droidlogic.otaupgrade.MainActivity" />
        </disabled-components>
    </pkg>
    <preferred-activities />
    <persistent-preferred-activities />
    <crossProfile-intent-filters />
</package-restrictions>

里面包含了包名、组件、状态等信息,其中 enabled=3时等于禁用状态,1时等于状态正常。
上述文件描述了app的组件状态信息,app状态信息,是否冻结等。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值