原创 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