2013-03-11 4 views
2

Я использую команду CHMOD, чтобы изменить разрешение файла, но это не работает в моем коде, и мое устройство коренится также:Как изменить разрешение файла в андроиде с помощью CHMOD

String MyFilePath = "/data/data/MyPkgName/database/com.pocketchange.android.http.AsyncHttpRequestService.db"; 
CommandCapture command = new CommandCapture(0, "chmod 777 " + "\""+ MyFilePath+ "\""); 
RootTools.getShell(true).add(command).waitForFinish(); 

И когда это выполнить , выход команды:

Unable to chmod /data/data/MyPkgName/databases/com.pocketchange.android.http.AsyncHttpRequestService.db: No such file or directory 

но файл существует, и, когда я использую этот код, чтобы изменить разрешение другого файла в каталоге базы данных его успех, так что я могу сделать сейчас.

+0

Я не знаю, нужны ли встроенные кавычки. Можете ли вы попробовать команду с «ls -l» в каталоге и прочитать результат, чтобы попытаться выяснить, может ли одно из ваших предположений быть неправильным. –

+0

Вызывается ли 'chmod' изнутри' chroot'? – Celada

+0

Я разрабатываю приложения для Android и этот код в проекте android. –

ответ

0

Используйте команду CHMOD в оболочке ADB ...

String[] strExec = new String[] 
{ 
     "/system/bin/sh", "-c","/system/bin/chmod 777 
}; 

try { 
    Runtime.getRuntime().exec(strExec); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
0

1.Не RootTools.isAccessGiven() сначала проверьте, то система будет спрашивать разрешения «Root» в стиле диалога. После разрешения root вы можете успешно запустить команду root.
2. "\" "+ MyFilePath +" \ "" => MyFilePath

Смежные вопросы