2016-11-25 52 views
0

我有一個根設備,並且想要更改/ system/app中的apk(Prueba.apk)的chmod權限,以便實現我正在使用的帶有BusyBox的RootTools庫。而我的代碼是:我無法以編程方式將chmod更改爲777

 Command comando = new Command(0, "chmod 777 /system/app/Prueba.apk"); 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

但是,當我檢查,運行代碼根文件瀏覽器我看到,Prueba.apk使用chmod權限沒有改變後。

回答

0

的問題是,當我安裝在系統分區RW我做了這樣的:

 Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system/app"; 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

但正確的做法是使所有系統分區RW,而不是僅僅/系統/應用程序文件夾,所以我改變了代碼:

 Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system"; 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

然後我可以完美地執行chmod 777命令。

0

在運行需要root訪問權限的代碼之前,您應該使用su -c來嘗試

/system/*是隻讀的,命令應該以root身份運行,但首先需要將/system分區掛載爲讀取和寫入。有多種方法可以做到這一點,但我的Nexus 5X這個工程:
mount -o rw,remount /system

然而,這種方法可能不是那麼合作嘗試用不同的方式掛載R/O here

+0

的確我使用RootTools庫來執行root命令。 –

相關問題