android系统权限的管理
被权限搞了好久,决定好好的研究一下;
参考资料
http://blog.csdn.net/xieyan0811/article/details/6083019?reload
http://blog.csdn.net/simonjay2007/article/details/42103833
1. 修改文件系统权限
1. 查看每个系统的权限:特别是/system
root@sabresd_6dq:/ # mount
rootfs / rootfs ro,size=345444k,nr_inodes=
tmpfs /dev tmpfs rw,nosuid,relatime,mode= ...
pstore /sys/fs/pstore pstore rw,relatime
/dev/block/mmcblk3p5 /system ext4 ro,relatime,data=ordered 0 0
/dev/block/mmcblk3p4 /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,errors=panic,data=ordered
/dev/block/mmcblk3p6 /cache ext4 rw,nosuid,nodev,relatime,data=ordered
/dev/block/mmcblk3p7 /device ext4 ro,nosuid,nodev,relatime,data=ordered
...
可以看出来为只读文件系统,如果想要改为rw,有两种方法:
1. 重新挂在文件系统(坏处:关机就没了,也没有放入镜像文件,就相当于一个临时变量,临时调试可以用这个方法)
2. 修改源码fstab文件(永久性的,编译进入镜像文件)
1. 重新挂在文件系统
root@sabresd_6dq:/ # mount -o remount /dev/block/mmcblk3p5 /system
再次mount查看发现为rw了
2. 修改源码改变文件系统属性
方法一:
直接查看out/target/product/sabresd_6dq/root/fstab.freescale
找到/system进行修改,然后make, 不过清除掉就没有了
方法二:
查看device/fsl/sabresd_6dq/BoardConfig.mk
BUILD_TARGET_FS ?= ext4
include device/fsl/imx6/imx6_target_fs.mk ifeq ($(BUILD_TARGET_DEVICE),sd)
ADDITIONAL_BUILD_PROPERTIES += \
ro.boot.storage_type=sd
ifneq ($(BUILD_TARGET_FS),f2fs)
TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab_sd.freescale
# build for ext4
PRODUCT_COPY_FILES += \
device/fsl/sabresd_6dq/fstab_sd.freescale:root/fstab.freescale
else
TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab_sd-f2fs.freescale
# build for f2fs
PRODUCT_COPY_FILES += \
device/fsl/sabresd_6dq/fstab_sd-f2fs.freescale:root/fstab.freescale
endif # BUILD_TARGET_FS
else
ADDITIONAL_BUILD_PROPERTIES += \
ro.boot.storage_type=emmc
ifneq ($(BUILD_TARGET_FS),f2fs)
TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab.freescale
# build for ext4
PRODUCT_COPY_FILES += \
device/fsl/sabresd_6dq/fstab.freescale:root/fstab.freescale
else
TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab-f2fs.freescale
# build for f2fs
PRODUCT_COPY_FILES += \
device/fsl/sabresd_6dq/fstab-f2fs.freescale:root/fstab.freescale
endif # BUILD_TARGET_FS
endif # BUILD_TARGET_DEVICE
可以看出,不同介质使用不同的文件系统

