[英]Android 11 adb push Permission denied
我已將操作系統從 Android 10 升級到 Android 11,當我嘗試運行adb push test.txt /mnt/sdcard/
時,我收到錯誤adb: error: stat failed when push to /mnt/sdcard/test。 txt:權限被拒絕。
在 AndroidManisfest.xml 我已授予以下所有權限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true">
嘗試adb push test.txt /sdcard/
,這將起作用。
在 Android 11 上,我們無法通過 ADB 訪問 /mnt。 但是使用符號鏈接是可以的,有關詳細信息,請參閱此鏈接。
我在 Android 11 模擬器上運行ls
命令,我們可以看到sdcard ->?
在/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 -> ?
根據 android 文檔。
在 Android 11 上運行但以 Android 10(API 級別 29)為目標的應用程序仍然可以請求 requestLegacyExternalStorage 屬性。
所以嘗試改變你的目標 API 級別。 推薦的方法是使用ContentResolver或者可以說Scoped storage而不是 Legacy deprecated storage APIs。
查看此內容以獲取更多詳細信息。 范圍存儲實施
嘗試;
亞行根
這會將 adb 服務器切換為 root。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.