[问题] android上层控制proc文件方式

楼主: blueblance ( )   2015-11-02 19:46:10
各位大大好,想请问一下
我在android 5.0的kernel中建立了一个proc文件
进到adb shell中也可以正常的写入
EX: echo ABC > /proc/test
也确实会做出我要的动作
但我在android studio中做一个APP想要做一样的动作
File test = new File(/proc/test)
try{
FileWriter fr = new FileWriter(test);
fr.write("ABC");
fr.close
}catch(IOExeption e){
textview_msg.setTest("fail")
}
像这样的程式却没有写进/proc/test中没有做出我想要的动作
在textview_msg中也都是显示fail
应该是我写入错误
想请问一下各位问题是出在哪里呢?
作者: clanguage (C语言)   2015-11-02 20:30:00
会不会是你没有权限阿?
作者: mshockwave (夏克维夫)   2015-11-02 23:26:00
adb 和普通app 的 group有时候会不一样喔像是AOSP engineer版出来的adb权限都会给很大
楼主: blueblance ( )   2015-11-03 09:53:00
请问我文件权限设为0666,APP还有可能会权限不够吗?
作者: leolarrel (真.粽子无双)   2015-11-03 10:44:00
IOExeption e这个例外物件应该会保存错误的原因,找资料e这个物件的属性都找一找看看有没有,不然我们没看到错误讯息也很难隔空抓药
楼主: blueblance ( )   2015-11-03 14:45:00
java.io.FileNotFoundException: /proc/ABCopen failed: EACCES (Permission denied)e的属性是这样 看样子是 权限问题,但是我的文件中.open的时候显示的讯息,却能够从APP去读取还是说我include的函数,包到其他有权限的文件就会发生请问有办法让app有跟adb同样的权限吗?
作者: leolarrel (真.粽子无双)   2015-11-04 12:41:00
android 执行时期可能还有额外的权限设定,adb 单纯就只是一个标准的linux 程式,自然设成0666就没问题,至于android 执行时期的权限设定要麻烦你去找google或其他高手了,这方面我不专业,对不起
作者: Bencrie   2015-11-04 12:49:00
adb shell 底下用 su 去切 uid就可以模拟 App 存取了App 最多就到 system 权限吧,要签 platform key
楼主: blueblance ( )   2015-11-05 10:39:00
感谢楼上大大的建议,后来发现应该是SElinux架构的影响在ADB中把SElinux给disable后就正常了~
作者: leolarrel (真.粽子无双)   2015-11-05 11:49:00
果然是额外的权限设定,不过出货的android都有enableSElinux吧
楼主: blueblance ( )   2015-11-05 14:35:00
android 5.0之后好像都默认是开启的,因为我是拿开发板另外有root的话,好像有APP能直接把SElinux关闭的样子

Links booklink

Contact Us: admin [ a t ] ucptt.com