Что такое патчи в телефоне
Перейти к содержимому

Что такое патчи в телефоне

  • автор:

Что такое патчи в телефоне

Добавить в избранное

Что такое патч и как его установить.

Термин патч означает изменение каких-либо данных с целью добавления новых функций, исправления глюков и т.д. Но это определение подходит для определения патча во всем цифровом мире.
Что же делает патч для сотового телефона? Патч изменяет прошивку телефона, добавляя в неё новые возможности (к примеру, диктофон на горячей клавише), снимает различные ограничения (например, устанавливая максимальный размер файлов MMF 512кб., вместо оригинальных 32кб.).
Патчи можно найти в разных видах. На данный момент основными являются SMP и DIF патчи. Также на просторах интернета можно встретить патчи в устаревших форматах, о которых будет рассказано в самом конце.

1. DIF-патчи (файлы .DIF )
Эти патчи представляют собой список изменений, которые надо внести в прошивку. Возможна установка DIF патча как непосредственно в телефон, так и на прошивку у вас на компьютере (с последующей прошивкой всей прошивки). Для установки DIF-патча вам понадобится программа SGHFD .
Во-первых, убедитесь что данный DIF-патч подходит именно для той прошивки, которая установлена у вас в телефоне!
Во-вторых, убедитесь что батарея вашего телефона заряжена хотя бы на половину, т.к. процесс установки ДИФ-патча сходен с прошивкой телефона и достаточно энергоемкий.
1) Запускаете SGHFD
2) Подключаете выключенный телефон к компьютеру
3) Выбираете в Флэшере порт и скорость (например, COM7; 115200), также можете изменить язык на русский.
В версии 0.67 и выше настройка всех параметров производится на закладке Settings
4) На телефоне зажмите на кнопку включения до тех пор, пока в нижней части окна SGHFD не побежит полоса прогресса. На некоторых моделях требуется держать кнопку включения в течение 2-3 секунд, на некоторых моделях (например, Х460) надо, наоборот, нажимать как можно короче
5) Нажмите Flash DIF File (Прошивка файла DIF) , выберите нужный DIF, можете поставить галочку Create undo DIF, которая создает DIF-патч отмены изменений, внесенных оригинальным DIF-патчем. С помощью патча-отмены вы сможете восстановить телефон в случае, если прошитый вами DIF оказался испорченным.
Произойдет процесс прошивки.
6) По окончании не спешите сразу выдергивать провод из телефона! Нажмите сначала на кнопку Disconnect, потом вытащите провод из телефона, и только потом можете включать телефон.
Также данная программа позволяет пошивать DIF файлы. Это патчи для прошивки, которые изменяют её прямо в телефоне. Для этого нужно нажать Flash DIF file.

Для того, чтобы применить DIF-патч к прошивке у вас на компьютере вы можете воспользоваться кнопкой Apply DIF file to BIN/TFS (Применение DIF к BIN/TFS)
Также применить ДИФ к прошивке можно из программы ResMan : в меню Ресурсы выберите пункт Установить DIF патч

2. SMP-патчи (файлы .SMP )
Это патчи в формате ResMan для версии ResMan 4 и выше.
1. Для установки SMP патча просто скопируйте его в подпапку Patches папки куда установлен ResMan. Например, в C:\ResMan\Patches\ .
2. После этого запустите ResMan, откройте вашу прошивку (Файл|Открыть). В списке доступных ресурсов (слева) выберите пункт Патчи . Справа вы увидите список всех патчей, доступных для вашей прошивки. Также, для более быстрого поиска нужного патча вы можете раскрыть список патчей, отсортированных по категориям (в дереве ресурсов).
В списке патчей (справа) находится таблица с колонками названия, версии, статуса патча (устанволен или нет). Поместив курсор на любой патч, вы получите его краткое описание (чуть ниже списка патчей).
Для установки патча, выделите нужные патчи галочками и нажмите на кнопку Применить патчи .
После чего сохраните прошивку и прошейте ей ваш телефон.
3. Также ResMan позволяет сохранить только внесенные вами изменения (в т.ч. и измененные патчи) в прошивку в виде DIF-патча ( Файл|Сохранить как DIF ). После чего действуйте по вышеописанной схеме установки DIF-патча.

3. XML-патчи (файлы .XML, .TXT )
Это патчи в формате ResMan для версии ResMan до 3.83 .
На данный момент являются устаревшими и очень редко используются.
Для того, чтобы установить этот патч вам понадобится ResMan версии до 3.83 .
1. Откройте в блокноте файл ResMan.xml, который находится в папке, куда вы установили ResMan.
2. Найдите кусок, отвечающий за вашу прошивку. Он будет выглядеться примерно так:

