Прошивки, моды, патчи ZP3. Вот и хочется попробовать предыдущую прошивку. Да ничего он на ней не инвертирован, у меня она стоит, все в порядке с датчиком освещенности. Если с ним что то не так, для начала попробуйте на чистую прошивку откатиться, а не на предыдущую. Дело, очевидно, не в прошивке она уже у многих, и про проблемы с датчиком пока никаких сообщений не было, кроме вашего. Модификация стоковых прошивок для Android. Часть 1 Хабрахабр. Здравствуй Хабр Несколько лет назад, когда я впервые познакомился с Android, я услышал от своего коллеги по работе, что Android предусматривает возможность установки модифицированных или самодельных прошивок. Признаться, тогда я был далек от этого. И даже пол года назад меня едва интересовали подобные вещи. Глубоко в душе, я был уверен то, что делает производитель, уже предназначено для нормального использования. Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование Google, Skype, Facebook и других приложений. В принципе, на некоторые вещи можно было закрыть глаза, но когда мой телефон не подразумевал использование учетной записи Google я взял с себя обещания обязательно разобраться во что бы мне это не стало. Поэтому если разработчиком предусмотрена возможность замены его прошивки перепрошивка, то применение патча на программное. Android, смартфоны, Sony, патчи для sony ericsson, эльфы для sony ericsson, программы для sony ericsson, игры, статьи, видео, музыка, java софт,. K5Plus.jpg.e09ca98bab1d826794077bcc85163994.jpg' alt='Патчи Прошивки' title='Патчи Прошивки' />
Прошло пол года и мои кастомные прошивки с успехом используются по всему миру. В данной серии статей пойдет речь о том, как делать reverse программирование для Android, реализовывать патчи, твики и моды. Преамбула. И так
TWRP Recovery как установить, как делать резервные копии на android, восстанавливать систему, устанавливать прошивки, патчи и. Давайте сперва определимся с понятиями, которые будут использоваться в данной статье. Ваше привычное понимание, при этом, может сильно отличаться. Патч изменение или замена существующего программного кода с целью модификации алгоритма программы. Мод как правило, добавление дополнительного функционала в существующий программный код без изменения алгоритма. Твик усовершенствование функционала программы с целью облегчения доступа к параметрам системы. Патчи Прошивки' title='Патчи Прошивки' />Также хочу заметить, что все примеры будет взяты для телефона HTC, но это не значит, что данная информация не может быть использована на других телефонах. Обращаю ваше внимание, что я, как автор, не несу ответственности за возможную потерю данных на вашем телефоне в результате использования информации ниже. Подготовка среды. Обойдусь без подробных инструкций как пользоваться тем или иным программным обеспечением. Если вам интересна данная статья и вы дочитали до этих строк, то я надеюсь, что вы уже опытный пользователь и имеете опыт использования, ну или хотя бы экспериментирования в данной области. Инструкций, статей и результатов тестирования полно в открытом доступе, впрочем, как и на Хабре. Также обойдусь без описания некоторых терминов, иначе статья получится очень большой и нудной. Будем писать только по делу. Уверен, что среда у вас уже давно стоит. Если нет, то предлагаю скачать и установить. Это среда разработки приложений для Андроид. Для того чтобы делать модификации, нам обязательно придется проверять наш программный код. Среда разработки самое лучшее, что мы можем использовать. Данная утилита позволит вам работать с образами системных партиций официальной ну или неофициальной прошивки. Декомпилятор программного кода языка Java. Сразу отмечу, что это самый лучший декомпилятор в плане удобства использования. Еще один декомпилятор, или дизассемблер, как некоторые любят называть, программного кода языка Java. Не удобен в плане использования, но разбирает код, который иногда не понимает JD GUI. Еще один дизассемблер, но уже dalvik кода. Утилита для конвертации исполняемых файлов Dalvik кода. Преобразование прошивки. Разумеется, прошивка, которая стоит у вас на телефон от производителя оптимизирована с целью сокращения энергопотребления. Для того чтобы прошивку можно было изменять, ее необходимо преобразовать в формат, позволяющий изменять код. Для этого используется Android Kitchen. Можно конечно и руками, как я и делал раньше, пока не нашел эту самую кухню. Как вытаскивать системную область из телефона, устанавливать среду, делать DEODEX прошивки, вы можете прочитать в интернете. Если вам уже ничего не понятно, я думаю стоит повременить со статьей, пока вы не наберете достаточно опыта. После того, как прошивка из оптимизированного вида ODEX оптимизированный dalvik исполняемый код, если мне не изменяет память стала DEODEX то бишь НЕ оптимизированной, все исполняемые файлы готовы к модификации. Непосредственно модификации. Создание патчей. Как я уже и рассказывал, мой телефон изначально имел запрет на использование Google. Ну хоть ты тресни, на Playstore не зайти, учетную запись не настроить, телефонная книга толком не синхронизируется. Зачем нужен такой Android Долго копаясь в логах logcat самого устройства, я нашел записи, которые говорили о том, что использование Google запрещено. Самое не удобное в Android, вы видите лог, но не знаете какое системное приложение его производит. Чтобы отыскать от куда ноги растут, мне пришлось распотрошить все системные приложения до дизассемблированного Java кода. Это заняло достаточно времени, но я до сих пор пользуюсь проделанной работой при анализе и поиске нужного кода. Этапы получения подобного инструментария следующие 1. Сделать DEODEX всей прошивки. Вашу новую DEODEX прошивку надо будет собрать и прошить на телефон. Как это делается тема другой статьи. Из каждого файла, находящегося в systemframework вытащить файл classes. JAR посредством dex. Каждый полученный JAR открыть в JD GUI и пере сохранить в исходный код. Тест Мировые Природные Ресурсы. Распаковать исходный код из архива. В итоге у меня получилось столько папок, сколько было JAR файлов в systemframework, и каждая папка имела структуру исходных кодов Java. Путем несложных манипуляций, я быстро отыскал то место, которое генерировало записи в logcat. Не будем рассматривать всю логику запрета, так как для каждого случая это отдельная история. Мне пришлось потратить пару часов, прежде чем я нашел где производятся проверки, построить в голове блок схему алгоритма и понять куда надо лезть, чтобы алгоритм чуть чуть попортить. Оказалось все просто. Есть подпрограмма, которая на основе заранее установленных констант, при обращении отвечала, относится ли телефон к Китаю или же нет. Код находился в файле HTCExtension. Build. UtilsCustomization. Распаковка и анализ оригинального файла. Сперва нам надо взять оригинальный DEODEX JAR файл, который отвечает за нужную нам часть кода. В нашем случае HTCExtension. Открыть любым архиватором и вытащить от туда classes. С помощью конвертера dex. JAR файл. Команда dex. Открыть полученный classes. Да, чаще всего JD GUI декомпилирует код не так как он выглядит в оригинале, оно и понятно, но читать вполне можно. В исходнике мы видим, что подпрограмма проверяет параметры проекта и языковой флаг прошивки. В нашем прискорбном случае возвращается значение TRUE. Чтобы сделать патч, нам надо дизассемблировать сам Dalvik код. Для этого используем baksmali. Удобнее всего создать отдельную папку и положить туда три файла вместе HTCExtension. Даем команду java Xmx. HTCExtension x HTCExtension. API вашей версии Android. Для JB это 1. 6 папка, где находятся все фреймворки прошивки. В моем случае это была командаjava Xmx. S devAndroidAndroid KitchenWORKING. В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом. Отыскиваем файл по пути comhtcutilcontactsBuild. UtilsCustomization. ChinaZ. registers 3. LcomhtchtcjavaflagHtc. Build. Flag Htc. Страшно, не правда ли Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде. TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется. Самый простой способ спасти отца русской демократии, это изменить код на следующий. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD GUI код выглядел бы как public static boolean is. China. Да, метод ,будет работать. Но мы же не ищем легких путей это раз. Во вторых не совсем красиво. Хочется кода что то вроде public static boolean is. China. А как нам получить Dalvik код данного исходного кода Для новичков мы сделаем небольшой трюк. Создание Dalvik кода. Открываем Android SDK. Создаем новый проект, и в наш единственный тестовый класс пишем следующий кодpackage ru. Компилируем наш проект и затем берем собранное приложение из рабочей области.