自啟動策略調研

廣播攔截策略

1.流程圖

廣播發送

├─ 特權進程(Root/Shell) → 放行

├─ 系統進程(UID≤1000) → 自動啟動校驗 → 非法廣播? → 攔截

│ ? ├─ 黑名單匹配 → 攔截

│ ? └─ 用戶/白名單校驗 → 受限用戶? → 攔截

│ ? ? ? ├─ 小部件/智能白名單 → 放行

│ ? ? ? └─ 普通應用 → 分類限制檢查 → 命中? → 攔截

├─ 動態白名單鏈 → 匹配任一? → 放行

└─ 特殊廣播處理 → 黑名單/分類限制 → 攔截

2.攔截策略

攔截類型

觸發條件/判斷邏輯

處理結果

超級省電模式攔截

激活且應用不在白名單()

攔截

系統進程校驗

系統進程(UID≤1000)觸發:

? 非法廣播(activityInfo==null)

? 黑名單匹配()

攔截

多用戶限制

非主用戶/訪客用戶中:

? 受限用戶(isRestrictUser)

? 特定應用(拼多多/支付寶等,)

攔截

白名單豁免

滿足任一條件:

? 系統應用/小部件()

? 智能白名單()

? Action白名單()

放行

分類限制檢查

非四大組件類型(!isCpnType)且非Top應用(!isTopPkg),匹配全局/組件限制列表

攔截

動態進程狀態檢查

同時滿足:

? 非默認允許啟動(!)

? 非活躍進程(!)

攔截

特權進程豁免

Root/Shell進程(isRootOrShell)

放行

實驗版本特殊處理

實驗版本()且非全局黑名單

放行

Provider攔截

1.流程圖

0

2.攔截策略

攔截類型

觸發條件/判斷邏輯

處理結果

設計目的

系統進程豁免

調用方進程UID≤10000

放行

保障系統核心功能穩定性

全局黑名單攔截

應用在全局禁止列表

攔截

防止惡意應用濫用Provider25

組件黑名單攔截

滿足以下任一條件:

? 調用方為null且Provider在黑名單

? 調用方進程名不包含Provider包名且Provider在黑名單

攔截

限制未授權訪問或跨應用濫用

超級省電模式攔截

超級省電模式激活且未通過rSPS校驗

攔截

極端場景下限制非核心應用資源占用

分類限制攔截

匹配全局/組件分類限制規則(如非四大組件類型)

攔截

防止非必要后臺數據共享56

動態狀態放行

滿足以下任一條件:

? 默認白名單()

? 活躍進程()

放行

優化內存和性能

多維度白名單放行

滿足以下任一條件:

? 保護白名單()

? 關聯白名單()

? Provider組件白名單()

? 調用方在白名單()

放行

保障授權應用或組件正常運作

Activity攔截

1.流程圖

0

2.攔截策略

檢查類型

處理結果

關聯方法/配置

設計目的

無效Intent檢查

攔截

handleWhiteListCheck參數校驗

防止無效或惡意Intent

調用方白名單

放行

預置調用方包名白名單

授權應用豁免攔截

目標包名白名單

放行

預置目標包名白名單

保護核心應用組件

目標組件白名單

放行

預置Activity類名白名單6

精確控制組件級訪問

自調用白名單

放行

同應用內調用校驗3

允許應用內部安全跳轉

關聯白名單

放行

跨應用關聯授權(如合作應用)6

支持生態內協作

全局黑名單

攔截

全局禁用應用列表16

封禁高風險或違規應用

推送黑名單

攔截

禁止非關聯應用彈窗3

防止廣告/騷擾推送

關聯黑名單

攔截

預置危險調用關系6

阻斷惡意應用協作

鎖屏黑名單

攔截

鎖屏禁用組件列表3

保障鎖屏安全性與功耗

超級省電模式

攔截

InSuperPowerSavingMode()1

極端場景下限制非核心功能

分類限制

攔截

按組件類型(如后臺Activity)過濾3

Service攔截

1.流程圖

graph TD

A[調用shouldPreventStartService] --> B{type=""?}

B -- Yes --> C{UID≤10000?}

