Не удается правильно прочитать загрузочный сектор с USB-накопителя FAT32 на устройстве Android

Я пытаюсь прочитать загрузочный сектор с диска FAT32 на устройстве Android, но я получаю совершенно другие данные, чем я ожидал.

Это вывод, который я получаю с помощью bulkTransfer на конечной точке чтения на моем устройстве Android.

33C08ED0BC007C8EC08ED8BE007CBF00
06B90002FCF3A450681C06CBFBB90400
BDBE07807E00007C0B0F850E0183C510
...
656D000000637B9A5BE2B3D70000800F
30000BFEFFF4E0030000205CF8000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000000000000000055AA

Это загрузочный сектор, выгруженный с помощью программы просмотра на моем компьютере.

EB58904D53444F53352E300002081004
0200000000F800003F00FF00E0030000
205CF800F83D00000000000002000000
...
0000000000000000000000000D0A5573
75E4206479736B69206C756220696E6E
79206E6F986E696BFF0D0A4288A56420
6479736B75FF0D0A5A72657374617274
756A2C206E616369736B616AA563206B
6C617769737A0D0A00ACC9D6000055AA

Данные, полученные на Android, в конце содержат следующее сообщение: "Неверная таблица разделов. Ошибка загрузки операционной системы. Отсутствует операционная система".

Может кто-нибудь сказать мне, что здесь не так? Есть ли какое-либо действие, которое я должен выполнить перед чтением загрузочного сектора?

На данный момент мой поток кода выглядит следующим образом:

  1. Найти нужное USB-устройство
  2. Получить разрешение на связь с USB-устройством
  3. Открытое соединение сделать устройство
  4. Выполните команду "Test Unit Ready" до успешного ответа
  5. Выполните команду "Read Capacity" - это вернет правильные результаты
  6. Выполните команду "Чтение 10", чтобы прочитать первые 512 байт - это возвращает неверные данные

Буду благодарен за любые предложения

1 ответ

Решение

Какой шестнадцатеричный просмотрщик?

Пользователь без прав администратора в win не может получить доступ к таблице разделов на физическом устройстве, поэтому обычно вы получаете только первый сектор раздела. Вы можете проверить это, он будет содержать FAT32 строка со смещением 0x52. Чтобы прочитать реальную таблицу разделов, вам нужно получить доступ к физическому устройству с правами администратора.

На андроиде вы читаете саму таблицу разделов, потому что получаете доступ к физическому "диску" на низком уровне.

Другие вопросы по тегам