【項目】auot-start

1.Qaulcomm  有自己的auto_start 權限:
  1.AppOpsManager 中添加 OP_AUTO_START 權限項
  2.AMS 中添加 isAutoStartAllowed 函數:調用AppOpsService 的noteOperation 函數,檢測此pkg是否有AppOpsManager.OP_AUTO_START
  3.isAutoStartAllowed函數置於 AMS.startProcessLocked 中,hostingType = service 不檢查,hostingType = content provider ,直接fail 不允許啓動。
  
  
  
  
 2.JLQ 的自啓動管理:
   ActiveServices.java::startServiceLocked
   ActiveServices.java::bindServiceLocked
   ActivityStarter.java::startActivity
   
   
   
   
   
   1.監聽service啓動
     
     AMS.bindService-->AMS.bindServiceLoced-->ActiveServices.bindServiceLocked
   
     AMS.startService-->ActiveServices.startServiceLocked
     AMS.startServiceInPackage-->ActiveServices.startServiceLocked
     
     
     
     
     
     

    【 自啓動攔截的核心就是 阻止 AMS 的 成員變量 ActivityStarter中,阻止 生成對應的 ActivityRecord 成員變量,因此不會生成對應的TASK ,也不會放在STACK中。】
    【原生對啓動activity 的permission 攔截是在哪裏???????】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章