C -- Yes --> Z[放行]

C -- No --> D{組件黑名單且非自調用?}

D -- Yes --> Y[攔截]

D -- No --> E{Action黑名單且非自調用?}

E -- Yes --> Y

E -- No --> F{BlackguardList命中?}

F -- Yes --> Y

F -- No --> Z

B -- No --> G{參數無效?}

G -- Yes --> Z

G -- No --> H{全局黑名單?}

H -- Yes --> Y

H -- No --> I{分類限制?}

I -- Yes --> Y

I -- No --> J{startService?}

J -- Yes --> K{目標進程未啟動且不允許跨進程?}

K -- Yes --> Y

K -- No --> Z

J -- No --> L{bindService?}

L -- Yes --> M{系統應用?}

M -- No --> N{命中非系統白名單?}

N -- Yes --> Z

N -- No --> Y

M -- Yes --> O{通知/Job/Sync白名單?}

O -- Yes --> Z

O -- No --> P{GCM服務且非體驗版?}

P -- Yes --> Q{自啟動/LRU白名單?}

Q -- Yes --> Z

Q -- No --> Y

P -- No --> Y

2.攔截策略

攔截場景

觸發條件

放行條件

優先級

系統進程豁免

調用方UID ≤ 10000

直接放行

最高

組件黑名單

組件類名在黑名單 && 非自調用(!callerApp.processName.contains(pkgName))

自調用或非黑名單組件

Action黑名單

Action在黑名單 && 非自調用

Action為空或非黑名單

BlackguardList攔截

Action在特殊黑名單

無豁免條件

全局應用黑名單

包名在全局黑名單

體驗版且非核心黑名單(isExpVersion && !isExGlobalBlackList)

分類限制攔截

應用分類受限(如后臺服務)

默認放行標記/白名單/LRU進程

跨進程啟動攔截

startService&& 目標進程未啟動

允許跨進程啟動(isAllowStartFromStartService返回true)

非系統應用綁定攔截

bindService&& 非系統應用調用

Root/Shell進程或命中任意白名單(包名+Action/組件/Job/Sync)

系統應用綁定攔截

bindService&& 系統應用調用

通知服務/Job/Sync白名單豁免

GCM綁定攔截

GCM服務 && 非體驗版

自啟動白名單/默認放行/LRU進程

RemovePendingJob?

1.流程圖

0

2.攔截策略

檢查條件

命中結果

邏輯說明

優先級

包名為空或無法獲取應用信息

移除

參數無效防御性處理

最高

應用分類限制檢查命中(如后臺限制模式)

移除

通過檢測后臺/電池優化等場景

默認放行標記(isDefaultAllowStart)

放行

系統標記為關鍵應用(如系統服務)

自啟動白名單(isInAutoBootWhiteList)

放行

用戶手動配置或廠商預裝應用

LRU近期使用進程(isInLruProcessesLocked)

放行

關聯AMS的最近使用進程列表,提升用戶體驗

bringUpServiceLocked攔截

1.流程圖

0

2.攔截策略

檢查條件

結果

邏輯行為

全局開關關閉(mSwitch=false)或包名為空

放行

直接返回false,允許繼續執行啟動流程

非標準啟動類型(非REGULAR_PROCESS_STARTUP)且包名受限制

攔截

若包名不在白名單(),返回true阻止啟動

系統限制后臺啟動(())且包名在限制列表()

攔截

更新限制計數()并返回true

包名在LRU近期使用進程列表()

放行

即使命中限制列表,LRU機制仍放行

StartInstrumentation攔截

1.流程圖

0

2.攔截策略

檢查條件

結果

邏輯行為

基礎參數無效(組件名/應用信息/包名為空)

放行

直接返回false,允許StartInstrumentation執行

實驗版本或白名單應用

放行

跳過所有限制檢查

Oneway Binder調用(callingPid=0)

攔截

全局開關開啟或包名在黑名單時攔截

Root/Shell進程

放行

系統級調用不限制

LRU進程

放行

用戶近期使用的應用豁免限制

關聯調用黑名單命中

攔截

