博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android系统权限的管理
阅读量:5141 次
发布时间:2019-06-13

本文共 4470 字,大约阅读时间需要 14 分钟。

被权限搞了好久,决定好好的研究一下;

参考资料

http://blog.csdn.net/xieyan0811/article/details/6083019?reload

http://blog.csdn.net/simonjay2007/article/details/42103833

 

1. 修改文件系统权限

1. 查看每个系统的权限:特别是/system

root@sabresd_6dq:/ # mountrootfs / rootfs ro,size=345444k,nr_inodes=86361 0 0tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0...pstore /sys/fs/pstore pstore rw,relatime 0 0/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 0 0/dev/block/mmcblk3p6 /cache ext4 rw,nosuid,nodev,relatime,data=ordered 0 0/dev/block/mmcblk3p7 /device ext4 ro,nosuid,nodev,relatime,data=ordered 0 0...

可以看出来为只读文件系统,如果想要改为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 ?= ext4include device/fsl/imx6/imx6_target_fs.mkifeq ($(BUILD_TARGET_DEVICE),sd)ADDITIONAL_BUILD_PROPERTIES += \                        ro.boot.storage_type=sdifneq ($(BUILD_TARGET_FS),f2fs)TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab_sd.freescale# build for ext4PRODUCT_COPY_FILES +=    \    device/fsl/sabresd_6dq/fstab_sd.freescale:root/fstab.freescaleelseTARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab_sd-f2fs.freescale# build for f2fsPRODUCT_COPY_FILES +=    \    device/fsl/sabresd_6dq/fstab_sd-f2fs.freescale:root/fstab.freescaleendif # BUILD_TARGET_FSelseADDITIONAL_BUILD_PROPERTIES += \                        ro.boot.storage_type=emmcifneq ($(BUILD_TARGET_FS),f2fs)TARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab.freescale# build for ext4PRODUCT_COPY_FILES +=    \    device/fsl/sabresd_6dq/fstab.freescale:root/fstab.freescaleelseTARGET_RECOVERY_FSTAB = device/fsl/sabresd_6dq/fstab-f2fs.freescale# build for f2fsPRODUCT_COPY_FILES +=    \    device/fsl/sabresd_6dq/fstab-f2fs.freescale:root/fstab.freescaleendif # BUILD_TARGET_FSendif # BUILD_TARGET_DEVICE

可以看出,不同介质使用不同的文件系统

 

 可以知道我们的fstab为:device/fsl/sabresd_6dq/fstab.freescale

打开device/fsl/sabresd_6dq/fstab.freescale

# Android fstab file.#
# 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/2100000.aips-bus/2198000.usdhc/mmc_host* auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata/devices/soc0/soc/2100000.aips-bus/2184000.usb/ci_hdrc.0* auto auto defaults voldmanaged=usb:auto,encryptable=userdata/devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1* 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=314572800

修改上面红色的ro为rw

修改后烧录,可以看见确实修改了

 

2. 修改系统层文件属性

在源码中的属性跟编译后在out目录中的属性有可能是不一样的,即使是通过脚本复制过去的。

比如在/system/bin下就可执行,但是在/out/xxx/system/etc下就不能直接通过chmod修改。想要修改必须去修改代码;

详细可见的第4.4节

 

3. 修改框架层文件属性(framework层)(未看,用到再写)

 

http://blog.csdn.net/xieyan0811/article/details/6083019?reload

 

4. 修改应用层文件属性

 

转载于:https://www.cnblogs.com/maogefff/p/7985312.html

你可能感兴趣的文章
【Finish】Python Day 9
查看>>
css3实现漂亮的按钮链接
查看>>
最大矩形面积
查看>>
[python基础] python 2与python 3的区别,一个关于对象的未知的坑
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
Enterprise Library 加密应用程序块的设计
查看>>
深度剖析post和get的区别
查看>>
云的世界
查看>>
WPF border属性
查看>>
初识DetNet:确定性网络的前世今生
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
linux下启动tomcat----Cannot find ./catalina.sh
查看>>
adb的配置
查看>>
MATLAB基础入门笔记
查看>>
进程、线程、应用程序之间的关系
查看>>
20171020java学习总结——execl 批量导入
查看>>
如何自绘树形控件(QQ好友列表)
查看>>
web异步开发——ajax
查看>>
将WPF版的弹幕播放器给优化了一下
查看>>
Qt5 动态库的创建与使用
查看>>