4
我試圖編寫一個應用程序,在運行時將某些內容複製到/ system分區。我已經實現了通過請求SU權限以root身份運行終端命令的能力。我可以成功運行很多命令(在使用SuperUser授予權限請求之後)。但是,當我嘗試重新掛載/系統爲讀/寫時,沒有任何反應。我沒有遇到錯誤或崩潰,並且該命令看起來很好,但分區保持爲只讀狀態。這裏是我運行的命令(Droid X):mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
,如果我從終端運行相同的命令,它工作得很好。下面是我的代碼來執行根命令從我的應用程序中:Android:如何從我的APK中掛載RW文件系統? (當然,根源)
String cmd = "mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system";
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
然後,我有一些代碼,檢查輸出和錯誤streamd看看發生了什麼。任何人都可以給我一個想法,爲什麼這不起作用?
只是如果你已經回答了你自己的問題到你滿意,可以接受你自己的回答。 – powerj1984 2011-09-21 00:00:40
文件系統不太可能立即被重新安裝爲只讀 - 通常它會保持可寫狀態,直到您重新安裝或重新啓動爲止。然而,向超級用戶升級缺乏粘性往往是人們試圖做到這一點的問題。您幾乎可以肯定需要成爲超級用戶才能重新安裝/系統,並且一旦它可寫入就可以對其進行更改。 – 2012-05-05 05:19:32
一般情況下,文件系統的RW狀態一直存在,但就實際能夠使用APK執行任何文件操作而言,它肯定不會像那樣工作。所有的文件操作必須在與RW命令相同的進程中完成,否則它將無法工作。 – user496854 2012-05-07 08:25:32