記錄攔截事件并更新統計

StartInstrumentation攔截

1.流程圖

0

2.攔截策略

檢查條件

攔截邏輯

應用進程清理后觸發重啟

若在息屏黑名單中則攔截自啟動

屏幕喚醒鎖釋放時檢查

白名單應用放行,Persist限制應用攔截

Alarm定時任務觸發時

息屏狀態且命中黑名單則忽略Alarm

判定標準

行為

----------------------------------

-----------------------------------------------------------------------------

包名在熄屏黑名單列表

攔截(返回true)

包名在系統白名單(如系統核心應用)

放行(返回false)

包名在Persist限制列表

攔截(返回true)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89232.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89232.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89232.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MFC/C++語言怎么比較CString類型最后一個字符

文章目錄🔧 1. 直接下標訪問(高效首選)🔍 2. ReverseFind 反向定位(語義明確)?? 3. Right 提取子串(需臨時對象)?? 4. 封裝工具函數(推薦健壯性場景)??…

【Cortex-M】異常中斷時的程序運行指針SP獲取,及SCB寄存器錯誤類型獲取

【Cortex-M】異常中斷時的程序運行指針SP獲取,及SCB寄存器錯誤類型獲取 更新以gitee為準: gitee 文章目錄異常中斷異常的程序運行指針SP獲取SCB寄存器錯誤類型獲取硬件錯誤異常 Hard fault status register (SCB->HFSR)存儲器管理錯誤異常 SCB->C…

項目流程管理系統使用建議:推薦13款

本文分享了13款主流的項目流程管理系統,包括:1.PingCode;2.Worktile;3.泛微 E-Office;4.Microsoft Project;5.簡道云;6.Zoho Projects;7.Tita 項目管理;8.Oracle Primave…

neovim的文件結構

在 Linux 系統中,Neovim 的配置文件主要存放在以下目錄結構中: 📁 核心配置目錄路徑內容描述~/.config/nvim/主配置目錄 (Neovim 的標準配置位置)~/.local/share/nvim/Neovim 運行時數據(插件、會話等) 🗂?…

【網易云-header】

網易云靜態頁面&#xff08;1&#xff09;效果htmlcss效果 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&…

Android開發知識點總結合集

初級安卓開發需要掌握的知識點主要包括安卓四大組件、Context、Intent、Handler、Fragment、HandlerThread、AsyncTask、IntentService、Binder、AIDL、SharedPreferences、Activity、Window、DecorView以及ViewRoot層級關系、觸摸事件分發機制、View繪制流程、自定義View。 1…

如何通過域名白名單?OVP防盜鏈加密視頻?

文章目錄前言一、什么是域名白名單?OVP防盜鏈二、域名白名單?OVP防盜鏈的實現原理三、如何實現域名白名單?OVP防盜鏈加密視頻總結前言 用戶原創視頻資源面臨被非法盜鏈、惡意嵌入的嚴峻挑戰&#xff0c;盜用行為不僅侵蝕創作者收益&#xff0c;更擾亂平臺生態秩序。域名白名…

密碼學系列文(2)--流密碼

一、流密碼的基本概念RC4&#xff08;Rivest Cipher 4&#xff09;是由密碼學家 Ron Rivest&#xff08;RSA 算法發明者之一&#xff09;于 1987 年設計的對稱流加密算法。它以簡單、高效著稱&#xff0c;曾廣泛應用于網絡安全協議&#xff08;如 SSL/TLS、WEP/WPA&#xff09;…

Drools?業務引擎

drools引擎使用 官網介紹 一、底層原理 ReteOO 網絡 ? 本質是一張“有向無環圖”&#xff0c;節點類型&#xff1a; – Root / ObjectTypeNode&#xff1a;按 Java 類型分發事實 – AlphaNode&#xff1a;單對象約束&#xff08;age > 18&#xff09; – BetaNode&#xf…

linux的磁盤滿了清理辦法

今天測試系統的某個磁盤滿了&#xff0c;需要看一下&#xff0c;可以看到的是&#xff0c;已經被占用百分之百了&#xff0c;某些服務運行不了了&#xff0c;需要清一下&#xff0c;這個我熟看哪個目錄占用空間大cd / du -sh * ##找到占用最大&#xff0c;比如cd /home cd /hom…

