Android 11(API 30)的Root Explorer。

4

当我将目标api设置为30并尝试以root权限检索路径“/data/data”中的文件列表时,我只能获得我的应用程序文件夹,而使用api 29或更低版本则可以获取所有文件。

如何在api 30上检索所有文件?

使用的代码:

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.topjohnwu.superuser.Shell

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val result = Shell.su("ls -la /data/data").exec()
        Log.e("files", result.out.toString())
    }
}

我使用了这个库来获取Root权限:https://github.com/topjohnwu/libsu

1个回答

1
这是Android 11中新增的新限制: https://developer.android.com/about/versions/11/privacy/storage 文档访问限制
为了给开发者测试留出时间,以下与存储访问框架(SAF)相关的更改仅在您的应用程序针对Android 11或更高版本时生效。
目录访问
您不能再使用ACTION_OPEN_DOCUMENT_TREE意图操作请求访问以下目录:
- 内部存储卷的根目录。 - 设备制造商认为可靠的每个SD卡卷的根目录,无论卡是模拟还是可移动的。可靠的卷是一个应用程序大多数时候可以成功访问的卷。 - 下载目录。
文件访问
您不能再使用ACTION_OPEN_DOCUMENT_TREEACTION_OPEN_DOCUMENT意图操作请求用户从以下目录中选择单个文件:
- Android/data/目录和所有子目录。 - Android/obb/目录和所有子目录。

3
好的,但是如何绕过它? - Supertommino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接