Android Permission 机制

AndroidManifest.xml里面的sharedUserID能够让不同的apk运行在同一个进程里,分享里面的数据,比如Contacts等,当然这个sharedUserID可以设置成“android.uid.system”就可以运行在系统进程中,有权修改系统数据。

但仅仅有着一个sharedUserID并不能够保证你的apk一定能运行成功,怎么办?签名啊。如果你有Android的源码就比较方便了,直接把Android.mk里面的LOCAL_CERTIFICATE 赋值为platform就行了。然后mm编辑,就能安装了。因为在安装的时候,PackageManager会检查,如果sharedUserId是system的,它会看这个apk的签名是不是system.crt,如果不是,会报出permission deny的error。而把LOCAL_CERTIFICATE改成platform就等于给APK签名。

进而可以通过这个问题研究一下整个Android permission的机制。系统的安全机制通过给每个用户分配单独的uid和gid来实现,Android系统中pid代表进程ID,这个是有系统在程序运行时分配的,这一点可以防止地址空间的数据共享,增强内存空间的安全性。对于外部则用到了uid进行封锁。

系统会给于用户进程单独的uid,当然系统也是要运行进程的,比如System,Radio,蓝牙,IO设备。系统中的init.rc文件会详细定义这些文件的权限。Android中对uid的定义是Root最高,其次是system,最低的是app。这是基于Linux系统的结果。

那么在APP里,要对一些进程进行访问,或者接受Broadcast,或者启动Activity、Service都是需要权限的,不能说你的app什么都能做,这也是需要在manifest file中设置的。

比如在startActivity时,如果你start自己apk里的activity,它们会在同一个application下,那么自然也就使用一个uid,start过程自然没有什么问题。如果你需要start别人写的Activity或者service,都需要用到同一个shareUserId才行,因为在ActivityManagerService要启动activity的之前,会首先检查uid,用checkPermission方法,透过binder获得pid和uid,检查你activity的binder的权限,如果你有权限则已,没权限的话就会抛出security exception。至于broadcast,检查则更为严格,会双向的检查发出者和接受者的权限.

时间: 2024-10-10 00:21:30

Android Permission 机制的相关文章

Android 安全机制概述 Permission

1 Android 安全机制概述  Android 是一个权限分离的系统 . 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 . 与此 同时, Android 还 在此基础上进行扩展,提供了 permission 机制,它主要是用来对 Application 可以执行的某些具体操

Android权限机制带来的一些安全问题介绍_Android

Android引入了权限机制最初的出发点是为了通过权限策略来严格控制和处理安全问题,可参见:下面两篇文章,但关于这个Android权限的机制仍然存在一些很小但不容忽略的问题,另外正所谓道高一尺魔高一丈,仍然存在一些可以绕过权限的方法.本文旨在分析权限机制的一些缺点和不足,并不能以此文章作为非法应用的参考书. Android Permission权限机制引子 Android Permission权限机制的具体使用 权限机制的缺陷和不足 (1) 应用程序可以自由地命名一个新的权限,无须遵循一定的命名

Android签名机制介绍:生成keystore、签名、查看签名信息等方法_Android

Android独有的安全机制,除了权限机制外,另外一个就是签名机制了.签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查. 升级App 用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示. 权限检查 我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的  protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明

理解Android安全机制

本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案. 1.Android系统架构 Android采用分层的系统架构,由下往上分别是linux内核层.硬件抽象层.系统运行时库层.应用程序框架层和应用程序层. Android以Linux操作系统内核为基础,实现硬件设备驱动.进程和内存管理.网络协议栈.电源管理等核心系统功能.除此以外,Android还增加了一些面向移动设备的特有功能,如低内存管理LMK(Low

Android群英传笔记——第六章:Android绘图机制与处理技巧

Android群英传笔记--第六章:Android绘图机制与处理技巧 一直在情调,时间都是可以自己调节的,不然世界上哪有这么多牛X的人 今天就开始读第六章了,算日子也刚好一个月了,一个月就读一半,这效率也确实有点低了,自己还要加把劲,争取四月底全部看完,第六章讲的是Android的绘图机制,应该算是比较核心的东西了,不管什么功能,最终都是以图形的方式呈现给用户的,因此,掌握Android的绘图技巧,可以在让你设计应用的时候更加的随心所欲,对Android的理解更高 基本的绘图方法,相信读者都已经

Android群英传笔记——第七章:Android动画机制和使用技巧

Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最 近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中十分重要的一部分,从早期的Android版本中,由于动画机制和绘图机制的不健全,Android的人机交互备受诟病,Android从4.X开始,特别是5.X,动画越来越完善了,Google也开始重视这一方面了,我们本章学习的主要内容有 Android视图动画' Android属性动画 Android动

launcher-Launcher,must have permission android.permission.SET_WALLPAPER_HINTS

问题描述 Launcher,must have permission android.permission.SET_WALLPAPER_HINTS 有空帮我看下这问题,万分感想. (在虚拟机上运行) 11-14 10:09:06.565: E/AndroidRuntime(402): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hskj.iphonehome/com.hskj.iphonehome.

android 广播机制,短信电话 拦截

问题描述 android 广播机制,短信电话 拦截 我需要做的是一个安卓小项目,广播机制实现对短信.电话 的拦截,电话短信 均为sqlite数据库的两张表 ,求大神指定? 解决方案 android 关于特定短信电话拦截android短信和广播机制android--广播及短信拦截 解决方案二: 电话 contacts2.db 短信 mmssms.db 解决方案三: http://blog.sina.com.cn/s/blog_a28e3dd901018wky.html

Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解

Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆形,三角形,多边形等-. 新建一个项目 然后我们创建一个listview,每个图案一个Activity,这样看起来是不是很顺眼 <ListView android:id="@+id/listview" android:layout_width="wrap_content&q