`

认识Android的UID(Unix user ID)与权限

阅读更多
    在传统计算机上,UID是跟随着「人」(例如计算机的使用者或用户)。Android里的UID是跟随着「软件」(例如Android应用程序)。
由于每个应用程序都有个UID,只有带着此UID,才能存取该UID所涵盖的有关资料。所以如果AP-1与AP-2的UID不同,则在预设(Default)情况下,双方都无法读取对方的数据。这种分而治之的方式,可以减轻黑客软件的恶意伤害数据,提升手机的安全性。
当手机使用者(即User)下载你(即开发者)的应用程序,在安装(Install)时,Android就会给予一个UID。这个UID可连结到该应用程序的 AndroidManifest.xml档案的内容。所以User在安装你的应用程序时,在屏幕上的窗口里可以检视这个AndroidManifest.xml档案的内容。在检视时,用户会看到你对应用程序的目的、权限等说明。当你接受这支程序的意图、权限说明之后,Android就安装它,并给它一个UID。万一在你的应用程序执行期间有越轨(企图做出非权限范围)的行为时,用户将会得到Android的警告讯息。
有一些特殊情形下,两支应用程序是可以持有一样的UID。例如,同一位开发者撰写的应用程序,常常需要推出新版本,这两种版本的程序可以持有一样的UID, 才有权限去将旧版程序所产生的数据拷贝转移到新版软件里。
一个用户在其使用手机的用例(Use Case)里,通常由一个Activity启动开始,透过Intent对象去启动其它的Activity、Service、ContentProvider等具有不同UID的一连串应用程序,才能满足一个用例的目标。在传统计算机上,UID是跟随着「人」,一个用户持着一个UID就能执行一连串的应用程序,而且在预设条件下是可以互相共享数据。但是在Android里,这一连串的应用程序是各有自己的UID,而且可能都持着不同的UID,原则上是不能任意存取对方的资料。
    UID与AndroidManifest.xml档案的连结除了可以保护各程序的私有数据之外,还可以禁止程序越权使用手机的各项资源。例如,开发者在AndroidManifest.xml档案里表明此程序有READ_CONTACTS的授权。用户在安装此应用程序时,检视过AndroidManifest.xml的授权内涵,而且接受之。此应用程序就能合法地存取手机里的通讯簿数据,甚至授权拨打电话、发简讯等等。
刚才提到过,一个用户的用例(Use Case)里,通常由多个不同UID的Activity、Service、ContentProvider等一连串的应用程序所串接,才能满足用例的目标。此时,如果它们都必须存取通讯簿的话,必须都持有相同的READ_CONTACTS授权才行。
    以上就应用程序的开发者、使用者的角度来说明Android的UID之意义和用法
分享到:
评论

相关推荐

    android 12.认识Android的UID(Unix user ID)与权限

    android 12.认识Android的UID(Unix user ID)与权限

    ANDROID 中UID与PID的作用与区别

    ANDROID 中UID与PID的作用与区别

    台湾高焕堂Android讲义

    12.认识Android的UID(Unix user ID)与权限.doc 13.Android的IBinder接口及其安全性机制.doc 14.Activity之间的Inter-process沟通.doc 15.从应用框架角度看ListView与Adapter类别.doc 16.善于设计自己的Listener来...

    高焕堂关于Android讲义

    12.认识Android的UID(Unix user ID)与权限 13.Android的IBinder接口及其安全性机制 14.Activity之间的Inter-process沟通 15.从应用框架角度看ListView与Adapter类别 16.善于设计自己的Listener来进行沟通 17....

    android 添加系统权限 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

    原因:apk的AndroidManifest.xml中声明了android:sharedUserId="android.uid.system",但没有相应的签名 解决方案: 1. 找到编译目标系统时的签名证书platform.pk8和platform.x509.pem,在android源码目录build\...

    为apk签android.uid.system名工具包

    为apk签android.uid.system名工具包signapk.jar,platform.x509.pem,platform.pk8

    Android NFC读取标签UID

    Android NFC 手机读取 标签UID的一个小代码 初学Android 和NFC 希望得到老手指教 和给同样是初学的小盆友一个参考

    Android安全机制 PPT版本

    Android应用程序在安装的过程中,安装服务PackageManagerService会为它们分配一个唯一的UID和GID,以及根据应用程序所申请的权限,赋予其它的GID。有了这些UID和GID之后,应用程序就只能限访问特定的文件,一般就是...

    8.1 android 串口编程

    android:sharedUserId=“android.uid.system” 不过这样的话,app就要放到源码里编译了。 2、 /dev/ttyS4要有读写权限 (你的串口不一定是这个ttyS4) ls -l /dev/ttyS4 如果没有读写权限,记得在init.rc里面添加 ...

    Basic Unix commands

    Basic Unix commands 1 clear :清空当前屏幕上的内容 2 pwd :输出当前工作目录的绝对路径 3 id【用户名】:查看用户的Uid、Gid和用户所属组群信息 4 cd 【目录】 :切换到指定的目录 5 cd 回到主目录; cd .. 回到...

    android.uid.system所需文件

    android.uid.system的所需文件 ,就是这个··········································

    Android普通应用升级为系统应用并获取系统权限的操作

    有时候使用某些api需要使用系统权限,如调用PackageInstaller的相关接口,需要android.permission.INSTALL_PACKAGES权限,该权限系统只会授权给系统应用,此时可以考虑将我们的应用升级为系统应用,升级为系统应用有...

    工控安全职业证书技能实践:文件及程序安全权限配置实战.docx

    此实验主要内容是初步了解用户身份与进程权限,掌握改变进程effective user ID,以及理解掌握多用户锁定策略和系统关键位置权限控制,从而部分掌握文件及程序安全权限配置方法(linux) 实验目标 1设置特殊权限set ...

    Linux文件特殊权限SGID-UID详解

    Linux文件特殊权限SGID-UID详解

    android系统签名工具

    通过在每个App中使用sharedUserId设置即可共享系统账户权限,比如android:sharedUserId="android.uid.system" 这样就是用了system这个uid了。给apk增加系统签名,否则一些系统apk将无法安装,使用命令: java -jar ...

    Android 权限修复工具 Fix

    用于修复 Package xxx has mismatched uid 错误。 修复了 UID: readonly variable 错误

    Android系统签名文件生成工具

    app获取系统级权限有两种方法,一个是root,另一个是在AndroidManifest中添加android:sharedUserId="android.uid.system",但是Manifest文件中加入sharedUserId后,我们会发现一个问题,就是INSTALL_FAILED_SHARED_...

    shell和unix命令

    本章包含以下内容: ? 文件和目录的权限。 ? setuid。 ? chown和c h g r p。 ? umask。 ? 符号链接。

    linux-权限管理视频教程

    08.1.1 权限管理-ACL权限-简介与开启.mp4 08.1.2 权限管理-ACL权限-查看与设定.mp4 08.1.3 权限管理-ACL权限-最大有效权限与删除.mp4 08.1.4 权限管理-ACL权限-默认与递归ACL权限.mp4 08.2.1 权限管理-文件特殊...

    Android需要提升权限的操作方法

    权限提升方法:一种方法:1、在AndroidManifest.xml中的manifest节点中添加 android:sharedUserId=”android.uid.system”。2、添加后程序在虚拟机上是不可以直接用的。但可以用eclipse编译成apk。3、(这一步经验证...

Global site tag (gtag.js) - Google Analytics