剑侠盟·网游特攻队

  • 首页
  • 门派特辑
  • 情缘系统
  • 帮派战报
  • HOME> 门派特辑> 自启动、关联启动的拦截规则
    自启动、关联启动的拦截规则
    门派特辑

    1. 自启动管控需求来源

    自启动、关联启动、交叉启动、推送启动等现象的泛滥除了对个人信息保护带来隐患外,还会导致占用过多的系统CPU和内存资源,造成系统卡顿、发热、电池消耗过快;还可能引入一些包含“恶意代码”的进程在后台隐蔽启动,避开了杀毒软件等的查杀,威胁到用户通信秘密、财产安全。

    2.自启动和管理启动的基础

    App启动基础:Android 四大组件Activity\BroadCast\Service\ContentProvid是App启动的基本单元,大部分APP会直接或间接地依赖于这四种方式进行启动。

    3.自启动和关联启动拦截规则

    原理:应用主要是依赖四大组件启动,故在四大组件启动的通路新增插桩点,根据设定规则,进行组件式规则拦截,达到治理后台自启动和关联启动的现象。

    3.1 通用拦截规则

    1.如果是自启动和关联启动白名单应用或组件名,则不拦截启动

    2.如果是前台桌面进程启动,即caller是前台可见进程或负一屏,则不拦截启动

    3.如果是CTA、CTS、monkey或工程模式,则不拦截启动

    4.如果caller是shell或root用户,则不拦截启动

    5.如果一些自研应用或测试应用,则不拦截启动

    6.如果是画中画、悬浮窗等启动,则不拦截启动

    7.如果是widget启动,则不拦截启动

    8.如果被调用者是系统应用或正在运行,则允许启动

    9.如果调用者和被调用者是同一个应用,则允许启动。

    10.如果调用者是系统应用,则允许启动

    11.如果调用者是非系统应用,且被调用者是同步或闹钟操作,则禁止启动。

    12.如果被调用者被限制在后台运行,则禁止启动

    3.2 Activity启动拦截规则

    1.如果调用者是系统应用或系统签名,则不拦截启动

    2.如果被调用者是系统,则不拦截启动

    3.如果是1个像素点或透明activity,则不拦截启动

    4.如果 Intent 来自系统通知(from_systemUi),则允许启动。

    5.如果调用者没有前台活动(callerVisible 为 false),则禁止启动。

    6.如果调用者有前台活动,则允许启动。

    3.3 Service启动拦截规则

    (1) 窗口策略检测

    如果被调用者与窗口相关(如 WindowAlarm),则允许启动。

    拦截原因设置为 REASON_WINDOW。

    (2) 通知检测

    如果 Intent 来自系统通知(from_systemUi),则允许启动。

    拦截原因设置为 REASON_NOTIFICATION。

    (3) 被调用者检测

    系统应用检测:

    如果被调用者是系统应用,则允许启动。

    拦截原因设置为 REASON_CALLED_SYSTEM。

    前台运行检测:

    如果被调用者正在前台运行(calledVisible 为 true),则允许启动。

    拦截原因设置为 REASON_CALLED_FG。

    活跃状态检测:

    如果被调用者处于活跃状态(getAppActiveState 为 true),则允许启动。

    拦截原因设置为 REASON_ACTIVE。

    WebView 检测:

    如果被调用者的类名包含 WEBVIEW_CLASSNAME_KEY(如 "sandbox"),则允许启动。

    拦截原因设置为 REASON_WEB。

    自启动检测:

    如果调用者和被调用者是同一个应用,则允许启动。

    拦截原因设置为 REASON_CALLER_SAME_CALLED。

    如果被调用者处于空闲或冻结状态(getAppFreezeOrIdleState 为 true),并且被调用者在黑名单中(checkIsRestriced 为 true),则禁止启动。

    拦截原因设置为 REASON_THIRDAPP_BLACK。

    (4) 系统应用检测

    调用者是系统应用:

    如果调用者是系统应用,则允许启动。

    拦截原因设置为 REASON_CALLER_SYSTEM。

    非系统应用检测:

    如果调用者是非系统应用,且被调用者是同步或闹钟操作,则禁止启动。

    拦截原因设置为 REASON_JOB_SYNC_FORBIDDEN 或 REASON_ALARM_FORBIDDEN。

    (5) 后台运行检测

    如果被调用者被限制在后台运行(checkCanRunningBG 为 true),则禁止启动。

    拦截原因设置为 REASON_USER_SET_BACKGROUND_RESTRICTED。

    3.4 Broadcast启动拦截规则

    (1) 窗口策略检测

    如果被调用者与窗口相关(如 WindowAlarm),则允许启动。

    拦截原因设置为 REASON_WINDOW。

    (2) 通知检测

    如果 Intent 来自系统通知(from_systemUi),则允许启动。

    拦截原因设置为 REASON_NOTIFICATION。

    (3) 被调用者检测

    系统应用检测:

    如果被调用者是系统应用,则允许启动。

    拦截原因设置为 REASON_CALLED_SYSTEM。

    前台运行检测:

    如果被调用者正在前台运行(calledVisible 为 true),则允许启动。

    拦截原因设置为 REASON_CALLED_FG。

    活跃状态检测:

    如果被调用者处于活跃状态(getAppActiveState 为 true),则允许启动。

    拦截原因设置为 REASON_ACTIVE。

    自启动检测:

    如果调用者和被调用者是同一个应用,则允许启动。

    拦截原因设置为 REASON_CALLER_SAME_CALLED。

    如果被调用者处于空闲或冻结状态(getAppFreezeOrIdleState 为 true),并且被调用者在黑名单中(checkIsRestriced 为 true),则禁止启动。

    拦截原因设置为 REASON_THIRDAPP_BLACK。

    (4) 白名单检测

    如果 Intent 的 Action 在白名单中(mActionWhiteList),则允许启动。

    拦截原因设置为 REASON_ACTION_WHITE。

    (5) 系统应用检测

    调用者是系统应用:

    如果调用者是系统应用,则允许启动。

    拦截原因设置为 REASON_CALLER_SYSTEM。

    非系统应用检测:

    如果调用者是非系统应用,且被调用者未运行,则禁止接收系统广播。

    拦截原因设置为 REASON_THIRDAPP_NOTRUNNING_CANT_RECIEVING_SYSTEM_BROADCAST。

    (6) 后台运行检测

    如果被调用者被限制在后台运行(checkCanRunningBG 为 true),则禁止启动。

    拦截原因设置为 REASON_USER_SET_BACKGROUND_RESTRICTED。

    (7) 默认策略

    如果以上所有检测都未返回明确结果(即结果为 DEFAULT),则默认允许启动。

    拦截原因保持为 REASON_DEFAULT。

    3.5 Provider启动拦截规则

    无太多规则,主要是名单配置规则

    拍照最好看的美颜软件是哪个?重庆摄影培训实测对比效果告诉你!
    商机盒子app

    友情链接:


    Copyright © 2022 剑侠盟·网游特攻队 All Rights Reserved.