Android系统的system/app和system/priv-app
Android 4.4起引入了/system/priv-app目錄概念,那么它和原來的/system/app目錄有什么區別呢?
一句話答案:
只有在/system/priv-app目錄下的app或者和這個目錄下的app相同簽名的app才可以使用android:protectionLevel=signatureOrSystem中的權限
Android官方文檔解釋 “signatureOrSystem” 級別。
android有4種權限:
- normal:低風險權限,只要申請了就可以使用(在AndroidManifest.xml中添加<uses-permission>標簽),安裝時不需要用戶確認;
- dangerous:高風險權限,安裝時需要用戶的確認才可使用;
- signature:只有當申請權限的應用程序的數字簽名與聲明此權限的應用程序的數字簽名相同時(如果是申請系統權限,則需要與系統簽名相同),才能將權限授給它;
- signatureOrSystem:簽名相同,或者申請權限的應用為系統應用(在system image中)。
這些權限都在frameworks/base/core/res/AndroidManifest.xml里面定義:
<permission android:name="com.android.alarm.permission.SET_ALARM"android:label="@string/permlab_setAlarm"android:description="@string/permdesc_setAlarm"android:protectionLevel="normal" /><permission android:name="android.permission.READ_CONTACTS"android:permissionGroup="android.permission-group.CONTACTS"android:label="@string/permlab_readContacts"android:description="@string/permdesc_readContacts"android:protectionLevel="dangerous" /><permission android:name="android.permission.ACCESS_IMS_CALL_SERVICE"android:permissionGroup="android.permission-group.PHONE"android:label="@string/permlab_accessImsCallService"android:description="@string/permdesc_accessImsCallService"android:protectionLevel="signature|system" /><permission android:name="android.permission.RECEIVE_EMERGENCY_BROADCAST"android:protectionLevel="signature|privileged" />system/app下的一般是Android系統內置的應用,例如:相機、瀏覽器、藍牙等等
system/priv-app下的一般時手機廠商預置的應用,例如:與手機廠商合作的各種應用。
system/app、system/priv-app目錄下的app什么時候安裝
Android系統啟動時,PackageManagerService由SystemServer啟動,PackageManagerService會掃描 /data/app、/system/app、/system/priv-app、/vendor/app、/vendor/overlay、/oem/app等等目錄,可以理解為會把這些目錄中的Apk安裝一遍,PackageManagerService會結合上面提到的packages.xml把各個App解析成PackageParser.Package對象。
手機app開發和機頂盒app開發的區別
手機app開發是直接基于Android原生無裁剪的SDK開發的,直接使用原生系統提供的各種API,且一般安裝在用戶目錄 data/app 之下。
機頂盒的系統是基于原生AOSP裁剪并進行相應擴展而來的系統,在其上開發的app調用了很多非原生自帶的API等。且一般安裝在系統目錄 system/app 或者廠商定制目錄 vendor/app 之下.
參考:
關于system/priv-app和system/app目錄以及權限
system/priv-app和system/app
/system/app 和 /system/priv-app 有什么區別?
[Android AOSP] /system/priv-app 和 /system/app區別
預制到system/app下面開機卻沒有
如何將apk文件更新到系統中vendor文件夾下
adb將Apk內置到系統中(system/priv-app)
總結
以上是生活随笔為你收集整理的Android系统的system/app和system/priv-app的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RFID区域实时定位系统
- 下一篇: 蒙氏三段卡---马三段卡