- Storage emulated 0 android data com huawei hwid
- Что такое / хранилище / эмуляция / 0 /?
- ХРАНЕНИЕ АНДРОИДОВ:
- Эмуляция:
- please fix this bug #120
- Comments
- DuJerry commented Aug 1, 2019
- miguelpruivo commented Aug 1, 2019
- DuJerry commented Aug 1, 2019
- miguelpruivo commented Aug 1, 2019
- DuJerry commented Aug 2, 2019
- miguelpruivo commented Aug 2, 2019
- miguelpruivo commented Aug 5, 2019
- miguelpruivo commented Aug 9, 2019
- wreppun commented Aug 22, 2019
- Как получить доступ к / storage / emulated/0 / DCIM на устройстве android?
- 3 ответов
Storage emulated 0 android data com huawei hwid
Указанная тема не существует, или находится на премодерации.
Cookies Preference Center
We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
Источник
Что такое / хранилище / эмуляция / 0 /?
Недавно я понял, что если я удаляю файлы, /sdcard/Download он удаляет файлы из /storage/emulated/0/Download . И если я добавлю в него файлы, /sdcard/Download то дублирую их в /storage/emulated/0/Download .
Так что же /storage/emulated/0/ ? Для каких целей он у нас есть в нашей файловой системе Android?
/storage/emulated/0/Download фактический путь к файлам.
/sdcard/Download символическая ссылка на фактический путь /storage/emulated/0/Download
Однако фактические файлы находятся в файловой системе /data/media , которая затем монтируется /storage/emulated/0 (и часто в другие точки монтирования).
Symlink При вычислении, символическая ссылка является термином для любого файла , который содержит ссылку на другой файл или каталог в виде абсолютного или относительного пути , и что влияет на разрешение имени пути. Символьные ссылки уже присутствовали к 1978 году в миникомпьютерных операционных системах от DEC и RDOS от Data General.
/storage/emulated/0/ фактически /data/media/0/ выставляется через эмулированную / виртуальную файловую систему, а не через реальную.
Это со ссылкой на мой предыдущий ответ здесь , но с более соответствующими деталями.
ХРАНЕНИЕ АНДРОИДОВ:
* >S> Для линка, >E> для эмулировать и >B> для связывания монтирования
* USER-ID текущего пользователя в случае Multiple Users или Work Profile , как правило , 0 то , что от владельца устройства
* VIEW является одним из read (для приложений с permission.READ_EXTERNAL_STORAGE) или write (permission.WRITE_EXTERNAL_STORAGE) или default (для процессов , запущенных в корне / global namespace т.е. т.е. вне zygote)
* В предыдущих версиях Android были незначительные различия, но концепция эмуляции с тех пор была реализована.
* Для получения более подробной информации о реализации пространства имен монтирования Android см. Этот ответ .
Короче говоря, /sdcard и /storage/emulated/0 — которые представляют файловую систему FAT / vFAT / FAT32 — указывают на /data/media/0 (или /mnt/expand/[UUID]/media/0 в случае приемлемого хранения ) сквозной FUSE или sdcardfs эмуляции.
Будучи не специфичным для Android, но в основном связанным с Linux, symlink и bind mount (см. «Создание bind mount») выходят за рамки этого вопроса, поскольку речь идет в основном о части эмуляции.
Эмуляция:
Почему эмуляция здесь? Эмулируемая файловая система — это уровень абстракции в реальной файловой системе ( ext4 или f2fs ), который служит в основном двум целям:
- Сохранение USB-подключения устройств Android к ПК (теперь через MTP осуществляется через несколько дней)
- Ограничить несанкционированный доступ приложений / процессов к личным носителям пользователя и данным других приложений на SD-карте.
В ранних устройствах Android не хватало внутренней памяти и использовались (физически) внешние SD-карты, которые традиционно используют файловую систему семейства FAT для обеспечения совместимости с большинством ПК (см. Доминирование Microsoft в мире ПК).
Когда размер внутреннего хранилища вырос, та же файловая система была переведена на внутреннюю (все еще называемую «внешнюю») SD-карту.
Но реализация FAT / vFAT имела две основные проблемы, которые Google постепенно решала:
- Устройства Android были подключены к ПК напрямую ( USB Mass Storage ) так же, как мы подключаем USB-накопитель в наши дни. UMS предоставляет устройство на уровне блоков и отключает SD-карту от платформы Android (отключает монтирование), что делает целые данные недоступными для приложений и, возможно, нарушает многие функции.
- FAT (любимый в Windows в дни разработки) никогда не был предназначен для обеспечения разрешений UNIX ( символические ссылки mode, uid, gid и аналогичные , и тому ioctls подобное FS_IOC_FIEMAP ). Таким образом, все данные на SD-карте были доступны всем приложениям (поскольку каждое приложение Android является пользователем UNIX / Linux и имеет идентификатор пользователя) без ограничений, что вызывает серьезные проблемы с безопасностью и конфиденциальностью.
Обе эти проблемы были решены с помощью эмуляции:
- Фактическое хранилище SD-карты было перемещено в /data раздел (или независимый раздел / sdcard на некоторых устройствах ранее), который содержит ext4 файловую систему (постепенно заменяющуюся f2fs ), полностью реализуя разрешения UNIX.
- Этот дизайн сделал использование UMS невозможным, поскольку весь /data раздел не мог быть открыт для ПК по двум причинам: (1) он содержит множество настроек и данных приложений, которые должны быть защищены от других приложений, а также от пользователей. (2) Файловые системы Linux не поддерживаются Windows.
Таким образом, UMS был заменен на Media Transfer Protocol, который является расширением типа клиент-сервер для PTP — уже установленный протокол. MTP не предоставляет блочное устройство, но работает через программный стек. Хост MTP работает на Android как приложение ( android.process.media ), полностью изолированное в среде Android, не способное выполнять какие-либо сложные задачи.
Теперь приложения (и MTP, который также является приложением) вместо этого взаимодействуют с эмулируемым хранилищем /data/media , выполняя обе задачи одновременно, т.е. осуществляя проверку разрешений снизу и выглядя как файловая система FAT на верхней поверхности.
Google теперь реализует эмуляцию через sdcardfs, чтобы преодолеть недостатки FUSE ; одна из основных причин — затраты на ввод / вывод, т. е. повышение скорости чтения / записи.
ВНЕШНИЕ РАЗРЕШЕНИЯ НА ХРАНЕНИЕ:
Концепция публичных и приватных файлов на внешнем хранилище может быть продемонстрирована на примере:
Установите приложение Termux.
Создать каталоги /sdcard/Android/data/com.termux/test_dir и /sdcard/test_dir .
Создать файлы /sdcard/Android/data/com.termux/test_file и /sdcard/Android/data/com.termux/test_file .
Выполните следующие команды:
* У вас должен быть установлен WhatsApp или выбрать личную папку другого приложения.
Теперь принудительно остановите приложение Termux и предоставьте разрешение на хранение . Выполните команды еще раз:
Смотрите разницу в разрешениях для одинаковых файлов и каталогов. Кажется, что это просто невозможно без эмуляции в собственной файловой системе Linux, когда одновременно работают сотни приложений (пользователей). Это эмуляция файловой системы, которая позволяет открывать один и тот же файл с тремя различными наборами разрешений одновременно, независимо от его исходных разрешений в реальной файловой системе:
Источник
please fix this bug #120
Comments
DuJerry commented Aug 1, 2019
I/FilePicker(24101): [SingleFilePick] File URI:content://com.huawei.hidisk.fileprovider/root/storage/emulated/0/Android/data/com.android.family_bill/files/family_bill.backup
E/FilePickerUtils(24101): Getting for API 19 or abovecontent://com.huawei.hidisk.fileprovider/root/storage/emulated/0/Android/data/com.android.family_bill/files/family_bill.backup
E/FilePickerUtils(24101): NO DOCUMENT URI — CONTENT
D/AndroidRuntime(24101): Shutting down VM
E/AndroidRuntime(24101): FATAL EXCEPTION: main
E/AndroidRuntime(24101): Process: com.android.family_bill, PID: 24101
E/AndroidRuntime(24101): java.lang.RuntimeException: Failure delivering result ResultInfo
E/AndroidRuntime(24101): at android.app.ActivityThread.deliverResults(ActivityThread.java:4932)
E/AndroidRuntime(24101): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4975)
E/AndroidRuntime(24101): at android.app.ActivityThread.-wrap20(Unknown Source:0)
E/AndroidRuntime(24101): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950)
E/AndroidRuntime(24101): at android.os.Handler.dispatchMessage(Handler.java:108)
E/AndroidRuntime(24101): at android.os.Looper.loop(Looper.java:166)
E/AndroidRuntime(24101): at android.app.ActivityThread.main(ActivityThread.java:7425)
E/AndroidRuntime(24101): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24101): at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
E/AndroidRuntime(24101): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
E/AndroidRuntime(24101): Caused by: java.lang.IllegalArgumentException: column ‘_data’ does not exist
E/AndroidRuntime(24101): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)
E/AndroidRuntime(24101): at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:87)
E/AndroidRuntime(24101): at com.mr.flutter.plugin.filepicker.FileUtils.getDataColumn(FileUtils.java:132)
E/AndroidRuntime(24101): at com.mr.flutter.plugin.filepicker.FileUtils.getForApi19(FileUtils.java:113)
E/AndroidRuntime(24101): at com.mr.flutter.plugin.filepicker.FileUtils.getPath(FileUtils.java:29)
E/AndroidRuntime(24101): at com.mr.flutter.plugin.filepicker.FilePickerPlugin$1.onActivityResult(FilePickerPlugin.java:81)
E/AndroidRuntime(24101): at io.flutter.app.FlutterPluginRegistry.onActivityResult(FlutterPluginRegistry.java:204)
E/AndroidRuntime(24101): at io.flutter.app.FlutterActivityDelegate.onActivityResult(FlutterActivityDelegate.java:132)
E/AndroidRuntime(24101): at io.flutter.app.FlutterFragmentActivity.onActivityResult(FlutterFragmentActivity.java:137)
E/AndroidRuntime(24101): at android.app.Activity.dispatchActivityResult(Activity.java:7690)
E/AndroidRuntime(24101): at android.app.ActivityThread.deliverResults(ActivityThread.java:4928)
E/AndroidRuntime(24101): . 9 more
The text was updated successfully, but these errors were encountered:
miguelpruivo commented Aug 1, 2019
Hi, how are you picking the file? I need a few more details so I can help you.
DuJerry commented Aug 1, 2019
`File file = await FilePicker.getFile(type: FileType.ANY, fileExtension: ‘backup’);’
‘String jsonStr = await file.readAsString();`
The above is my calling code. and the phone is huawei nova youth (WAS-AL00), android version is 8.0.0, emui version is 8.0.0 .
I wonder if the above information can help you.
miguelpruivo commented Aug 1, 2019
Would you mind to try on a different phone and see if still happens? (Or you can just drop the file in an emulator with version 8.0 and see if its working).
DuJerry commented Aug 2, 2019
i try it on emulator and xiaomi mix 2s, it`s ok . only on huawei nova youth report error, maybe it’s compatibility.
miguelpruivo commented Aug 2, 2019
@timordu, this are the kind of issues that are tough to follow, but I’ll try my best.
- Does the devices where it works fine, have the same android version?
- Did you use the exact same file?
- If the answers to the previous questions are both true, in the Huawei nova youth, does that happen with all files, or just that one?
miguelpruivo commented Aug 5, 2019
Bumping this @timordu.
miguelpruivo commented Aug 9, 2019
Closing since no further information was given. Feel free to reopen if the problem is still on. Thank you.
wreppun commented Aug 22, 2019
I just got a similar StackTrace on a chromebook HP x360 Android 7.1.1 (API 25) :
It recommends using a ContentResolver -> InputStream instead of a ContentResolver -> Cursor
Источник
Как получить доступ к / storage / emulated/0 / DCIM на устройстве android?
Я недавно потерял содержимое карты micro-SD и не резервное копирование содержимого в последнее время достаточно. К счастью, я заметил, что фотографии, которых мне не хватало, оказались в /storage / emulated/0/DCIM/.эскизы на устройстве Android 5.1. Печально то, что я не могу добраться до этих файлов, чтобы сделать что-нибудь с ними на моем устройстве. Единственный способ, которым я даже знал, что они там, — это то, что файловый менеджер ASTRO поднял их, когда я искал фотографии. Я хотел бы быть в состоянии поставить их в безопасное место и надеялся сделать это через мой компьютер. Кто-нибудь знает способ заставить мой компьютер (Windows 7) распознать этот файл? (Естественно, я сказал своему компьютеру просматривать скрытые файлы, так что это не проблема.) Все, что я вижу /Внутренняя память и SD-карта (не для хранения). Если у вас есть обходной путь, пожалуйста, дайте мне знать тоже. Если бы я мог переместить (или еще лучше скопировать) эти фотографии в другое место на своем телефоне, а затем переместить их, это было бы абсолютно замечательно.
3 ответов
папка «/storage/emulated / » на самом деле не существует. Это то, что можно назвать «символической ссылкой», или, проще говоря, ссылкой на то, где хранятся реальные данные. Вам нужно будет найти фактическое физическое местоположение на вашем устройстве, где оно хранится. Так как он находится в /storage / emulated/0/DCIM/.миниатюры, вероятно, находятся в /Internal Storage/DCIM/.ноготь большого пальца./ Обратите внимание, что эта папка, вероятно, содержит только «эскизы», которые являются очень маленькими версиями реальных файлов. Возможно, ваши реальные файлы ушли навсегда, если ваша SD-карта неисправима.
изменить: «Никогда Не Говори Никогда» Ссылка на самом деле относится к эмулированной SD-карте на вашем устройстве. Получите доступ к данным «сразу» * как карта СД, и вы будете иметь доступ ко всем данным на этой карте. * Файл «приложение» Airdroid позволит это. И, если память служит, то доступ через кабель данным по USB будет также.
Я мог бы восстановить мои файлы, перейдя в » Настройки — > хранение и usb — > изображения — > камера. Там, если вы выберете фотографию, то правое верхнее меню изменится на «Выбрать все» и «копировать в»..». Сначала выберите все, а затем скопировать в папку, как «загрузки» или какой виден в проводнике. После копирования в нужную папку. Скопируйте из этой папки в папку компьютеры.
у меня была аналогичная проблема, только папке не начинаться с . . То, что решило для меня было сброс Media Manager.
на Settings -> Apps , убедится Show System проверяется в меню, искать Media Store или что-то подобное, нажмите на него и Clear Data . Затем перезагрузите телефон и подождите, пока Media Store восстановит себя.
перестройка занимает несколько минут. вы можете проверить сделано ли оно путем контролировать использование данных в этих же место, где вы его очистили. Как только он перестает расти в течение нескольких минут, это делается. Например, мой остановился на 21 МБ.
Источник