3. В нем спуститесь до области патчей, которая будет начинаться с тега
4. В другом окне блокнота откройте ваш XML-патч.
5. Скопируйте всё содержимое XML-патча в блокнот с открытым ResMan.xml сразу после
6. Сохраните файл ResMan.xml
7. Запустите ResMan и выполняйте пункты 2-3 схемы установки SMP-патча.

что такое патч для телефона ?зачем он нужен ?если можно то подробное описание)

Патч — это внесение изменений в прошивку телефона. Это делается для того, что бы убрать недочёты, которые совершила компания
Какие бывают патчи?
Патчи бывают системные и графические. Системные патчи добавляют или улучшают некоторые функции телефона. Графические патчи вносят изменения в графику телефона

Остальные ответы

Запла́тка, или па́тч (patch — заплатка) — автоматизированное отдельно поставляемое программное средство, используемое для устранения проблем в программном обеспечении или изменения его функционала, а также сам процесс установки патча («пропатчивание» )

Для телефона как правило это не патч, а обновление программного обеспечения с официального сайта.

Патчи для Android

Default choice fixer for Smart Launcher Патч для приложения Patch for Smart Launcher, который исправляет ошибку, возникающую на Android 4.1 или ниже при установке Smart Launcher в качестве лаунчера по умолчанию.

Brightness Patcher Программа для устройств LG p880 (X3), которая позволит вам увеличить яркость экрана. Требует наличия прав суперпользователя.

Update me Это приложение позволит вам задать автоматический поиск обновлений прошивки и сторонних приложений, установленных на вашем мобильном устройстве.

ownCloud Jelly Bean Workaround Эта программа исправляет баг Android Jelly Bean, из-за которого при перезагрузке устройства удалялись персональные данные пользователя из платных приложений.

Ministro configuration tool 2 Ministro configuration tool 2 — это бесплатный набор дополнительных инструментов, необходимых для работы приложения Ministro. С FreeSoft, вы можете скачать последнюю версию Ministro configuration tool 2 для Android, совершенно бесплатно.

Как создавать патчи, основанные на доверчивой политике безопасности Android

В этом топике я хотел бы рассказать о том, как можно получать доступ к тому, что принадлежит нам, но косвенно.
Любой софт — это чья-то собственность: кто-то сидел и шевелил своими мозгами, чтобы произвести на свет очередное «чудо».
Но вне наших девайсов речи о софте не может и быть. Понятие «софт», в таком случае, будет означать не более чем «мягкость».
Это очевидно.
Именно поэтому мы имеем право вытворять с любым программным кодом, выполняющимся на нашем устройстве, все, что пожелает душа…

Intro

Думаю, начать стоит с самого начала. Все началось с моего обнаружения пользовательской зависимости окружающих к небезызвестной игре 2048. Мне, конечно же, стало интересно, чем эта игра так захватывает людей, поэтому я решил сам ее попробовать. Через несколько минут я понял ее суть и мне эта игра тоже стала интересна.
Должен признаться, более 5000 очков мне набирать не удавалось никак, а до 2048 было еще слишком долго…
Тем временем окружающие «игроки» с легкостью набивали по 10-16тыс очков, а некоторым удавалось даже достигать 2048 в клетке.
Что ж, спустя некоторое время у меня возникла идея тупо взломать эту игру, чтобы не «убивать» время на ее прохождение( она слишком долгая в прохождении, но от этого не менее затягивающая ). А еще спустя пару дней, об этом же меня попросили и мои знакомые.
Это означало одно: пора браться за дело…

Что было в начале?

Этот взлом не начался с чего-то необычного. Все было по шаблону: я вытащил APK-пакет приложения, произвел первичную декомпиляцию, с использованием apktool.jar, затем вторичную( для получения Java кода из Smali ), используя тулзу jd-gui. Ничего необычного. Далее я долгое долгое время бороздил по Java-классам в надежде отыскать хоть что-то полезное и интересное. Помимо «тонн» рекламных и гугловских библиотек я ничего не замечал. В конце концов удалось наткнуться на внутренности данного приложения, т.е то, где все интересное и происходит:

Но, как ты можешь видеть, рыться во всем этом, видимо, обфусцированном коде, мало кому захочется: оригинальные названия классов, методов и переменных представляют из себя лишь краткий набор букв. Исследование на данном этапе зашло в тупик…
Я решил бросить это дело и заняться чем-то более полезным. Но спустя несколько дней я решил вновь вернуться к данной теме.

