Кастомная прошивка AO725 для нестандартной AL12B32/SANYO батареи

Эта страница состоит из двух частей. Первая часть - простая пошаговая инструкция для уже подготовленного набора файлов AO725. Вторая часть - вариант работы с AI-ассистентом, который можно адаптировать и для других похожих задач с прошивками, но только после отдельной проверки модели, файлов и способа восстановления.

Внимание: прошивка BIOS/EC может вывести ноутбук из строя. Ошибка с образом, моделью, питанием, recovery-файлом или флешкой может закончиться нерабочей платой. Не начинайте прошивку без внешнего питания, заряженной батареи, проверенных хэшей и заранее подготовленного rescue-варианта.

Часть 1. Простая инструкция прошивки

1. Возьмите нужные файлы

Скачайте файлы для прошивки и проверки:

  • winpe.img.gz - подготовленный dd-образ WinPE-флешки;
  • zhgbiosR_AL12B32_profile3_to_profile0_patched.fd - подготовленный patched FD для рабочей папки прошивки;
  • ZHGBIOS.fd - оригинальный recovery image для rescue-флешки;
  • zhgbiosR.fd - оригинальный stock FD V1.08 для проверки diff;
  • ZHG108.EXE - официальный пакет Acer BIOS V1.08, внутри него находится InsydeFlash;
  • platform.ini - настройки InsydeFlash.

Если используется готовый winpe.img.gz, то ZHG108.EXE и platform.ini обычно нужны не как отдельные ручные шаги, а как проверяемые исходники/часть подготовленной среды. Для безопасности все равно держите их рядом: они помогают понять, чем именно прошивается ноутбук.

Для AO725 ожидаемые SHA256:

Если хэш не совпал, этот файл не используйте.

2. Запишите WinPE-флешку

Возьмите winpe.img.gz и запишите его на USB-флешку как raw/dd-образ.

Пример для Linux:

gzip -dc winpe.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync

Где /dev/sdX - именно флешка, а не системный диск.

Осторожно: dd полностью стирает выбранный диск. Перед запуском проверьте имя устройства два раза.

3. Подготовьте rescue-флешку

Возьмите отдельную FAT32-флешку.

Положите в корень файл:

ZHGBIOS.fd

Держите эту флешку рядом, но не вставляйте ее в рабочий ноутбук без необходимости. Для AO725 recovery связан с Fn+Esc, и его не нужно запускать "просто проверить".

4. Проверьте, что это именно ваш случай

Продолжайте только если совпадает все:

  • ноутбук Acer Aspire One 725 / AO725;
  • BIOS ветки 1.xx, не 2.xx;
  • используется образ V1.08 семейства ZHG;
  • батарея определяется как AL12B32 / SANYO;
  • симптом до патча - резкое выключение примерно около 11.6 V.

Если модель, ветка BIOS или батарея отличаются, не прошивайте этот patched FD.

5. Проверьте patched-файл

Сравните original и patched FD:

cmp -l zhgbiosR.fd zhgbiosR_AL12B32_profile3_to_profile0_patched.fd

Ожидается ровно одна строка:

55883   3   0

Это соответствует изменению:

offset 0xDA4A: 03 -> 00

Если отличий больше одного, файл не прошивайте.

6. Подготовьте рабочую папку прошивки

На WinPE-флешке должна быть рабочая папка прошивки. В ней должны лежать:

InsydeFlash.exe
platform.ini
zhgbiosR.fd

Здесь zhgbiosR.fd должен быть patched-файлом, переименованным из:

zhgbiosR_AL12B32_profile3_to_profile0_patched.fd

Проверьте, что в рабочей папке ровно один .fd файл:

dir *.fd

Ожидается только:

zhgbiosR.fd

7. Прошейте из WinPE

Подключите блок питания.

Убедитесь, что батарея установлена и заряжена.

Загрузитесь с подготовленной WinPE-флешки.

Откройте рабочую папку прошивки.

Запустите:

InsydeFlash.exe

Во время прошивки:

  • не отключайте питание;
  • не закрывайте крышку;
  • не вынимайте батарею;
  • не трогайте recovery-флешку;
  • дождитесь завершения и перезагрузки.

8. Проверьте результат

После успешной загрузки проверьте, что ноутбук проходит старую точку выключения около 11.6 V.

Безопасная проверка:

  • зарядите батарею;
  • включите логирование показаний батареи;
  • разряжайте обычной нагрузкой;
  • остановитесь по программному порогу ОС, например на 30%;
  • не тяните 3S Li-ion батарею до глубокого разряда.

В успешном тесте ноутбук дошел до программного shutdown при 30% и примерно 10.68 V, а затем сразу начал заряжаться после подключения питания.

Часть 2. AI-assisted сопровождение

Для сопровождения прошивки можно использовать стартовый промпт:

Стартовый промпт для AI-ассистента прошивки

На сайте тот же файл лежит здесь:

https://ai.pzhurba.com/files/ao725-firmware/ao725-firmware-ai-starter-prompt-ru.md

Смысл AI-assisted режима не в том, чтобы AI "угадал" прошивку. Его роль другая:

  • вести оператора по шагам;
  • проверять модель, ветку BIOS и имена файлов;
  • требовать rescue-план до прошивки;
  • сверять SHA256 и cmp;
  • останавливать опасные действия;
  • не давать использовать patched-файл не для той модели;
  • напоминать, что flashrom для записи на ноутбуке с EC - плохой путь без отдельного анализа.

Этот подход можно переносить на другие ноутбуки и другие прошивочные задачи, но не сами AO725-файлы. Для другой модели AI должен заново запросить:

  • точную модель устройства;
  • текущую версию BIOS/EC;
  • официальный пакет прошивки;
  • штатный способ восстановления;
  • проверенные хэши;
  • ожидаемый diff;
  • отдельные stop conditions.

AO725-специфичные хэши, файл ZHGBIOS.fd, patched FD и изменение offset 0xDA4A: 03 -> 00 относятся только к исследованному Acer Aspire One 725.

Что именно меняет патч

Новая совместимая батарея AL12B32/SANYO заряжалась и определялась Linux, но AO725 резко выключался при разряде около 11.6 V. Анализ EC firmware показал, что для AL12B32 выбирался battery profile selector 03, а он содержит ранний порог около 11600 mV.

Патч меняет только одно значение:

offset 0xDA4A: 03 -> 00

Итоговый смысл:

до:    AL12B32 -> selector 3 -> profile 3
после: AL12B32 -> selector 0 -> profile 0

Цель патча - убрать аппаратно выглядящий cutoff около 11.6 V и дать ОС самой выполнить контролируемое выключение по настроенному порогу.

Софт, использованный для изучения прошивки

В расследовании и подготовке прошивки использовались:

  • Linux shell/coreutils: sha256sum, cmp, dd, od, find, mount, umount, sync;
  • Python 3 для бинарного анализа, поиска offsets и проверки diff;
  • InsydeFlash для штатной прошивки из Windows/WinPE;
  • WinPE как сервисная среда;
  • flashrom только для probe/read-only оценки SPI-чипа, не для записи;
  • iasl для ACPI/DSDT-разбора battery/EC paths;
  • strings и бинарный поиск по образу прошивки;
  • UEFI/IFR analysis tools для анализа Setup/IFR и скрытых BIOS-переменных;
  • 7-Zip или аналогичный архиватор для распаковки vendor packages и подготовки рабочих каталогов.