Как установить update app

[TOOL] Huawei Update Extractor [UPDATED: v0.9.9.5] | OPEN-SOURCE LIBRARY

Breadcrumb

worstenbrood

Senior Member

Huawei Update Extractor

After messing around a bit with the perl tools available for extracting Huawei update.app files,
i got the idea to create an own (windows) tool.

(All versions
— File root tag

— Identifies a file
— attribute sequence: sequence of the file in update.app
— attribute type: type of the file in the update.app
— attribute partition: destination partition on the device
— attribute filetype: can be one of the following values:
* signature: used to identify the signature file
* checksum: used to identify the checksum file
— value: file name

You can add or edit devices. If you want them to integrate in newer version, pm ’em to me.
I’m gonna make some auto update for the device file somewhere in the future

To add your devices profile you’ll have to identify your device partitions and map them against the files inside the update.app.
Thread about identifying partitions: http://forum.xda-developers.com/showthread.php?t=1959445

ZeBadger ([email protected]) for figuring out the file headers
S34Qu4K3 for the P6 partition layout
ngamyarthar for adding ALOT of devices!

v0.9.1.1
— Added Type to the filelist (shows INPUT for g510 roms, but shows some useful info on P6 roms)

v0.9.2.0
— Files now can also be identified by the type attribute in devices.xml
— Added P6 device

v0.9.3.0
— Crc check during extract
— Crc check during creating flashable zip
— Added row to see file is flashable

v0.9.5.0
— Added repack
— Added icons and tooltip
— Added settings
— Experimental, no signing on repack, crc file gets generated
— Alot of stuff i forgot

v0.9.6.0
— Added command line options

v0.9.7.0
— Added G300 profile (thx ZeBadger)
— Added detailed info about the file (libmagic) in the tooltip on the extract list. This way it is easier to identify files inside the update.
(see screenshot). It will detect ext/fat/. partitions.

v0.9.7.1
— Alot of devices added in profiles (Credits to ngamyarthar, thanks alot dude!)
— Added android boot/recovery image recognition in magic.mgc

-v0.9.7.4
— App will now remember last used profile.
— Fixed bug in repack code (remainder writing)
— Added signing options (During repack, once set, it will use the selected keyfile (PEM format) and algorithm to create the signature file. If there is no file selected or the file doesn’t exist, it will use the existing signature file.)

Example of keyfile content:

-v0.9.7.5
— Default sorting on filename
— Small changes in structure of profiles.xml

-v0.9.7.6
— Added progress for signing and checksum generation
— Extract/CreateZip order by offset
— Repack order by Signature, Checksum, Files

-v0.9.7.7
— Doubleclick on item in extract files listview copies tooltip text to clipboard
— Added detailed android boot/recovery image detection to magic.mgc
— Added SecVRL header (the 2048 byte header in front of fastboot/boot/recovery image) detection

-v0.9.7.8
— Added timestamp options in settings
— Added tooltips in settings
— Some ui changes (which hopefully fix the missing «. » button issue)

-v0.9.7.9
— Some small ui fixes
— When saved location of the app is on a monitor that isn’t attached anymore, app location is restored to center of primary screen.

-v0.9.8.0
— Some small ui changes
— Sort profiles by name
— Remember last used directory
— Added profile for Huawei G526 (Credits Roman Dmitriev)

-v0.9.9.0
— Added compatibility for wine/mono
— Fixed bug in settings (Verify header checksum)
— Made the app localizable (Download the Resources_EN example, if you make a translation, make sure that your assembly start with «Resources_» and ends with the TwoLetterISOLanguageName (eg. EN for english) of your culture and put the assembly in the same directory as the application)
— Added profile for Huawei Ascend Mate 7 (Thanks to sketchykingy)

-v0.9.9.1
— Added missing translatable resources (updated Resources_EN)
— Added profile for Huawei MediaPad X1 7.0 (7D-503L) (Credits ElectroMyStyle)

Читайте также:  Биткоин сегодня что происходит

-v0.9.9.2
— Fixed int overflow (extracting big files)

-v0.9.9.3
— Added drag/drop for files and folders.

Источник

Как распаковать прошивку Huawei и ее файл UPDATE.APP

Китайский технологический гигант Huawei производит широкий спектр смартфонов для всех сегментов высокого, среднего и низкого ценового сегмента. Но когда дело доходит до обновлений программного обеспечения, не все получают последнее обновление от Huawei одновременно — будь то обновление Face Unlock или само Android Oreo — поэтому вы можете установить обновление самостоятельно. Региональные ограничения могут удерживать вас от получения уведомления OTA в течение недель и даже месяцев.

Поскольку файлы прошивки легко доступны в Интернете, вы всегда можете самостоятельно прошить файлы обновлений Huawei. Но для этого вам нужно сначала распаковать прошивку. Мы создали руководство, которое поможет вам на каждом этапе извлечения прошивки из файла Update.zip.

Кредит: Большое спасибо за его оригинальное руководство на форумах XDA, которое является источник этого руководства и изображений, используемых в нем. Если вы найдете это полезным, вы можете поблагодарить его.

Вам понадобятся:

Шаг 1. Определение сборки микропрограммы вашего устройства

Прежде чем перейти к базе данных прошивок Huawei, указанной выше, вам необходимо узнать номер сборки вашего устройства. Для этого просто перейдите на Настройки — Система — О телефоне — Номер сборки.

Шаг 2. Загрузите файл Update.zip

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

Загрузив необходимые файлы и установив на компьютер программу Huawei Update Extractor, откройте программу, запустив «HuaweiUpdateExtractor.exe».

В случае этого урока мы выберем извлечение «RAMDISK.img”Из UPDATE.APP и прошить его, используя Minimal ADB и Fastboot.

Точно так же вам нужно будет извлечь «БОТИНОК”Из папки UPDATE.APP при прошивке на устройствах Android 7.0 Nougat. Затем вы должны использовать команду «fastboot flash boot BOOT.img».

Помогло ли это руководство найти подходящий файл прошивки для вашего устройства Huawei и успешно его прошить? Поделитесь своими мыслями в разделе комментариев ниже.

Источник

Распаковка официальных прошивок Huawei

Если у вас есть опыт редактирования файлов прошивки и вы умеет работать с консолью ADB, вам могут понадобиться способы распаковки фирменного архива с прошивкой от Huawei, о которых мы и поговорим в этой статье.

Разработчики предоставляют для загрузки файл прошивки с расширением «.app», который представляет собой архивный пакет, с шифрованием и защитой от копирования и записи. Поэтому производить манипуляции с этим файлом достаточно сложно, ведь в большинстве случаев, сохранить изменения или перепаковать архив не выйдет.

Распаковка файла прошивки UPDATE.APP

Описанные ниже методы помогут распаковать защищённый архив с прошивкой и получить образы разделов. Для распаковки необходимо скачать утилиту Unpack UPDATE.APP или HuaweiUpdateExtractor.

На примере Unpack UPDATE.APP.exe:

На примере HuaweiUpdateExtractor:

Распаковка образов разделов cust.img и system.img

Если необходимо отредактировать запакованные в образ файлы, необходимо провести дополнительные манипуляции с утилитами Ext4Extractor или ext4_unpacker. К сожалению, для распаковки доступны только образы «system.img» и «cust.img», поскольку они не требуют процедуры декомпилирования.

На примете ext4_unpacker:

На примере Ext4Extractor:

Остались вопросы по распаковке прошивки? Задавайте их в комментариях!

Источник

Как обновить приложения на смартфоне?

Приложения не хотят обновляться сами, а вы не можете найти нужную настройку? Рассказываем, где ее искать.

Мы постоянно напоминаем, что ради безопасности нужно время от времени обновлять приложения. Иначе злоумышленники смогут, например, шпионить за вами через звонок в WhatsApp или захватить ваш Xiaomi, воспользовавшись багом во встроенном антивирусе. Но знаете ли вы, где и как искать обновления? Давайте разберемся.

Где прячутся обновления приложений в iOS и Android?

Допустим, вы решили обновить тот же WhatsApp. Что вы предпримете? Зайдете в настройки самого мессенджера? Это логично, но, увы, бесполезно — там ничего ни про какие обновления не будет. Откроете настройки смартфона и проштудируете раздел про управление программами? К сожалению, и это не поможет.

Дело в том, что обновление всех приложений централизовано, и отвечает за него официальный магазин — App Store в iOS и Google Play в Android. Вот его-то настройки нам и нужны.

Читайте также:  надо ли садить батарею в новом телефоне

Как настроить автоматическое обновление в iOS?

Удобнее всего заставить приложения обновляться автоматически, чтобы больше не беспокоиться об их актуальности. В iOS эту опцию можно включить в настройках, в разделе, посвященном App Store:

[how-to-update-ios-andriod-apps-screen-1]
[Alt/caption: Как включить автоматическое обновление приложений в iOS]

Как настроить автоматическое обновление в Android?

В отличие от iOS, в Android все настройки находятся внутри приложения Play Маркет. Чтобы включить автообновление:

Как вручную обновить приложения в iOS и Android

Что делать, если автоматическое обновление вас не устраивает? Скажем, у вас не самое новое устройство, и есть риск, что очередная версия приложения окажется с ним несовместима. Или, например, вам важно заранее узнать, что именно изменилось в новой версии.

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

Чтобы вручную обновить приложения в iOS:

Чтобы вручную обновлять приложения в Android:

Обновляйтесь на здоровье!

Как видите, управлять обновлениями достаточно просто, если знать, где их искать. Теперь шпионские баги в WhatsApp или в чем бы то ни было вас не испугают.

Источник

Как внедрить In-app Updates в Android-приложение на React Native

В 2019 году Google выпустила In-app Updates — возможность обновлять Android-приложения без перехода в Google Play. Однако до сих пор довольно мало приложений поддерживают этот способ обновления.

Когда я внедрял In-app Updates в приложение Профи для специалистов — без сложностей не обошлось. Пришлось покопаться в документации, статьях и даже пару раз переписать реализацию.

Чтобы меньше людей наступали на мои грабли, я сделал пошаговую инструкцию по интеграции In-app Updates в Android-приложение на React Native. Если следовать ей — сможете внедрить эту опцию за день.

Оговорка

Уже разработали несколько библиотек, инкапсулирующих реализацию In-app Updates. Например, эту или эту. Моя статья для тех, кто хочет добавить интеграцию самостоятельно.

Что будем делать

Разберёмся, как тестировать эту фичу. Ведь она требует взаимодействия с Google Play.

Подготовка к тестированию

Нам придётся неоднократно тестировать код. Поэтому сперва разберёмся, как это делать.

Для проверки In-app обновлений Google разработала специальную тестовую среду, в которую можно загрузить apk-файл или bundle приложения и затем установить на устройство. Через неё же будем имитировать появление обновления.

Готовим устройство.

Устанавливать приложения из тестовой среды можно как на реальные устройства, так и на эмуляторы. В любом случае нужно настроить Google Play (названия кнопок на вашем устройстве могут отличаться, но суть одна):

Заходим в Google Play, кликаем на своё фото, выбираем «Настройки».

В разделе «Сведения» кликаем много раз подряд на «Версию Google Play», пока не станем разработчиком.

Включаем тогл «Внутренний доступ к приложениям» в разделе «Личные» или «Общее».

Собираем apk- или aab-файл приложения.

Ещё к нему можно подключить дебаггер Android Studio, чтобы отлаживать нативный код. Для этого нужно нажать на «жучка со стрелочкой» в панели инструментов Android Studio (Attach debugger to Android Process) и выбрать запущенное приложение.

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

Загружаем полученный файл в Internal App Sharing и указываем название версии.

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

Копируем ссылку на приложение, открываем на устройстве и устанавливаем.

Готовим обновление.

Чтобы имитировать обновление, нужно повторить шаги 2–4 со следующими нюансами:

номер сборки (versionCode) должен быть больше номера установленной сборки;

желательно добавить изменения, которые заметны сразу при запуске. Так проще понять, что приложение обновилось;

устанавливать сборку не нужно. Надо перейти по ссылке и попасть на экран с кнопкой «Обновить» или Update.

Если не использовать Internal App Sharing — обновление будет недоступно.

Поддержка immediate-обновлений

Immediate-обновления почти полностью реализует Google. Нужно только запросить проверку на наличие новой версии. Если она есть, Google покажет пользователю полноэкранный баннер, загрузит, установит обновление и перезапустит приложение.

Читайте также:  пыть ях такси номер телефона по городу

Создадим нативный модуль с методом проверки наличия обновления.

(Здесь и далее код на Kotlin и JavaScript)

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

Позже добавим шлюз для передачи событий из натива в JS, чтобы в случае ошибки обновления можно было отправить событие и обрабатывать его в React Native.

Вызываем написанный метод из JS.

И вуаля — всё работает.

Поддержим установку обновления после сворачивания.

В процессе установки пользователь может свернуть приложение. Установка при этом должна продолжиться. А если пользователь вновь развернёт приложение, нужно убедиться, что процесс не остановился. Для этого добавим метод в нативном модуле:

Нужно вызывать его каждый раз, когда приложение становится активным. Для этого в React Native зарегистрируем слушателя изменений AppState :

Поддержка flexible-обновлений

Процесс flexible-обновлений выглядит так:

Google Play предлагает пользователю обновить приложение;

если пользователь соглашается, начинается фоновая загрузка обновления;

после загрузки мы предлагаем установить обновление с полноэкранной заставкой от Google Play и перезапуском приложения в конце;

eсли пользователь отказывается установить обновление в моменте, предлагаем ему повторно. Google рекомендует делать это на каждое разворачивание приложения, но тут воля ваша. Кстати, если приложение будет в фоне на момент завершения загрузки, то установка обновления произойдёт автоматически.

В отличие от immediate-обновлений, здесь придётся написать чуть больше кода.

Модифицируем написанные ранее методы, чтобы при их вызове можно было указать требуемый тип обновления.

Объявим слушателя для наблюдения за процессом.

Зарегистрируем его в методе checkForAppUpdate перед вызовом startUpdateFlowForResult :

Добавим трансляцию процесса обновления на уровень JS.

Добавим в наш модуль:

И вызовем новый метод в слушателе:

Добавим слушателя событий на стороне JS.

В JS-коде подпишемся на сообщения перед вызовом checkForAppUpdate :

Использованные здесь константы дублируются из нативного кода.

Отлично! Теперь мы запрашиваем обновление из React Native и следим за его статусом. Но после успешной загрузки ничего не произойдёт. Нужно инициировать установку.

Предложим установить обновление.

Для этого добавим сообщение в слушателя событий в JS:

Если пользователь согласится, нужно снова передать управление в натив и запустить установку обновления. Для этого добавляем и вызываем метод нативного модуля:

Обработаем отказ от установки.

Как я писал выше, в случае отказа от установки нужно напоминать пользователю об обновлении. Проще всего это делать при каждом переходе в приложение (будь то запуск или разворачивание). Тем более что в предыдущем разделе мы уже использовали этот триггер для проверки состояния immediate-обновления. Давайте добавим в нативный метод resumeUpdate проверку статуса обновления и, если оно остановится после загрузки, предложим обновиться:

Вот и всё. Обработка события на стороне React Native уже реализована, поэтому при получении статуса InstallStatus.DOWNLOADED пользователь вновь увидит предложение установить загруженное обновление.

Закругляюсь

Мы поддержали In-app обновления приложения двух видов — immediate, когда весь процесс под контролем Google, и flexible, в котором мы сами решаем, как показать пользователю прогресс и показывать ли вообще. Теперь можете решить, какой вид обновления лучше подходит вашему приложению. А может, вы захотите использовать оба варианта. Как бы то ни было, вся конфигурация управляется на стороне React Native, и писать нативный код больше не придётся.

Я рассказал про минимальную функциональность In-app обновлений. Ещё есть возможность управлять частотой показа баннера и приоритетами обновлений. Это легко поддержать на базе написанного нативного модуля. Просто эти опции выходят за рамки статьи.

Если захотите поддержать обязательные обновления в своём приложении, потребуется немного доработать код. Google рекомендует при отказе пользователя в стандартных баннерах показывать ему информационное сообщение, после которого запускать процесс обновления повторно.

Я намеренно не стал усложнять код в статье. Но рекомендую все методы взаимодействия с нативным модулем из React Native вынести в отдельный сервис, чтобы инкапсулировать всю логику в одном месте.

Несмотря на обилие кода, поддержка In-app обновлений реализуется легко. Надеюсь, мне удалось это показать в статье, и вы решитесь добавить такую опцию в ваше приложение. Лично мне она кажется удобной.

Источник

Обучающий проект