Начало конца

Я вдруг решил просто покопаться в данных, хранимых приложением. Это могли быть данные обо всем, начиная с цвета клеток поля и заканчивая текущим количеством очков. Структура данных приложения такова:

Теперь по порядку:

  • Папка /cache пуста, а поэтому особого интереса не представляет
  • В /files, на первый взгляд, хранится мусор, но это только на первый взгляд
  • Папка /lib содержит графическую библиотеку Cocos2D, что, в общем-то, нам тоже не интересно.
  • Ну и /shared_prefs содержит текущие значения SharedPreferences приложения

Из этого мы делаем вывод, что интерес представляют только две папки: files и shared_prefs.
Что ж, смотрим, что там внутри них.

image

image

В первом случае нас интересует файл save.plist, а во втором — единственный файл Cocos2dxPrefsFile.xml.
Их названия говорят за себя. Дабы не растягивать текст, сразу предоставлю информацию об обоих файлах:

1) save.plist
Как несложно догадаться, этот файл отвечает за сохранение состояния игры перед выходом. В сохранение состояния входит: описание клеток игрового поля, количество Undo и текущий рейтинг игрока.

2) Cocos2dxPrefsFile.xml
Здесь приложение хранит данные о максимально достигнутом когда-либо количестве очков.

Одна из особенностей заключается в том, что эти файлы представлены в удобочитаемом формате XML:

1) Cocos2dxPrefsFile.xml

   // максимальный рейтинг    

2) Файл save.plist
( каждый тег dict хранит данные об определенной клетке в определенный момент времени )

     Main  // Отдельно взятая клетка поля Index 1 // Номер клетки( 0..15 ) Level 3 // Степень двойки в клетке Score 1204 // Текущий рейтинг MaxUndo 2 // Undo Index 4 Level 3 Score 1204 MaxUndo 2  Index 0 Level 1 Score 1204 MaxUndo 2  Index 3 Level 1 Score 1204 MaxUndo 2  Index 2 Level 2 Score 1204 MaxUndo 2  Index 14 Level 2 Score 1204 MaxUndo 2   Steps  Main  Index 1 Level 10  Index 4 Level 10  Index 0 Level 1  Index 3 Level 1  Index 2 Level 1    Main  Index 13 Level 10  Index 12 Level 10  Index 8 Level 1  Index 15 Level 1  Index 14 Level 1  Index 10 Level 1       

Теперь, зная это и имея на устройстве ROOT права, можно с легкостью подстроить игру под себя.
Но рут доступ есть далеко не у всех.
Именно поэтому следует создать патч для этого приложения, который был бы доступен широкой аудитории.

Создание патча

