Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Permission for reading/writing to the root folder in Android

Are there any permissions I can/must declare in my app,
if I want the app to be able to scan the whole "/" folder
(say to search for all .txt files e.g. recursively)?

I am getting just null so far (when calling File.listFiles)
no matter what permissions I try. I guess I am missing something.

like image 545
peter.petrov Avatar asked Sep 06 '18 22:09

peter.petrov


2 Answers

Unless you root your device, it is impossible to do any operations on the root directory on a non-rooted device because a third party app will run as a normal user and won't have the root permissions.

However, according to https://developer.android.com/reference/android/Manifest.permission, android.permission.FACTORY_TEST can give you the root permission.

FACTORY_TEST added in API level 1

public static final String FACTORY_TEST

Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode.

Not for use by third-party applications.

Constant Value: "android.permission.FACTORY_TEST"

But note this can only be used by manufacturers by modifying the firmware, and this is not for any third part libraries or applications.

like image 58
shizhen Avatar answered Oct 01 '22 13:10

shizhen


Are there any permissions I can/must declare in my app?

No. In order to access the root (/) folder your app must have a root permission which a user app can't have.

If your device is rooted, you can try to elevate the root rights from within the app which isn't a trivial task.

like image 25
Onik Avatar answered Oct 01 '22 14:10

Onik