Инструкция по разблокировке AT+MODIMEI и других команд в ревизии dura на прошивке BD_XCBZHKMF79UV1.0.0B03 (Для продвинутых)
ВАЖНО:
Этот гайд работает ТОЛЬКО на прошивке BD_XCBZHKMF79UV1.0.0B03.
На B01 ADB есть, но он нерабочий — не пытайтесь!
Вы все делаете на свой страх и риск, я не несу ответственности за ваши кирпичные модемы
И так что вам потребуется:
- Установить Python (и обязательно pip)
- Иметь ПК с windows 10+
- Уже иметь установленные драйвера которые можно взять тут
- Скачать архив с моим инструментарием и распаковать(Tools.rar)
- Иметь хорошее настроение
Шаг 1 Подготовка
1. Убираем с модема все симки, флешки
2. Вставляем в пк и ждем включения
3. Зажимаем reset иглой на 5 секунд, и ждем пока он перезагрузится.
4. Модем включился, запускаем программу SCSI.exe
5. Теперь открываем My Huawei Terminal.exe там выбираем порт AT Interface (запомните какой у вас com порт)
6. Выполняем команду для проверки
AT+SHELL=echo "SHELL_OK"
7. Если у вас Recieve: OK значит продолжаем. Если нет возможно вы сделали что то не так, или у вас другая версия прошивки, и этот гайд вам не поможет.
Шаг 2 Перенос файлов
1. Теперь открываем cmd (Win+r -> cmd)
2. Устанавливаем библиотеку serial
pip install pyserial
3. Открываем файл script.py в папке patch
4. Указываем порт который вы должны были запомнить на первом шаге в переменную COM_PORT = 'COM<Ваш порт>'
5. Закрываем все программы что могут использовать порт, например My Huawei Terminal.exe
6. В cmd пишем cd <Путь до script.py>
7. Запускаем скрипт командой
py script.py
И у вас должен начаться процесс загрузки файла в модем
Ждите окончания процесса (10 минут+-)
8. В консоли вы увидите по окончанию md5 хэш файла, вам нужно его сравнить выполнив в windows команду
CertUtil -hashfile "C:\путь\к\файлу adbd который рядом с script.py" MD5
Хэш совпал? Прекрасно, идем к шагу 9.
Не совпал Хэш? Закрываем консольное окно, идем в My Huawei Terminal.exe подключаемся к модему через AT Interface и выполняем команду:
AT+SHELL=rm -f /tmp/adbd
И повторяем шаг 2 с момента запуска скрипта загрузки файла
Если снова не совпал, то идем в скрипт и меняем там переменную time.sleep(4) на большее число, например 6.
9. Открываем My Huawei Terminal.exe и подключаемся к модему как в первом шаге
10. Выполняем команды:
AT+SHELL=chmod 755 /tmp/adbd
После запускаем adbd этой командой
AT+SHELL=/tmp/adbd &
Включаем adb
AT+SHELL=echo 1 > /sys/devices/virtual/android_usb/android0/adb_enable
Кому то может потребоваться перезагрузка но это индивидуально
Шаг 3 Работа с adb
1. В cmd прописываем cd <путь до adb> (например у меня это
cd C:\ZTE\Tools)
2. Прописываем команды:
adb kill-server
adb start-server
И теперь момент истины
adb devices
И тут вы должны увидеть что то типо
List of devices attached
123456789ABCDEF device
Если все так, вы великолепны.
Если нет возможно модем еще не включился, или у вас не все драйверы установлены.
Через терминал хуавей проверьте запущен ли adbd командой:
AT+SHELL=ps | grep adbd
3. Размонтируем систему так как она только для чтения:
adb shell "mount -o remount,rw /"
4. Делаем резервные копии файлов выполняя команды:
adb pull /bin/zte_production_server_at zte_production_server_at.bak
adb pull /lib/libatext.so libatext.so.bak
5. Так же запомните правила на всякий случай:
adb shell "ls -la /bin/zte_production_server_at"
adb shell "ls -la /lib/libatext.so"
Скопируйте вывод или запомните, ибо придется указывать их для новых файлов
6. Отправляем файлы для патчинга на модем командами:
adb push zte_production_server_at.patched /tmp/
adb push libatext.so.patched /tmp/
7. Узнаём PID процесса zte_production_server_at:
adb shell "ps | grep zte_production_server_at"
В ответе найдите строку, где написано только zte_production_server_at (без grep)
По типу:
814 admin 0:00 zte_production_server_at
Все grep процессы оставляем, нас интересует обычный
Он не даст нам заменить файлы и поэтому мы убиваем его командой:
adb shell "kill -9 <ваш номер процесса, в примере это 814>"
8. Главный шаг замена файлов, выполняем команды:
adb shell "cat /tmp/zte_production_server_at.patched > /bin/zte_production_server_at"
Если на этом шаге вы получили ошибку Text file busy, значит вы не убили процесс который мы убивали в 7 шаге.
adb shell "cat /tmp/libatext.so.patched > /lib/libatext.so"
9. И теперь выдать правила(которые могут у вас отличаться) командами:
adb shell "chown admin:root /bin/zte_production_server_at"
adb shell "chown admin:root /lib/libatext.so"
adb shell "chmod 775 /bin/zte_production_server_at"
adb shell "chmod 755 /lib/libatext.so"
10. Синхронизируем все командой:
adb shell "sync && reboot"
Шаг 4 Финальный
1. Ждем включения модема
2. Отправляем команду через My Huawei Terminal:
AT+SHELL=echo "PATCH_SUCCESS" >/dev/ttyGS0
Если вы видите PATCH_SUCCESS в консоли то все сработало!
3. Выполняем команду через тот же My Huawei Terminal:
AT+MODIMEI=<imei>
4. Получаем ОК и танцуем, вы сменили imei
Весь гайд я писал после практической работы на своем модеме. Я мог где то что то написать не так или же ошибиться, спрашивайте и пишите если найдете какие то ошибки. Спасибо.