Для начала немного теории.
Все ANDROID-приложения обладают собственной песочницей, доступ к которой может быть получен только этим приложением( или рут-пользователем ). Песочница представляет из себя папку, находящуюся в сердце OS — /data/data/*. Вместо звездочки может стоять имя пакета приложения. Например, имя пакета игры 2048 — com.estoty.game2048, как ты мог уже догадаться из слайдов выше. Следовательно, доступ к папке /data/data/com.estoty.game2048 есть только у игры( и у рута ), а, следовательно, и доступ ко всем вкусностям, перечисленным выше.
Казалось бы, что нам остается?

Вероятно, тебе приходит на ум создание собственного приложения с одноименным пакетом. Но при компиляции и установке нашего приложения-фейка мы получим ошибку INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES , говорящую о том, что ключ, которым была подписана игра, не соответствует ключу, которым подписано наше приложение-фейк.

Значит, нам остается одно: пересобрать игру в APK и подписать его нашим ключом с помощью тулзы
JARSIGNER, а затем и наше приложение-фейк тем же ключом! Плюс, зная то, что при переустановке приложений Android не удаляет данные игры( т.е ее песочницу ), мы можем подменить данные игры на свои данные, опираясь на добрую и доверчивую политику безопасности OS Android, а затем запустить оригинальную игру, которая бы уже использовала наши фейковые данные.
Но а вдруг игра перезапишет данные при переустановке? Что ж, сейчас и это проверим!

Начнем с подписки игры нашим ключом( сертификатом ). Для этого ее нужно стандартно разобрать( декомпилировать, если угодно ), а затем собрать снова и уже после этого подписать своим ключом. Предполагается, что ты знаком с этим процессом. Если же нет, то он неплохо расписан, например, вот здесь.

jarsigner -keystore default.keystore -storepass *** -keypass *** 2048.apk default

Итак, имеем APK пакет приложения, подписанный нашим дефолтным ключом.

Далее мы создаем новое Android-приложение, с именем, названием пакета и сертификатом(ключом), идентичным игре 2048.
Теперь между нашим приложением-патчем и игрой 2048 нет каких-либо отличий на системном уровне ( то есть для Android, это два идентичных приложения, которые могут друг друга переустановить, заменять ),

Теперь нам следует подумать о том, как будет работать патч.
Разумеется, все можно сделать просто: писать статические данные в файлы Cocos2dxPrefsFile.xml и save.plist, которые, например, устанавливают большое количество очков и большие числа на игровом поле. Но это не круто. Я предлагаю сделать патч динамичным, т.е таким, чтобы он мог в любое время без перекомпиляции( пересборки ) устанавливать нужные нам значения рейтинга, клеток поля и т.д.

Если поплевать на дизайн и оформление, а сосредоточиться только лишь на функциональности патча, то получится примерно следующее:

image

В патч включены самые «полезные» фичи:
у пользователей будет возможность менять свой лучший рекорд, менять текущий и устанавливать цифры в каждой клетке игрового поля!
Это более чем достаточно.

Коддд

P.S Предполагается, что ты имеешь базовые представления об устройстве Android-приложений. Поэтому комментариев к коду практически нет.

Итак, с манифестом приложения мы ничего более делать не будем — имя пакета уже было установлено при создании нового проекта, а имя приложения, в общем-то, менять необязательно. Никаким особым функционалом патч обладать не будет, так что специфичные user-permissions нам тоже ни к чему.

По нажатию на единственную кнопку будет вызываться функция Patch :

 private void Patch() < SharedPrefsPatch(); // 1 FilePatch(); // 2 AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setMessage("OK. Now you should install the original game without removing this app."); alert.setTitle("Success!"); alert.setCancelable(false); alert.setPositiveButton("Ready!", new DialogInterface.OnClickListener() < @Override public void onClick(DialogInterface dialog, int which) < dialog.cancel(); Main.this.finish(); >>); alert.show(); > 

Устанавливаем новый рекорд:

//1 private void SharedPrefsPatch()

И формируем игровое поле, как возжелаем( как ты помнишь, тут все в формате XML. Прошу прошения за небрежность формата ниже. ):

 // 2 private void FilePatch() < try < FileOutputStream fop = openFileOutput("save.plist", MODE_WORLD_READABLE); OutputStreamWriter writer = new OutputStreamWriter(fop); writer.write("" + "" + "\n" + "\n" + "\n" + "\n" + " \n" + " Main\n" + " " + "" + ""); for(int i=0;i0) writer.write("" + "" + "\n" + " Index\n" + " "+i+"\n" + " Level\n" + " "+textboxCells.get(i).getText()+"\n" + " Score\n" + " "+currentscore.getText().toString()+"\n" + " MaxUndo\n" + " 200\n" + " " + ""); writer.write("" + "" + " \n" + " Steps\n" + " \n" + " \n" + "\n" + " \n" + " \n" + " \n" + "" + ""); writer.flush(); writer.close(); > catch (FileNotFoundException e) < Log.i("ERRORMINOR", "********1"); >catch (IOException e)

Компилируем. Подписываем( сертифицируем ) тем же ключом, что и игру 2048.

Проверяем работоспособность

1) Сперва установим игру 2048( с помощью ADB, для начала ):

adb install 2048.apk

image

Супер, игра, подписанная неродным ключом, работает.

2) Устанавливаем патч( Android автоматически переустановит приложение, заменит его на патч, данные приложения, при этом, сохранятся ):
adb install -r patch.apk

и эксплуатируем его:

image

image

3) Переустанавливаем нашу игру:

adb install -r 2048.apk

image

Отлично. Патч полностью работоспособен!
В данный момент мы все действия проводили в консоли( для скорости ), но на деле же все куда проще: достаточно закинуть и игру, и патч на карту памяти своего девайса, например, далее установить игру, затем патч и затем снова игру. В таком случае система Android тебя каждый раз будет предупреждать, что приложение будет переустановлено. Вы, разумеется, соглашаетесь.

Вот так можно использовать политику безопасности Android, наложенную на пакеты приложений, для создания патчей.

Outro

На самом деле, подобная брешь не является виною только Android. Я думаю, тут также виноваты и разработчики приложений, которые не проверяют целостность данных, не шифруют их и используют их в своем приложении с полной доверенностью источнику…
Что ж, вот мы и рассмотрели еще один аспект безопасности, который следует учитывать при разработке своих приложений под OS Android.

До новых встреч!

  • Информационная безопасность
  • Отладка

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *