[問題] android上層控制proc文件方式

看板LinuxDev作者 (賀!!真的失戀了)時間9年前 (2015/11/02 19:46), 編輯推噓2(2023)
留言25則, 5人參與, 最新討論串1/1
各位大大好,想請問一下 我在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 應該是我寫入錯誤 想請問一下各位問題是出在哪裡呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.190.15 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1446464773.A.901.html

11/02 20:30, , 1F
會不會是你沒有權限阿?
11/02 20:30, 1F

11/02 23:26, , 2F
adb 和普通app 的 group有時候會不一樣喔
11/02 23:26, 2F

11/02 23:27, , 3F
像是AOSP engineer版出來的adb權限都會給很大
11/02 23:27, 3F

11/03 09:53, , 4F
請問我文件權限設為0666,APP還有可能會權限不夠嗎?
11/03 09:53, 4F

11/03 10:44, , 5F
IOExeption e這個例外物件應該會保存錯誤的原因,找資料
11/03 10:44, 5F

11/03 10:45, , 6F
e這個物件的屬性都找一找看看有沒有,不然我們沒看到錯
11/03 10:45, 6F

11/03 10:45, , 7F
誤訊息也很難隔空抓藥
11/03 10:45, 7F

11/03 14:45, , 8F
java.io.FileNotFoundException: /proc/ABC
11/03 14:45, 8F

11/03 14:45, , 9F
open failed: EACCES (Permission denied)
11/03 14:45, 9F

11/03 14:45, , 10F
e的屬性是這樣 看樣子是 權限問題,但是我的文件中
11/03 14:45, 10F

11/03 14:48, , 11F
.open的時候顯示的訊息,卻能夠從APP去讀取
11/03 14:48, 11F

11/03 14:50, , 12F
還是說我include的函數,包到其他有權限的文件就會發生
11/03 14:50, 12F

11/03 14:51, , 13F
請問有辦法讓app有跟adb同樣的權限嗎?
11/03 14:51, 13F

11/04 12:41, , 14F
android 執行時期可能還有額外的權限設定,adb 單純就只
11/04 12:41, 14F

11/04 12:42, , 15F
是一個標準的linux 程式,自然設成0666就沒問題,至於
11/04 12:42, 15F

11/04 12:43, , 16F
android 執行時期的權限設定要麻煩你去找google或其他
11/04 12:43, 16F

11/04 12:43, , 17F
高手了,這方面我不專業,對不起
11/04 12:43, 17F

11/04 12:49, , 18F
adb shell 底下用 su 去切 uid就可以模擬 App 存取了
11/04 12:49, 18F

11/04 12:50, , 19F
App 最多就到 system 權限吧,要簽 platform key
11/04 12:50, 19F

11/05 10:39, , 20F
感謝樓上大大的建議,後來發現應該是SElinux架構的影響
11/05 10:39, 20F

11/05 10:40, , 21F
在ADB中把SElinux給disable後就正常了~
11/05 10:40, 21F

11/05 11:49, , 22F
果然是額外的權限設定,不過出貨的android都有enable
11/05 11:49, 22F

11/05 11:49, , 23F
SElinux吧
11/05 11:49, 23F

11/05 14:35, , 24F
android 5.0之後好像都預設是開啟的,因為我是拿開發板
11/05 14:35, 24F

11/05 14:36, , 25F
另外有root的話,好像有APP能直接把SElinux關閉的樣子
11/05 14:36, 25F
文章代碼(AID): #1MDqq5a1 (LinuxDev)
文章代碼(AID): #1MDqq5a1 (LinuxDev)