阿里開源項目 XRender:全面解析與核心工具分類介紹

阿里開源項目 XRender&#xff1a;全面解析與核心工具分類介紹 在開源技術飛速發展的浪潮中&#xff0c;阿里巴巴推出的 XRender 作為專注于表單與數據可視化的開源框架&#xff0c;憑借獨特的設計理念和強大功能&#xff0c;已在開發者群體中嶄露頭角。XRender 以 “協議驅動…

網絡安全初級--搭建

一、Docker搭建apt-get install docker.io docker-compose 下載docker 配置docker代理 a.創建對應的以及對應的文件mkdir /etc/systemd/system/docker.service.dvim /etc/systemd/system/docker.service.d/http-proxy.confb.寫入以下內容[Service]Environment"HTTP_PROXYh…

文心一言4.5深度評測:國產大模型的崛起之路

在?語?模型競爭?益激烈的今天&#xff0c;百度推出的文???4.5憑借其在中文處理上的獨特優勢&#xff0c;正在成為越來越 多開發者的選擇。經過為期?周的深度測試和數據分析&#xff0c;我將從技術參數、性能表現、成本效益等多個維度&#xff0c; 為?家呈現這款國產?模…

科技的成就(六十九)

631、攝影術的先驅 1801年&#xff0c;德國物理學家約翰威廉里特&#xff08;Johann Wilhelm Ritter&#xff09;發現了紫外線。他注意到&#xff0c;太陽光譜中紫色一側光譜之外的位置的不可見射線比紫光更快地使氯化銀試劑變暗&#xff0c;他將其稱為“化學射線”。后來這種射…

用Golang gRPC異步處理:釋放并發性能的秘密武器

目錄 章節一:為什么gRPC異步處理是并發性能的“加速器” 異步的本質:解放Goroutine的潛能 異步gRPC的適用場景 章節二:從零開始:搭建一個異步gRPC服務 準備工作:定義Protobuf 實現同步gRPC服務 邁向異步:初步改造 章節三:用Worker Pool模式榨干并發性能 Worker …

MCP終極篇!MCP Web Chat項目實戰分享

目錄 前言 MCP Web Chat 功能概要說明 MCP Web Chat代碼調用結構說明 api動態生成MCP Server 方法一&#xff08;之前的方法&#xff09; 方法二&#xff08;現在的方法&#xff09; 做個比較 相關代碼 相關問題解決說明 穩定性 由此引申而來的異步任務問題 MCP周…

破解VMware遷移難題

理解VMware遷移的常見挑戰 VMware遷移過程中可能遇到的難題包括兼容性問題、性能瓶頸、數據完整性風險以及網絡配置復雜性。識別這些問題是制定有效遷移策略的基礎。 評估當前環境與目標環境 詳細分析源VMware環境的配置、虛擬機數量、存儲類型和網絡拓撲。對比目標環境的硬件和…

15-STM32F103RCT6的FLASH寫入

STM32F103RCT6的FLASH寫入 1.//*******************************固件升級地址信息******************************// #define STM32_FLASH_BASE 0x08000000 //固件起始地址 #define FLASH_APP_ADDR 0x08005000 //APP開始地址 #define FLASH_PARA_ADDR 0x0803C000 //固件關…

PPO:近端策略優化算法

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" PPO&#xff1a;近端策略優化算法 摘要 我們提出了一類新的用于強化學習的 policy gradient 方法&#xff0c;該方法在與環境交互以采樣數據和使用隨機梯度上升優化一個“代理”目標函數之間交替進行。與標準的…

數據結構的算法分析與線性表<1>

一、算法分析&#xff1a; 由于語句執行一次的實際所需時間與機器的軟硬件有關&#xff0c;則算法分析是針對語句執行次數&#xff0c;而非執行時間。 時間復雜度 計算時間復雜度&#xff1a; 常量階 如果算法中的n是固定的&#xff0c;或者說n是常數&#xff0c;或者時間復雜…