Можно ли получить доступ к определенному LBA SD-карты на устройстве Android

Я хочу получить доступ к определенному LBA на SD-карте, подключенной к устройству Android. Android по умолчанию не предоставляет такой низкоуровневый доступ. Я попытался получить к нему доступ через USB-кардридер с помощью команд SCSI, но это не сработало. Я также пробовал команды POSIX для прямого поиска и чтения LBA (собственные команды CPP с использованием jni), но работает чтение файлов, а не прямое чтение LBA. Может ли кто-нибудь предложить способ сделать то же самое?


person Rishwanth L    schedule 05.12.2017    source источник


Ответы (1)


Я не верю, что вы можете получить доступ к разделу (я бы сказал, пользовательскому разделу) на Android, как вы обычно делаете в Linux/Unix, используя блочные устройства. Проверяет эту ссылку, чтобы узнать, как для достижения этого в Linux.

Теперь на Android раздел, который вы обычно видите на устройствах Android, например /storage/sdcard0 или /storage/sdcard1 или /stroage/emulated/0 или /storage/80FD-33DA и т. д. могут сопоставляться с разделом внутренней памяти. Внутреннее хранилище обычно имеет два раздела: один для системы, который недоступен для пользовательского приложения, а второй — для пользовательских приложений (который доступен для пользовательских приложений). Он также может сопоставляться с SD-картами внешнего хранилища в зависимости от версии ОС Android и производителя устройства.

Другой способ получить доступ к разделу необработанного уровня — использовать команду dd (которая опять же доступна не во всех вариантах Android). Ознакомьтесь с этой статьей об обмене стеками Android для этого.

dd if=/dev/block/mmcblk0p7 of=/storage/sdcard0/usrdata.img

Вы также можете проверить файловые менеджеры хорошо, чтобы получить представление о том, как они перечисляют и управляют пользовательскими разделами

person A.B.    schedule 05.12.2017