前言
在android程序开发中,一般开发者都喜欢root手机,因为root过后的手机,你对于这个手机,就是一个真正的上帝了。你可以查看任何数据的私有目录,特别是data/data/packageName/files,随意的篡改目录下内容。
ok,一般我们作为开发,都会做一些"云控"更新数据的事情,比较喜欢把数据放到私有目录下,因为不管是普通使用者或者是其他应用,都是无法来侵犯 我们这个“神圣的领域的”。
接着,我们来切入正题,有这样一个场景:我们要“云控”来决定一个activity展示的内容,数据呢,自然是通过http 下发到私有目录 files下面,但是呢,我们这个功能还在开发阶段,没有部署服务端接口,然后呢,反正我的手机root了,干脆直接把要“云控”的资源copy到files下就行啦,哈哈哈,好聪明。
进展
聪明如我,开始执行,然后,就会看到这个:
解决
接着就该找解决方法了,我们先来看看资源的权限:
先要说明下:aq 是程序内部自己创建的,aq_root是我拥有root权限后在该files目录下手动创建的,aq_root_other是我在别的地方创建,然后拷贝到该目录下的。ok,文件所属用户组以及读写权限一目了然。然后我们再来看第一张图片,报错的位置 :
libcore.io.Posix,open
,C层权限问题啊,所以我们要看看这部分是什么样的逻辑啦