简体   繁体   English

Android 11 adb push 权限被拒绝

[英]Android 11 adb push Permission denied

I have upgraded OS from Android 10 to Android 11, when I try to run adb push test.txt /mnt/sdcard/ , I am getting an error adb: error: stat failed when trying to push to /mnt/sdcard/test.txt: Permission denied .我已将操作系统从 Android 10 升级到 Android 11,当我尝试运行adb push test.txt /mnt/sdcard/时,我收到错误adb: error: stat failed when push to /mnt/sdcard/test。 txt:权限被拒绝

In AndroidManisfest.xml I have given all below permissions:在 AndroidManisfest.xml 我已授予以下所有权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:requestLegacyExternalStorage="true">

Try adb push test.txt /sdcard/ , this will work.尝试adb push test.txt /sdcard/ ,这将起作用。

On Android 11, we cannot access /mnt by ADB.在 Android 11 上,我们无法通过 ADB 访问 /mnt。 But use the symlink is ok, see this link for details.但是使用符号链接是可以的,有关详细信息,请参阅此链接

I run ls command on the Android 11 emulator, we can see sdcard ->?我在 Android 11 模拟器上运行ls命令,我们可以看到sdcard ->? within /mnt , and sdcard -> /storage/self/primary within / , which means softlink /mnt/sdcard is not working on Android 11./mnt内,和sdcard -> /storage/self/primary/内,这意味着软链接/mnt/sdcard在 Android 11 上不起作用。

# symeonchen @ SBook in ~ [22:16:05] 
$ adb shell ls -al / | grep sdcard   
lrw-r--r--   1 root   root         21 2020-12-17 02:01 sdcard -> /storage/self/primary

# symeonchen @ SBook in ~ [22:16:14] 
$ adb shell ls -al /mnt | grep sdcard
l?????????  ? ?      ?           ?                ? sdcard -> ?

According to android doc.根据 android 文档。

Apps that run on Android 11 but target Android 10 (API level 29) can still request the requestLegacyExternalStorage attribute.在 Android 11 上运行但以 Android 10(API 级别 29)为目标的应用程序仍然可以请求 requestLegacyExternalStorage 属性。

So try to change your target API level.所以尝试改变你的目标 API 级别。 Recommended way would be to use ContentResolver or can say Scoped storage instead of Legacy deprecated storage APIs.推荐的方法是使用ContentResolver或者可以说Scoped storage而不是 Legacy deprecated storage APIs。

Check out this for more details.查看此内容以获取更多详细信息。 Scoped storage enforcement 范围存储实施

Try;尝试;

adb root亚行根

This will switch the adb server as root.这会将 adb 服务器切换为 root。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM