系统中签名Key:

  • media
  • platform
  • shared
  • testkey

签名Key存放的路径为build\target\product\security:

  • media.pk8和media.x509.pem
  • platform.pk8和platform.x509.pem
  • shared.pk8和shared.x509.pem
  • testkey.pk8和testkey.x509.pem

该目录下的verity*文件:

  • verity.pk8,用于签署boot.img和system.img的私钥
  • verity.x509.pem,证书包含的公钥
  • verity_key,dm-verity中用于system.img的公共密钥

**.pk8为私钥,*.x509.pem为公钥。

android.mk指定变量:
LOCAL_CERTIFICATE := PRESIGNED,打包apk时,沿用apk中原来的签名
LOCAL_CERTIFICATE := media,适用于媒体/下载系统所包含的 apk 包的测试密钥
LOCAL_CERTIFICATE := platform,适用于核心平台所包含的 apk 包的测试密钥
LOCAL_CERTIFICATE := shared,适用于家庭/联系人进程中的共享内容的测试密钥
LOCAL_CERTIFICATE := testkey,适用于未另外指定密钥的 apk 包的通用默认密钥

AndroidManifest.xml文件的manifest节点里面申明权限:

  • android:sharedUserId=“android.uid.system”
  • android:sharedUserId=“android.uid.shared”
  • android:sharedUserId=“android.media”

使用命令查看apk权限:
ps -A
可以看到USER的权限有:root,system,media,bluetooth,u0_a13,u0_a46,u0_a28等等。

Android 是一个权限分隔的操作系统,其中每个应用都有其独特的系统标识(Linux 用户 ID 和组 ID)。系统各部分也分隔为不同的标识。Linux 据此将不同的应用以及应用与系统分隔开来。

进程有独立的地址空间,进程与进程间默认是不能互相访问的,Android通过为每一个apk分配唯一的linux userID来实现,如我们上述看到的u0_a13,u0_a46,u0_a28,u0表示的user0,a13,a46,a28表示不同的进程。

可以看到,如果你的apk应用所在的用户是system,则说明你的应用是系统应用,拥有系统的权限。

更多相关文章

  1. Android系统基础介绍
  2. Android 调用相册 拍照 实现系统控件缩放 切割图片
  3. 2011.07.12(2)——— android Messenger 跨进程通信
  4. Android 系统状态栏一体化
  5. Android系统源码数据库(mmssms.db)
  6. 详解Android获取系统内核版本的方法与实现代码

随机推荐

  1. 最新最全的js判断移动设备及操作系统
  2. android eclipse 创建虚拟机时界面的OK键
  3. 安卓课程十 表格布局介绍
  4. Android(安卓)图片动画,点击缩放回弹
  5. 【Android】OpenCV4Android开发技巧
  6. android实现蓝牙app代码
  7. android中压缩图片的几种方法比较
  8. android 随手记 videoview循环播放网络视
  9. Android(安卓)View Activity内部顶部通知
  10. android 超好用的两次退出的代码, 值得收