2012-05-10 63 views
1

我需要重新安裝android文件系統作爲讀取而不是隻讀。我知道如何通過命令提示符來做到這一點,以及如何去做應用程序開發。通過java重新安裝Android文件系統

但我進入調整的Android源代碼,有,如果我使用

Process proc=Runtime.getRuntime.exec("su"); 

它亙古不變的工作。因此,我需要使用android.os.process對象,並且我卡在這裏任何人都可以幫助我。

回答

0
  1. 試試這個代碼來獲得超級用戶權限(你需要一個紮根電話具有超級用戶安裝):

    try { 
        // Perform su to get root privledges 
        Process p = Runtime.getRuntime().exec("su"); 
    
        DataOutputStream os = new DataOutputStream(p.getOutputStream()); 
    
        os.writeBytes("<..... here you may write commands ....>\n"); 
    
        // Close the terminal 
        os.writeBytes("exit\n"); 
        os.flush(); 
    } catch (IOException e) { 
        toastMessage("not root"); 
    } 
    
  2. 一旦你擁有超級用戶權限,就可以開始adbd聽一些TCP端口使用:

    setprop service.adb.tcp.port 5555 
    adbd & 
    setprop service.adb.tcp.port -1 
    
  3. 打開到選定端口的TCP連接併發出remount命令。

0

實際上,很難理解你要做什麼。但是,如果你正在調整android源代碼(aosp),那麼修改init.rc(在system/core/rootdir下)文件以獲取系統映像rw會更容易。如果要在運行時更改狀態,則需要創建自己的本機應用程序(例如,查看run-as命令),在其內部更改進程的uid,將其作爲suid,將其嵌入到源中,並從您的應用程序中調用它。

+0

我需要建立一個自定義的ROM。我不必更改init.rc,因爲它會被讀取寫入所有的時間。爲了實現某個用例,我想將它作爲讀寫裝入PackageServiceManager.java,然後恢復爲只讀狀態。其實我需要編輯系統/應用程序目錄中的apks。因此,我需要讀寫。 – CodeGuru

+0

然後,按照我的答案的第二部分。創建你的Android源並調用這個應用程序。 – Yury