Казалось бы, только недавно Chimera tool, добавила в свою поддержку большое количество OnePlus, и как же это было вовремя, в тот момент сервера решили отдохнуть, а прошивать хотелось так, будто завтра запретят USB. Прошивая свою первую тестовую трубку на Химере, была зашита полная Edl прошивка целиком, так я первые узнал о том, что делать так нельзя :) Но все что не делается, все к лучшему, если сделать правильные выводы. И так небольшая вводная, в прошивке, довольно много всяких разных файликов с разными названиями и конечно же функциями.
Немного базы, чтобы вы окончательно запутались
-persist критически важный системный раздел, которые не перезаписывается при обновлении системы, а так же не обнуляется при сбросе. Данный раздел хранит в себе данные калибровки датчиков(отпечаток пальца, акселерометр и тд). Так же там хранятся imei, mac адреса блютус и wifi. Как правило если раздел поврежден или очищен, проблем с сетью, камерой, звуком не избежать, но на каждом устройстве конечно по-разному. На телефонах которые на процессоре Спредрум, там хранятся данные Frp, но это уже другая трагедия.
-oplusreserv1/2 раздел, о котором нигде нет информации, но если заглянуть вовнутрь и сделать выводы, то я бы охарактеризовал этот раздел так: "Раздел который запишет абсолютно все, что происходило с вашим телефоном, в программном плане". Он может мне рассказать что на телефоне был кастомный рекавери или или кастомная прошивка, даже если клиент пытается умолчать об этом. Этот раздел знает больше, чем клиент готов признать.
-modemst1/2 служебный раздел прошивки, предназначенный для хранения и оперативного использования nv-данных радио модуля, необходимых для работы сотовой связи. Фактически это оперативная память работы раздела efs.
Запомнили? Нет? Отлично, продолжаем.
И так когда вы окончательно запутались в этих терминах, я начну свой рассказ. Как и любая история в прошивках, начинается с того, что клиент хотел сам прошить телефон, но что-то пошло не так. Но прежде чем я начну, нужно поведать немного новостей, которые я пощу у себя в группе.
И так, компания OnePlus выпустила зловещую прошивку с номером билда 16.0.3, по мимо того, что эта прошивка выборочно кирпичит устройства, так в ней же был добавлен Arb. Так же в этой прошивке, "шланги" слитые от Химеры и сама Химера стали бесполезными.
Arb - система защиты от отката прошивки, на более ранний билд.
"Шланг" - специальный файл, который помогает открыт порт для прошивки, выполняя handshake.
И того, на данный момент, все устройства которые обновлены на 16.0.3, прошиваются только через сервер, который работает выборочно.
Обновился на 16.0.3? Добро пожаловать на серверную прошивку. Если сервер захочет.
Я понимаю что понятнее не стало, но вернемся к нашему герою, вот только его модель, к сожалению, клиент определил когда стало уже поздно.
И так, клиент прошил суперфлешер, благо с билдом 16.0.2, только была одна, малюсенькая проблемка.
У клиента был Oneplus 13, а суперфлешер был для Oneplus 13t, и так как процессоры у них идентичны, прошивка прошла без ошибок, но и телефон после этого не включился. Так или иначе, Пикабу, читают в разных странах, мне пишут с разных уголков света, конкретно данный телефон находился в солнечном Узбекистане. Уточняем все детали, и принимаемся за восстановление этого кирпичика, но сначала маленькое лирическое отступление, обещаю, это в последний раз.
Еще до момента когда команда Chimera Tool, сотворили свою магию, похожий случай уже был у моего коллеги, и там проблема решилась довольно просто. Индус+Otp = готовый телефон, без каких либо проблем.
И так, быстренько готовим наш прошивочный супчик, нам понадобиться прошивка для Edl,(не выше 16.0.2), китайская программа для прошивки, сами "шланги", ну и мой парадный бубен. Первым делом, объясняем что будем делать, и какие шаги нужны будут от моего напарника, на том конце рудеска. Все что от него требуется, это терпение и зажать кнопки плюс минус в нужный момент, и подключить к пк. И так программа открыта, телефон в режиме 9008 подключен к пк, жмем кнопку для инициализации порта, когда видим что все прошло успешно, делаем читку разметки устройства. Как я говорил, при OTA обновлении, не все разделы прошиваются, а суперфлешер построен как раз на OTA архиве, это значит что наш раздельчик с калибровками живой и не тронутый. Бекапим Persist при любой непонятной ситуации, туда же бекапим oplusreserv 1/2 тоже на всякий случай.
Инициализируем уже, разделы EDL прошивки в программе, там же снимаем галочку с раздела persist и oplusreserv 1/2, ставим галочку на защиту Lun 5, жмем кнопку для прошивки, после подтверждаем создание раздела "super", и наконец-то увидим процесс бар. Могу сказать сразу, прошивка прошла успешно и телефон включился и даже клиент успел обрадоваться, только я как обычно сидел с подозревающим видом лица. Товарищи которые знакомы с моими постами, могут воскликнуть в коментах: "Евген, уже были посты про успешное восстановление кирпича и 13-го пласа и 13т тоже".
И так, после запуска телефона, просим напарника настроить его и включить отладку по usb чтобы я смог "пощупать" телефон. Первое на что я обратил внимание, это на отсутствие мобильной сети. Подозревающее лицо сменилось, сначала на ухмылку, а затем на разочарование. При проверке имея, я с удивлением обнаружил там надпись "null", это уже довольно печальное зрелище. Проверка работоспособности отпечатка пальца, только подтвердила мои догадки о том, что клиент сказал мне не все. По видимости, телефон пытались поднять из кирпича, но это опять же воткнулось в то что модель выбрана была не верно, но при прошивке, так же не сняли галочки с важных разделов что и привело к тому к чему привело. Наученный горьким опытом, я давно создал папочку спасения таких устройств, где каждый файлик который предоставляет ценность, был аккуратно разлочен в папку с моделью. Почти все трубки, которые были у меня, были забекаплены, да это занимает время, но потом такие файлы на вес золота. И так берез из папки с названием "Oneplus 13, persist" нужный нам персист, шьем. Отпечаток заработал, а сеть все еще нет. Это смущает настолько, что на этом мои полномочия, все...
В срочном порядке, собираю прошивочный консилиум и обьясняю "докторам" проблему. Вместе думаем, накидываем варианты, составляем план действия.
Позвольте, ввести новый термин, и запутать вас окончательно, знакомьтесь это QCN.
Qcn - файл резервной копии данных калибровки радиомодуля (IMEI, частоты). Это файл, получаемый через специальные инструменты (QPST) для бэкапа настроек радиомодуля, правки имеев.
Qcn, всего лишь часть папки с названием efs.
В папочке efs как раз и лежат всякие modemst, qcn и прочие радости прошивальщика. Наш консилиум, решил что нудно полезть в qcn и поглядеть что там вообще происходит. Но прежде чем залезть так глубоко, я все таки решил поэкспериментировать.
Помните, в начале поста я говорил, что прошивая целиком, всю прошивку через Химеру, у меня так же падала сеть, но имеи были. И так решаю копаться именно в этих файлах. Делаю бекапы разделов modemst1/2, oplusreserv 1/2, и стираю их полностью с телефона. (Все дальнейшие действия, выполнены профессиональным прошивальщиком и не рекомендуются к повторению).
Начнем пожалуй с самого безобидного, сотрем modemst1/2, телефон запустился, закидываем OTA архив в телефон. Фактически я стер кешированые данные, от папки efs, ота архивчик нам нужен для того чтобы запись новых данных в эти разделы произошла, но то ли она не произошла, то ли не в этом проблема, остается загадкой, но имеев все еще нет.
Решаю стирать все 4 раздела.
После стирания файлов, получаю кирпич, но я был готов к этому, перешиваем телефон еще раз, в том числе и стертые файлы. Запуск телефона, сети все еще нет, настраиваем телефон до рабочего стола, проверяем отпечаток, он в отпуске. Проверяем имеи, они вернусь, успех, но не полный. Закидываем в телефон OTA архив для обновления, обновляем, получаем рабочую сеть, успех, но все еще неполный.
Подшиваем persist, отпечаток вернулся с Бали, и начал свою работу, прекрасно.
Для полного успокоения себя и владельца телефона, обновляем телефон еще раз по OTA, а теперь самое интересное, в группе я у себя анонсировал этот пост так "Как прошить один и тот же Oneplus, заработав 630 тысяч?". Конечно все резко подумали о том, что я срубил больше чем полмиллиона, но никто не подумал о том, что я шью телефоны практически в любой точке мира. Конкретно эта трубка была в Узбекистане, а значит и 630 тыс были не рубли, а узбекские суммы. Прошивки объединяют страны лучше, чем дипломатия.