Как-то не так давно купил usb модем по скидки из пеппера: https://aliexpress.ru/item/1005004942733206.html
Модем оказался неплохим за свою цену, но что ещё интереснее внутри него стоит мобильный чип: Qualcomm Snapdragon 410 MSM8916 и память hynix ( Из того, что успел разглядеть под теплораспределительной крышкой. Также под корпусом скрывается одна кнопка и множество отладочных выводов.
При подключении к компу модем отзывается на adb devices
. Команда adb shell
работает, но root доступа конечно нет.
Также в ветке 4pda есть ссылки на архивы со сборками OpenWrt, но пишут, что LTE на них не работает — поэтому прежде чем экспериментировать я решил сделать полный бэкап системы (впервые додумался до такого правильного шага).
Кстати, интересные ссылки по теме:
- https://4pda.to/forum/index.php?showtopic=849043&st=2600
- https://github.com/OpenStick/OpenStick/releases
- https://github.com/msm8916-mainline/lk2nd
- https://github.com/bkerler/edl
Получаем образ системы
Для начала нам понадобится EDL и модем в режиме аварийной загрузки. Для перевода модема в этот режим можно замкнуть два контакта на плате или соорудить специальный USB кабель где линия DATA+ будет соединена с массой или, как сделал я, просто через терминал перезагрузить его в этот режим: adb reboot edl
Кстати, никогда не задумывался, но оказалось через fastboot загрузить можно что угодно, а вот снять дамп никак :(
Модем мы перевели, теперь устанавливаем набор инструментов EDL по ссылке на гитхаб. Пробовал готовый LiveDVD — ничего не заработало в итоге в виртуалке поставил чистый debian и по инструкции там установил EDL. Единственный момент в офф инструкции опечатка, где команда с python — надо уточнить, что это 3 версия, указывать — python3, например, python3 setup.py build
Теперь просто запускаем команду edl и параллельно переводим модем в нужный режим. Программа сама подберет нужный загрузчик и мы переходим к бэкапу, вводим:
edl rf flash.bin
Что означает — скопировать полностью всю память в файл flash.bin.
Кстати, вывод команды edl printgpt
:
rubilnik@debian:~$ edl printgpt Capstone library is missing (optional). Keystone library is missing (optional). Qualcomm Sahara / Firehose Client V3.60 (c) B.Kerler 2018-2022. main - Trying with no loader given ... main - Waiting for the device main - Device detected :) main - Mode detected: firehose main - Trying to connect to firehose loader ... firehose_client firehose_client - [LIB]: No --memory option set, we assume "eMMC" as default ..., if it fails, try using "--memory" with "UFS","NAND" or "spinor" instead ! firehose - TargetName=MSM8916 firehose - MemoryName=eMMC firehose - Version=1 firehose - Trying to read first storage sector... firehose - Running configure... firehose_client - Supported functions: ----------------- Parsing Lun 0: GPT Table: ------------- modem: Offset 0x0000000004000000, Length 0x0000000004000000, Flags 0x1000000000000000, UUID f202334c-7239-17e5-2f23-93572e235c8f, Type EFI_BASIC_DATA, Active False sbl1: Offset 0x0000000008000000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 240d65b6-cae4-4f02-7575-e5c7852d2cc1, Type 0xdea0ba2c, Active False sbl1bak: Offset 0x0000000008080000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 5cd3b64c-2081-bd72-306c-d8a497592506, Type EFI_BASIC_DATA, Active False aboot: Offset 0x0000000008100000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID cdc87237-a238-aa25-ee11-0ac6094db845, Type 0x400ffdcd, Active False abootbak: Offset 0x0000000008200000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 13d52bce-8c77-a4e2-4235-5a47803b956f, Type EFI_BASIC_DATA, Active False rpm: Offset 0x0000000008300000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 4d5f212f-7dde-08d3-bd6b-c3f4faeb9b46, Type 0x98df793, Active False rpmbak: Offset 0x0000000008380000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 1d3926af-b3c2-4f7c-77ea-b80cede253f4, Type EFI_BASIC_DATA, Active False tz: Offset 0x0000000008400000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 2c6f74be-4f53-e91d-a493-ccdf6b083658, Type 0xa053aa7f, Active False tzbak: Offset 0x0000000008480000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID ad543db5-3b76-23ed-e7f0-0bfc76a20867, Type EFI_BASIC_DATA, Active False hyp: Offset 0x0000000008500000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 59a6cc8e-96fb-3cc0-6bf3-5298e5a15505, Type 0xe1a6a689, Active False hypbak: Offset 0x0000000008580000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID e53d6b40-0bac-0eb5-837e-5f9acd1894bc, Type EFI_BASIC_DATA, Active False pad: Offset 0x0000000008600000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 10c9a0a4-5b33-fcf6-06bd-5d61b1541231, Type EFI_BASIC_DATA, Active False modemst1: Offset 0x0000000008700000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID 59d29285-5cfa-deed-0146-e1ff8e5ae01a, Type 0xebbeadaf, Active False modemst2: Offset 0x0000000008880000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID 42088f49-e2e5-4cbe-4d35-a5054776d23a, Type 0xa288b1f, Active False misc: Offset 0x0000000008a00000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 50988588-e26b-8be4-093d-6427a25cee72, Type 0x20117f86, Active False fsc: Offset 0x0000000008b00000, Length 0x0000000000000400, Flags 0x0000000000000000, UUID 189f41d8-77f9-194b-38db-c80357bbf011, Type 0x57b90a16, Active False ssd: Offset 0x0000000008b00400, Length 0x0000000000002000, Flags 0x0000000000000000, UUID 996dc2d2-1e53-4ceb-f5a5-e355011c0cfb, Type 0x2c86e742, Active False splash: Offset 0x0000000008b02400, Length 0x0000000000a00000, Flags 0x0000000000000000, UUID 7af86780-46c2-7c2d-8346-2e2749611479, Type 0x20117f86, Active False DDR: Offset 0x000000000c000000, Length 0x0000000000008000, Flags 0x1000000000000000, UUID 50956725-b15d-198a-fb4f-889cb5a5ecde, Type 0x20a0c19c, Active False fsg: Offset 0x000000000c008000, Length 0x0000000000180000, Flags 0x1000000000000000, UUID 486ca85e-96fe-765a-cdec-2137b4fd7a97, Type 0x638ff8e2, Active False sec: Offset 0x000000000c188000, Length 0x0000000000004000, Flags 0x1000000000000000, UUID f3904d7f-7282-9d53-0a34-74a55c59f9ef, Type 0x303e6ac3, Active False boot: Offset 0x000000000c18c000, Length 0x0000000001000000, Flags 0x1000000000000000, UUID ee8de777-10d5-9d19-2a57-18e0f3c3de69, Type 0x20117f86, Active False system: Offset 0x000000000d18c000, Length 0x0000000032000000, Flags 0x1000000000000000, UUID 809a5a3f-fb5c-4d6f-d655-d561d2c33140, Type EFI_BASIC_DATA, Active False persist: Offset 0x000000003f18c000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID 7b8ddecb-a286-77e1-d30c-8439e1ea51fe, Type EFI_BASIC_DATA, Active False cache: Offset 0x000000004118c000, Length 0x0000000008000000, Flags 0x1000000000000000, UUID 4da06896-4ab8-392b-992e-ac032a5824d2, Type EFI_BASIC_DATA, Active False recovery: Offset 0x000000004918c000, Length 0x0000000001000000, Flags 0x1000000000000000, UUID bce9c7c5-0a2f-19f3-9275-16209bc53829, Type 0x20117f86, Active False userdata: Offset 0x000000004a18c000, Length 0x000000009ee6fe00, Flags 0x1000000000000000, UUID 598664a9-7976-e692-dd1c-010c5d49b568, Type EFI_BASIC_DATA, Active False Total disk size:0x00000000e9000000, sectors:0x0000000000748000
P.S. — вот эта команда мне понравилась больше: edl rl dumps --skip=userdata --genxml