2016-08-02 4 views
0

У меня есть права root, и я тестирую новую функцию для своего приложения, которая включает в себя доступ и редактирование системной папки Android.Доступная системная папка на уровне корня Android

Однако мой код, кажется, ничего не меняет. Im на Marshmallow CM 13.

Process p; 
    try { 
     // Preform su to get root privileges 
     p = Runtime.getRuntime().exec("su"); 

     // Attempt to write a file to a root-only 
     DataOutputStream os = new DataOutputStream(p.getOutputStream()); 
     os.writeBytes("echo \"Do I have root?\" >/system/etc/temporary.txt\n"); 

     // Close the terminal 
     os.writeBytes("exit\n"); 
     os.flush(); 
     try { 
      p.waitFor(); 
      if (p.exitValue() != 255) { 
       // TODO Code to run on success 
       toastMessage("root"); 
      } 
      else { 
       // TODO Code to run on unsuccessful 
       toastMessage("not root"); 
      } 
     } catch (InterruptedException e) { 
      // TODO Code to run in interrupted exception 
      toastMessage("not root"); 
     } 
    } catch (IOException e) { 
     // TODO Code to run in input/output exception 
     toastMessage("not root"); 
    } 
+0

Попробуйте сначала напечатать разрешения – Shriram

+0

@Shriram Через оболочку adb? – silberbaum

ответ

2

/system точка монтирования смонтирована RO по умолчанию. Даже с разрешениями на уровне корня единственным способом записи на него было бы перемонтировать его как RW. Кроме того, вы можете столкнуться с некоторыми проблемами с SE Android (SE Linux для Android), который присутствует и находится в полном режиме принудительной работы с Lollipop. В платформу может быть включена политика безопасности SE для Android, которая ограничит доступ к некоторым частям файловой системы, даже для root.