文章原文:https://blog.csdn.net/vrix/article/details/38292755
返回知识列表:Android知识列表
Android system/app/与system/priv-app/的区别
在system/priv-app目录主要是存放手机厂商定制的系统的系统级应用,比如phone app,settings app,systemui app等,这些应用需要系统及权限,而又不能被用户卸载掉。这个目录是在Android KitKat新增加的分区。在KitKat之前版本在系统分区的所有apks都可以使用系统权限,这个更改使手机厂商能够更好的控制捆绑软件对敏感权限的访问。手机厂商在定制一些系统软件的时候软件也会需要专门给priv-app添加selinux policy。当然应用需要获取系统权限还有其他的办法,在AndroidManifest.xml文件中添加 android:sharedUserId="android.uid.sysytem",同时给该apk添加系统签名,比如小米手机就需要给apk添加小米的系统权限。
其实从安全的角度考虑,谷歌也不希望使用WebView控件的system/app/的应用拥有系统权限,比如Chrome,Chrome一直是黑客喜欢利用的攻击点,所以谷歌在代码力会检测使用WebView控件的应用有没有系统权限。贴一段代码:
194 static WebViewFactoryProvider getProvider() {
195 synchronized (sProviderLock) {
196 // For now the main purpose of this function (and the factory abstraction) is to keep
197 // us honest and minimize usage of WebView internals when binding the proxy.
198 if (sProviderInstance != null) return sProviderInstance;
199
200 final int uid = android.os.Process.myUid();
201 if (uid == android.os.Process.ROOT_UID || uid == android.os.Process.SYSTEM_UID
202 || uid == android.os.Process.PHONE_UID || uid == android.os.Process.NFC_UID
203 || uid == android.os.Process.BLUETOOTH_UID) {
204 throw new UnsupportedOperationException(
205 "For security reasons, WebView is not allowed in privileged processes");
206 }
注意黄色标记的进程都是具有system权限的。
以上就是system/priv-app/分区的特殊之处。
如下是汇总的现有APP。红色的是系统APP。
/system/app/
/system/product/app/
/system/priv-app/
/system/media/bootanimation.zip media目录下只有一个文件。这是谷歌的开机动画文件。
手机中位置 | ||
AntHalService.apk | 就是天线接口,用来连接天线的 | |
ApplicationsProvider.apk | 应用程序支持服务,主要用于同步数据。 | |
atfwd.apk | ||
atuner.apk | ||
AutoPair.apk | /system/app/AutoPair/AutoPair.apk | 蓝牙自动配对 |
BackupRestoreConfirmation.apk | 备份和重置 | |
BasicDreams.apk | /system/app/BasicDreams/BasicDreams.apk | 休眠模式 |
Bluetooth.apk | 蓝牙 | |
BluetoothExt.apk | ||
Browser.apk | 浏览器 | |
BTTestApp.apk | ||
BugReportSender | /system/product/app/ | |
CABLService.apk | 背光自适应程序 | |
Calculator.apk | 计算器 | |
Calendar.apk | 日历 | |
CalendarProvider.apk | 日历同步 | |
CellBroadcastReceiver.apk | 手机广播接收 | |
CertInstaller.apk | 证书安装 | |
com.qualcomm.location.apk | 定位服务 | |
com.qualcomm.qlogcat.apk | 打印log | |
Contacts.apk | 联系人 | |
ContactsProvider.apk | 联系人存储服务 | |
DefaultContainerService.apk | 默认联系人服务 | |
DeskClock.apk | 时钟 | |
Dialer.apk | 拨号器 | |
DownloadProvider.apk | 下载管理器 | |
DownloadProviderUi.apk | 下载管理器UI | |
DrmProvider.apk | 受保护数据存储服务 | |
Email.apk | 邮件 | |
embms.apk | 多媒体广播多播业务 | |
Exchange2.apk | 邮箱服务 | |
FallbackHomeCustomizer.apk | /system/product/app/FallbackHomeCustomizer | 在启动Launcher之前会先启动一个FallbackHome,之后才会启动Launcher. |
fastdormancy.apk | 快速休眠 | |
FM.apk | 收音机 | |
FMRecord.apk | 电台列表 | |
FTMMode.apk | 工厂测试模式 | |
FusedLocation.apk | 地理位置 | |
Galaxy4.apk | 星系动态壁纸 | |
InputDevices.apk | 输入设备 | |
KeyChain.apk | 锁屏设置 | |
Launcher2.apk | 启动器 | |
LiveWallpapers.apk | 动态壁纸 | |
MediaProvider.apk | 媒体支持服务 | |
Mms.apk | 短信 | |
Music.apk | 音乐管理器 | |
NfcNci.apk | NFC通讯组件 | |
PackageInstaller.apk | 安装服务 | |
Provision.apk | Home键相关 | |
Settings.apk | 系统设置 | |
SharedStorageBackup.apk | 共享存储备份 | |
Shell.apk | shell | |
SystemUI.apk | 系统用户界面 | |
TimeService.apk | 时间服务 | |
WAPPushManager.apk | 推送服务 | |