2010-06-11 2 views
1
try { 
    Runtime rt = Runtime.getRuntime(); 
    Process pcs = rt.exec("ls -l /data"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(pcs 
      .getInputStream())); 
    String line = null; 
    while ((line = br.readLine()) != null) { 
     Log.e("line","line="+line); 
    } 
    br.close(); 
    pcs.waitFor(); 
    int ret = pcs.exitValue(); 
    Log.e("ret","ret="+ret); 
    } catch (Exception e) { 
    Log.e("Exception", "Exception", e); 
    } 

только напечатать «ret = 0», как напечатать правильный путь?Не удается получить доступ к папке Android/данных?

ответ

4

Android защищает его внутренние каталоги. Доступ к каталогу возможен только в /data/data/your_package. Я считаю, что у обычного пользователя нет Read привилегий для каталога /data на обычном устройстве.

0

ли вы попробовать сделать это с вашим собственным приложением, а не порождая другой процесс (например Runtime.exec())

File dataDir = new File("/data"); 

    String[] files = dataDir.list(); 

    for (int i = 0 ; i < files.length ; i++) { 
     Log.d(TAG, "File: "+files[i]); 
    } 

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

+0

Это не поможет - процесс, созданный приложением, запускается как тот же идентификатор пользователя, что и приложение, и поэтому имеет те же права. Если, конечно, вы не вызываете процесс setuid, например, «su» root shim. –

-2

Если вы хотите получить доступ к папке с данными, а не с java-кодом, но с ПК-консоли вы можете использовать команду adb shell. он не имеет никаких ограничений.

помните, чтобы эмулятор работает, или подключить телефон перед запуском, что

+0

adb shell не дает вам доступа root без использования корневого устройства, однако он будет работать на эмуляторе – Dori

1

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

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