原创 Android權限系統(二):開機授予運行時權限
DefaultPermissionGrantPolicy簡介 . Android開機後,除了根據上次開機的記錄(runtime-permissions.xml)授予運行時權限外,一些系統重要的組件也需要提前授予運行時權限。例如,
原创 Android權限系統(一):開機獲取權限信息
一.SystemConfig的整機權限信息 Android在SystemConfig的構造函數中會通過讀取相關的文件來加載整機的權限信息。這些文件是{partition}/etc/permissions下面的文件。其中{par
原创 獲取安卓APK的SHA1值(Android安裝包SHA1指紋)
接入QQ錢包支付的時候,需要獲取這個值,獲取的方法: 1) 將apk修改後綴爲 .rar文件後解壓; 2) 進入解壓後的META-INF目錄,該目錄下會存在文件CERT.RSA 3) 在該目錄下打開cmd,輸入命令 :keytoo
原创 如何查看一個Google Patch是否合入到system.img
https://ressrc.com/2018/12/19/cts-gts-problem-analysis-12/#more-8464
原创 VTS框架分析
CompatibilityConsole初始化 VTS測試套件的執行腳本是通過直接加載com.android.compatibility.common.tradefed.command.CompatibilityConsole
原创 剖析Android的Smart Lock
前言 本文的內容基於https://nelenkov.blogspot.com/2014/12/dissecting-lollipops-smart-lock.html,省略去NFC的內容。 Android5.0已經發布有一段
原创 Android O HIDL框架
HIDL簡介 Android O開始,Google爲了將framework和HAL層分割開來,使得framework可以獨立於HAL層更新,設計了HIDL。有了HIDL,HAL模塊可以以一個獨立的Service啓動,framewo
原创 SystemServer的Watchdog
在我們的認知中,Watchdog 是 Linux 系統一個很重要的機制,其目的是監測系統運行的情況,一旦出現鎖死,死機的情況,能及時重啓機器(取決於設置策略),並收集crash dump。在Android的SystemServer
原创 standard、singleTop、singleTask和singleInstance原理分析
關鍵函數入口:startActivityUncheckedLocked 我們知道啓動一個Activity有四種方式:standard(標準啓動模式)、singleTop、singleTask、singleInstance。先簡述一
原创 從一個關機時間過長的bug談起
問題描述 之前有遇到一個bug,在一個第三方apk中播放視頻時,按下電源鍵確認關機後,需要等待很長時間屏幕纔會熄滅,而且在熄滅之前播放視頻的畫面會不斷閃爍。下面跟蹤一下問題發生的根源。 Android的關機流程是在一個Shut
原创 SurfaceFlinger原理(二):Vsync事件的處理
SurfaceFlinger內部有兩個EventThread,一個負責app端對Vsync信號的監聽處理,一個負責SurfaceFlinger對Vsync信號的監聽處理。SurfaceFlinger內部維持了一個MessageQu
原创 SurfaceFlinger原理(一):SurfaceFlinger的初始化
SurfaceFlinger是Android的一個native進程,負責將圖層進行合成,圖層疊加起來就構成了我們看到的界面。合成的方式分爲在線合成和離線合成。在線合成是指現在一塊buffer畫好所有的內容,然後直接交給linux圖
原创 Android壁紙服務WallpaperManagerService
Android壁紙服務WallpaperManagerService啓動在SystemServer中。當NonCoreServices沒有被禁止且config_enableWallpaperService的config值爲true時,
原创 ART虛擬機的對象分配過程
在art內部對線程Thread的實現中,會對函數跳轉表進行初始化,這些函數跳轉表的初始化在不同的平臺有不同的實現,通常是記錄一些關鍵的彙編函數的入口。Thread類有個struct tls_ptr_sized_values結構體成員
原创 Handler機制
handler是一個Android SDK 提供給開發者方便進行異步消息處理的類,下面從handler類最常用的函數sendMessage講起。sendMessage接受的參數是Message,調用到sendMessageDelaye