@scp173

Как получить полный доступ к файловой системе андроид?

Всем привет, я пишу приложение и мне нужно работать с файловой системой, но при команде

ls /data/user/0

я получаю вывод в консоль

com.google.android.gms
com.test.signal


где первое - почтовый клиент, а второе - мое приложение. Приложения такие как Термукс и Мт Манагер видят все содержимое папки без проблем. Пробовал сделать без библиотек, а также с библиотекой libsu, но результат не изменился. В чем может быть дело? Андроид 13, рут Magisk Какая дополнительная информация нужна?

Лог:
65191012b0fc5482488012.png

Функция:

fun executeRootCommand(command: String): String {
val process = Runtime.getRuntime().exec("su")//arrayOf("su", "-c", command)
val outputStream = DataOutputStream(process.outputStream)
val inputStream = BufferedReader(InputStreamReader(process.inputStream))
val errorStream = BufferedReader(InputStreamReader(process.errorStream))

outputStream.writeBytes("$command\n")
outputStream.writeBytes("exit\n")
outputStream.flush()
process.waitFor()

val output = StringBuilder()
var line: String?
while (inputStream.readLine().also { line = it } != null) {
output.append(line).append("\n")
}
while (errorStream.readLine().also { line = it } != null) {
output.append(line).append("\n")
}
Log.d("abcde", "$command")
Log.d("abcde", "$output")

outputStream.close()
inputStream.close()
errorStream.close()

return output.toString()
}
  • Вопрос задан
  • 629 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Что придумать для таргет SDK выше 31 я не знаю. В андроидах до 11 и 12(в режиме совместимости) работал такой подход :
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
....
        android:requestLegacyExternalStorage="true"
...
>


соответственно с динамическим получением пермишенов

файлы и попдпапки получал через штатный File.listFiles()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы