当我以api 30为目标并尝试检索路径中的文件列表时"数据/数据";(拥有root权限(,我只获得应用程序的文件夹,而使用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
以下是Android 11中添加的新限制:https://developer.android.com/about/versions/11/privacy/storage
文档访问限制
为了给开发人员时间进行测试,以下更改与>到存储访问框架(SAF(生效仅当您的应用程序针对Android 11或更高版本时。
访问目录
您不能再使用ACTION_OPEN_DOCUMENT_TREE请求访问以下目录的意向操作:
- 内部存储卷的根目录
- 设备制造商认为可靠的每个SD卡卷的根目录,无论该卡是否可靠是模拟的或可移除的。可靠的音量是指应用程序可以大部分时间都能成功访问
- 下载目录
访问文件
您不能再使用ACTION_OPEN_DOCUMENT_TREE或打开文档操作intent操作,请求用户从中选择各个文件以下目录:
Android/data/
目录和所有子目录Android/obb/
目录和所有子目录