可以知道我们的fstab为:device/fsl/sabresd_6dq/fstab.freescale
打开device/fsl/sabresd_6dq/fstab.freescale:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK /devices/soc0/soc/.aips-bus/.usdhc/mmc_host* auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
/devices/soc0/soc/.aips-bus/.usb/ci_hdrc.* auto auto defaults voldmanaged=usb:auto,encryptable=userdata
/devices/soc0/soc/.aips-bus/.usb/ci_hdrc.* auto auto defaults voldmanaged=usb1:auto,encryptable=userdata
/dev/block/mmcblk3p5 /system ext4 ro,barrier=1 wait,verify
/dev/block/mmcblk3p4 /data ext4 nosuid,nodev,nodiratime,noatime,nomblk_io_submit,noauto_da_alloc,errors=panic wait,encryptable=/dev/block/mmcblk3p9
/dev/block/mmcblk3p6 /cache ext4 nosuid,nodev,nomblk_io_submit wait
/dev/block/mmcblk3p7 /device ext4 ro,nosuid,nodev wait
/dev/block/mmcblk3p1 /boot emmc defaults defaults
/dev/block/mmcblk3p2 /recovery emmc defaults defaults
/dev/block/mmcblk3p8 /misc emmc defaults defaults
/dev/block/mmcblk3boot0 /bootloader emmc defaults defaults
/dev/block/zram0 none swap defaults zramsize=
修改上面红色的ro为rw
修改后烧录,可以看见确实修改了
2. 修改系统层文件属性
在源码中的属性跟编译后在out目录中的属性有可能是不一样的,即使是通过脚本复制过去的。
比如在/system/bin下就可执行,但是在/out/xxx/system/etc下就不能直接通过chmod修改。想要修改必须去修改代码;
详细可见canopen的移植到Android6.0的第4.4节
3. 修改框架层文件属性(framework层)(未看,用到再写)
http://blog.csdn.net/xieyan0811/article/details/6083019?reload
4. 修改应用层文件属性
android系统权限的管理的更多相关文章
- Android系统权限及签名
Android系统权限及签名 2015-03-23 19:13:33CSDN-chen52671-点击数:50 Android权限及签名 引子 现象:系统中的一个定制Service,服务是 ...
- 对Android系统权限的认识
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制 Android系统权限相关的内容 (一)linux文件系统上的权限 -rwxr-x--x ...
- Android系统权限和root权限
Android系统权限和root权限http://www.verydemo.com/demo_c189_i277.html
- Android系统权限和root权限大全
tyle="margin:20px 0px 0px; font-size:14.285714149475098px; line-height:26px; font-family:Arial; ...
- android系统权限SET_PREFERRED_APPLICATIONS怎么获取
最近自己写个demo,需要用到SET_PREFERRED_APPLICATIONS权限 在网上找了半天,大概有两种方式: 1. 将手机root后,把apk强行push到system/app目录下,重启 ...
- Android——系统权限
Android是一个特权分隔的操作系统,每一个应用程序运行在不同的系统身份中(Linux的user ID和group ID).系统部分和不同的身份被隔离开来.因此,Linux隔离了应用程序(与其它程序 ...
- [转]通过apk签名使应用程序有系统权限
[转]通过apk签名使应用程序有系统权限 (2013-01-08 13:40:50) 转载▼ 标签: it 分类: Android 出处:http://blog.csdn.net/doom66151/ ...
- [Android Pro] android 4.4 Android原生权限管理:AppOps
reference : http://m.blog.csdn.net/blog/langzxz/45308199 reference : http://blog.csdn.net/hyhyl1990/ ...
- Android应用权限管理总结
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permi ...
随机推荐
- 10-06 Linux的基本命令以及一些简单的通配符说明
Shell的通配符 主要用于模式匹配,如:文件名匹配,路径名搜索,字符查找等.常用的有:'*','?','[]' '*':代表任意长度的字串. '?':代表单个任意字符 '[]':代表模式串匹配的字符 ...
- docker为什么适合devops?
欢迎访问网易云社区,了解更多网易技术产品运营经验 进阶版结论:Kubernetes + Docker 是 Dev 和 Ops 融合的一个桥梁. DevOps 强调的是高效组织团队之间如何通过自动化 ...
- 为何会有Python学习计划
近几年感觉自己需要不断充电,从网上找寻技术潮流前端时Python映入眼帘,未来的技术,Python应该很有市场. 于是,以很低的成本从网上找到相关最新学习资料,希望自己未来的路,能坚持与书为伴,不断攀 ...
- MVC框架入门准备(二) - 语言包类与工厂模式
语言包类: 相关配置项 LANG_FOLDER : 语言包目录名,默认为Lang LANG_AUTO : 自动识别语言,默认为true DEFAULT_LANG : 默认语言,默认为zh-cn方法 取 ...
- php—Smarty-1 (18)
smarty 一.模板原理 1. 为什么使用模板 1) 场景: ;$i<$count;$i++){ echo ‘<td>’.$row[‘proname’].’</td> ...
- 【ocp-12c】最新CUUG OCP-071考试题库(48题)
48.(10-12)choose the best answer View the Exhibit and examine the description for the PRODUCTS and S ...
- leecode刷题(19)-- 最长公共前缀
leecode刷题(19)-- 最长公共前缀 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: [&quo ...
- mysql随机取出若干条记录的实用方法
1.常见的方法 ; 这种方法可以随机取得数据,但是如果表比较大,数据量很多的时候会很耗时. 2.优化后的方式 ) as t ); 分析,首先根据条件筛选出要选的数据,然后随机排序取出要的条数的id , ...
- 使用python 模仿mybinlog 命令 二进制分析mysql binlog
出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...
- GDB:从单线程调试到多线程调试(MFiX单步调试)
GDB:从单线程调试到多线程调试 1. 裸跑GDB 1.1 安装GDB sudo apt-get install gdb 1.2 编译程序 由于需要调试,因此编译的时候需要添加-g编译参数: 1.3 ...