簡體   English   中英

我無法以編程方式在Android中將chmod更改為777

[英]I can't change chmod to 777 in Android programmatically

我有一個root用戶設備,並且想要更改/ system / app內的apk(Prueba.apk)的chmod權限,因此要實現此目的,我將RootTools庫與BusyBox一起使用。 我的代碼是:

        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權限沒有更改。

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

/system/*是只讀的,命令應該由root用戶運行,但是首先/system分區需要以讀寫方式掛載。 有多種方法可以執行此操作,但是對於我的Nexus 5x來說,它可以工作:
mount -o rw,remount /system

但是,此方法可能不起作用,因此請嘗試使用其他方法在此處安裝R / O

問題是當我將系統分區掛載為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,而不僅僅是/ system / app文件夾,因此我將代碼更改為:

        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命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM