- Signing Your Applications
- In this document
- See also
- Signing Overview
- Signing in Debug Mode
- Signing in Release Mode
- Signing Android Wear Apps
- Signing Your App in Android Studio
- Automatically Signing Your App
- Signing Considerations
- Securing Your Private Key
- Expiry of the Debug Certificate
- Signing Your App Manually
- Что такое обновление OTA, способы его установки
- Что такое обновление ОТА (FOTA)
- Установка ОТА: автоматически, через три точки и вручную
- Автоматическая установка
- Установка OTA через «три точки»
- Ручное обновление
- Альтернативные способы: Recovery и Fastboot
- Recovery
- Fastboot
- Обновление Android на Xiaomi A-серии
- Почему не приходит OTA на телефон: 10 причин
- 1. Ошибка или сбой MIUI
- 2. Разблокированный загрузчик
- 3. Кастомная прошивка
- 4. Не та прошивка
- 5. Кастомное рекавери
- 6. Нет новой версии OTA
- 7. Активен Root
- 8. Модифицированы системные файлы
- 9. Прошивка вышла для определённого региона
- 10. Ваша очередь ещё не подошла
Signing Your Applications
In this document
See also
Android requires that all apps be digitally signed with a certificate before they can be installed. Android uses this certificate to identify the author of an app, and the certificate does not need to be signed by a certificate authority. Android apps often use self-signed certificates. The app developer holds the certificate’s private key.
Signing Overview
You can sign an app in debug or release mode. You sign your app in debug mode during development and in release mode when you are ready to distribute your app. The Android SDK generates a certificate to sign apps in debug mode. To sign apps in release mode, you need to generate your own certificate.
Signing in Debug Mode
In debug mode, you sign your app with a debug certificate generated by the Android SDK tools. This certificate has a private key with a known password, so you can run and debug your app without typing the password every time you make a change to your project.
Android Studio signs your app in debug mode automatically when you run or debug your project from the IDE.
You can run and debug an app signed in debug mode on the emulator and on devices connected to your development manchine through USB, but you cannot distribute an app signed in debug mode.
By default, the debug configuration uses a debug keystore, with a known password and a default key with a known password. The debug keystore is located in $HOME/.android/debug.keystore, and is created if not present. The debug build type is set to use this debug SigningConfig automatically.
For more information about how to build and run apps in debug mode, see Building and Running.
Signing in Release Mode
In release mode, you sign your app with your own certificate:
- Create a keystore. A keystore is a binary file that contains a set of private keys. You must keep your keystore in a safe and secure place.
- Create a private key. A private key represents the entity to be identified with the app, such as a person or a company.
Add the signing configuration to the build file for the app module:
The package in app/build/apk/app-release.apk is now signed with your release key.
Note: Including the passwords for your release key and keystore inside the build file is not a good security practice. Alternatively, you can configure the build file to obtain these passwords from environment variables or have the build process prompt you for these passwords.
To obtain these passwords from environment variables:
To have the build process prompt you for these passwords if you are invoking the build from the command line:
After you complete this process, you can distribute your app and publish it on Google Play.
Warning: Keep your keystore and private key in a safe and secure place, and ensure that you have secure backups of them. If you publish an app to Google Play and then lose the key with which you signed your app, you will not be able to publish any updates to your app, since you must always sign all versions of your app with the same key.
The rest of this document provides detailed instructions about how to generate a private key and sign your apps in release mode with Android Studio.
Signing Android Wear Apps
When publishing Android Wear apps, you package the wearable app inside of a handheld app, because users cannot browse and install apps directly on the wearable. Both apps must be signed. For more information on packaging and signing Android Wear apps, see Packaging Wearable Apps.
Signing Your App in Android Studio
To sign your app in release mode in Android Studio, follow these steps:
- On the menu bar, click Build >Generate Signed APK.
On the Generate Signed APK Wizard window, click Create new to create a new keystore.
If you already have a keystore, go to step 4.
On the New Key Store window, provide the required information as shown in figure 1.
Your key should be valid for at least 25 years, so you can sign app updates with the same key through the lifespan of your app.
Figure 1. Create a new keystore in Android Studio.
On the Generate Signed APK Wizard window, select a keystore, a private key, and enter the passwords for both. Then click Next.
Figure 2. Select a private key in Android Studio.
On the next window, select a destination for the signed APK and click Finish.
Figure 3. Generate a signed APK in Android Studio.
Automatically Signing Your App
In Android Studio, you can configure your project to sign your release APK automatically during the build process:
- On the project browser, right click on your app and select Open Module Settings.
- On the Project Structure window, select your app’s module under Modules.
- Click on the Signing tab.
Select your keystore file, enter a name for this signing configuration (as you may create more than one), and enter the required information.
Figure 4. Create a signing configuration in Android Studio.
Under Signing Config, select the signing configuration you just created.
Figure 5. Select a signing configuration in Android Studio.
You can also specify your signing settings in Gradle configuration files. For more information, see Configuring Gradle Builds.
Signing Considerations
You should sign all of your apps with the same certificate throughout the expected lifespan of your applications. There are several reasons why you should do so:
- App upgrade: When the system is installing an update to an app, it compares the certificate(s) in the new version with those in the existing version. The system allows the update if the certificates match. If you sign the new version with a different certificate, you must assign a different package name to the application—in this case, the user installs the new version as a completely new application.
- App modularity: Android allows apps signed by the same certificate to run in the same process, if the applications so requests, so that the system treats them as a single application. In this way you can deploy your app in modules, and users can update each of the modules independently.
- Code/data sharing through permissions: Android provides signature-based permissions enforcement, so that an app can expose functionality to another app that is signed with a specified certificate. By signing multiple apps with the same certificate and using signature-based permissions checks, your apps can share code and data in a secure manner.
If you plan to support upgrades for an app, ensure that your key has a validity period that exceeds the expected lifespan of that app. A validity period of 25 years or more is recommended. When your key’s validity period expires, users will no longer be able to seamlessly upgrade to new versions of your application.
If you plan to publish your apps on Google Play, the key you use to sign these apps must have a validity period ending after 22 October 2033. Google Play enforces this requirement to ensure that users can seamlessly upgrade apps when new versions are available.
Securing Your Private Key
Maintaining the security of your private key is of critical importance, both to you and to the user. If you allow someone to use your key, or if you leave your keystore and passwords in an unsecured location such that a third-party could find and use them, your authoring identity and the trust of the user are compromised.
If a third party should manage to take your key without your knowledge or permission, that person could sign and distribute apps that maliciously replace your authentic apps or corrupt them. Such a person could also sign and distribute apps under your identity that attack other apps or the system itself, or corrupt or steal user data.
Your private key is required for signing all future versions of your app. If you lose or misplace your key, you will not be able to publish updates to your existing appn. You cannot regenerate a previously generated key.
Your reputation as a developer entity depends on your securing your private key properly, at all times, until the key is expired. Here are some tips for keeping your key secure:
- Select strong passwords for the keystore and key.
- Do not give or lend anyone your private key, and do not let unauthorized persons know your keystore and key passwords.
- Keep the keystore file containing your private key in a safe, secure place.
In general, if you follow common-sense precautions when generating, using, and storing your key, it will remain secure.
Expiry of the Debug Certificate
The self-signed certificate used to sign your application in debug mode has an expiration date of 365 days from its creation date. When the certificate expires, you will get a build error.
To fix this problem, simply delete the debug.keystore file. The default storage location is in
/.android/ on OS X and Linux, in C:\Documents and Settings\ \.android\ on Windows XP, and in C:\Users\ \.android\ on Windows Vista and Windows 7.
The next time you build, the build tools will regenerate a new keystore and debug key.
Note that, if your development machine is using a non-Gregorian locale, the build tools may erroneously generate an already-expired debug certificate, so that you get an error when trying to compile your application. For workaround information, see the troubleshooting topic I can’t compile my app because the build tools generated an expired debug certificate.
Signing Your App Manually
You do not need Android Studio to sign your app. You can sign your app from the command line using standard tools from the Android SDK and the JDK. To sign an app in release mode from the command line:
Generate a private key using keytool . For example:
This example prompts you for passwords for the keystore and key, and to provide the Distinguished Name fields for your key. It then generates the keystore as a file called my-release-key.keystore . The keystore contains a single key, valid for 10000 days. The alias is a name that you will use later when signing your app.
Compile your app in release mode to obtain an unsigned APK.
Sign your app with your private key using jarsigner :
This example prompts you for passwords for the keystore and key. It then modifies the APK in-place to sign it. Note that you can sign an APK multiple times with different keys.
Verify that your APK is signed. For example:
Align the final APK package using zipalign .
zipalign ensures that all uncompressed data starts with a particular byte alignment relative to the start of the file, which reduces the amount of RAM consumed by an app.
Источник
Что такое обновление OTA, способы его установки
В комментариях вы часто спрашиваете, что такое OTA-прошивка, чем она отличается от Recovery, как установить это обновление MIUI на Xiaomi. Особенно популярен вопрос почему не пришло OTA, хотя есть 100% уверенность в том, что она уже вышла.
Сегодня ответим на эти и другие вопросы касательно обновлений, прилетающих «по воздуху» на смартфоны Xiaomi.
Что такое обновление ОТА (FOTA)
OTA — это пакет обновления, который приходит на смартфон Xiaomi посредством мобильного интернета или Wi-Fi соединения. Аббревиатура ОТА произошла от английской фразы Over The Air, что в переводе означает «по воздуху».
Это то же самое, что FOTA (Firmware Over The Air), в переводе с английского звучащее как «микропрограммы по воздуху».
Для установки OTA Update не требуется наличие ПК, а при установке прошивки ваши данные не пропадают.
Любой пакет ОТА включает в себя файлы, позволяющие установить прошивку на конкретный смартфон Сяоми:
- Папка META INF содержит файлы, предназначенные для выполнения обновления.
- Каталог Patch включает доработки, выпущенные разработчиками прошивки. Благодаря этой папке исправляются системные баги.
- Папка System содержит файлы, добавляющие операционной системе новые функции, изменяющие внешний вид и влияющие на работу ОС.
- Проверочные файлы предназначены для сканирования установленной системы и определения, стоковая ли MIUI от Xiaomi установлена на телефоне.
- Файлы для проверки имеющихся обновлений предназначены для оценки степени «свежести» установленной ОС. Если нужные обновления были установлены ранее, то устанавливаться из нового пакета будет не всё.
- Набор инструкций определяет, какие файлы нужно удалить, а какие следует оставить для стабильной работы прошивки.
- Патчи (комплекты обновления драйверов) предназначены для обеспечения работы комплектующих, например, ЦП, ОЗУ, мобильного модема.
- Пакет инструкций определяет, достаточно ли у конкретного пользователя прав для установки обновления.
Это стандартный состав любой прошивки ОТА.
Не каждая версия прошивки MIUI получает ОТА. В некоторых случаях разработчики выпускают пакеты для прошивки только посредством Recovery или Fastboot.
Чтобы выбрать OTA или Recovery ROM, рассмотрим их отличия:
- Рекавери можно только скачать, эта прошивка не прилетает «по воздуху».
- Установка Recovery ROM производится через режим восстановления телефона Recovery Mode.
- Рекавери весит больше, поскольку содержит полную прошивку для смартфона. OTA содержит только часть файлов, необходимых для обновления.
- Recovery ROM можно установить на любую версию MIUI, OTA только на указанную разработчиками.
- Рекавери бывает стоковый (официальный) и кастомный (от сторонних разработчиков). OTA только официальные.
Установка ОТА: автоматически, через три точки и вручную
Перед началом стоит убедиться, что аккумулятор смартфона заряжен хотя бы на 60%. Во время установки ОТА используются все ресурсы устройства и батарея расходуется быстрее. Если в процессе смартфон отключится, то получится «кирпич», который придётся реанимировать при помощи режима Fastboot.
Существует 3 простых способа как установить прошивку OTA на телефон Xiaomi:
- Автоматический.
- Через локальное меню обновления «три точки».
- Установка вручную.
Пользовательские данные будут сохранены, но всегда есть риск их потерять из-за ошибки во время установки обновления. Сделайте резервную копию важных данных заранее.
Автоматическая установка
Для обновления используются возможности смартфона и его текущей прошивки, ПК не нужен.
Автоматическое обновление через OTA можно запустить из меню настроек телефона:
- Откройте настройки и перейдите в раздел « О телефоне ».
- Нажмите на кнопку с надписью « Версия MIUI ».
- Нажмите кнопку « Проверить обновления ».
- Если появится сообщение, что доступна новая версия, тапните по кнопке « Обновить ».
Установка OTA через «три точки»
Используется в том случае, если автоматический способ по какой-то причине не сработал. Установка OTA Update через три точки требует больше действий, но в результате телефон также получит последнюю версию MIUI.
Как установить OTA через три точки:
- Запустите настройки и перейдите в меню « О телефоне ».
- Тапните по кнопке « Версия MIUI ».
- В правом верхнем углу дисплея будет кнопка с тремя точками. Нажмите на неё.
- Выберите пункт « Скачать полную прошивку ».
Установка прошивки начнётся автоматически после скачивания. При этом смартфон будет перезапущен. Полноценно пользоваться им можно будет только после полной загрузки устройства.
Обновление ОТА устанавливается только на ту версию ОТА, для которой она выпущена. Если вы случайно пропустили одно или несколько обновлений, сначала придётся установить предыдущее и только потом перейти к установке актуальной версии. Либо ставить Recovery ROM.
Ручное обновление
Такой вариант подходит случае, если вы скачали официальное ОТА-обновление самостоятельно, поскольку вам на телефон оно всё не приходит (почему OTA не прилетает рассказано ниже).
Как установить OTA обновление вручную:
- Перенесите скачанную прошивку в память телефона.
- Откройте настройки.
- Перейдите в категорию « О телефоне ».
- Тапните по кнопке « Версия MIUI ».
- Нажмите на кнопку с тремя точками.
- В появившемся меню нажмите « Выбрать пакет обновления ».
- Выберите пакет OTA, который только что скачали и нажмите ОК .
Операционная система проверит целостности пакета и начнёт установку. Во время обновления телефон будет перезагружен. После рестарта у вас будет актуальная версия прошивки.
Альтернативные способы: Recovery и Fastboot
Применяются в случаях, если ОТА по какой-то причине не пришло или его невозможно установить. Recovery часто используют для установки «чистой» MIUI, а Fastboot помогает, если обновление прошло неудачно и телефон превратился в кирпич.
Recovery
В этом случае используются возможности стокового рекавери MIUI. Можно скачать официальную MIUI из архива и прошить вручную.
Как установить OTA через рекавери:
- Скачайте ZIP-файл с прошивкой, переименуйте его в и переместите его в update.zip и положите в корень SD-карты.
- Выключите смартфон.
- Зажмите одновременно кнопку питания и обе кнопки регулировки громкости.
- В появившемся меню выберите Install update.zip to System One .
- По завершении процесса перезагрузите устройство, выбрав Reboot to System .
Скачанная прошивка должна иметь имя update.zip. Если имя будет другое, то рекавери просто не увидит файл и прошивка новой версии будет невозможна.
Fastboot
Фастбут позволяет решить проблему неудачного обновления, когда телефон превратился в кирпич. У режима Fastboot много других возможностей, но сегодня мы остановимся только на перепрошивке Xiaomi.
Для установки OTA через Fastboot необходимо скачать программу MiFlashPro.
Процесс прошивки смартфона немного сложнее:
- Скачайте архив с прошивкой и распакуйте содержимое в любое место на ПК.
- Запустите MiFlashPro, перейдите на вкладку Mi Flash.
- При первом запуске программа предложит установить необходимые драйверы. Нажимаем кнопку Install .
- После установки драйверов нажмите на кнопку Select и в окне проводника выберите папку с распакованной прошивкой.
- Выключите смартфон и затем зажмите одновременно кнопку питания и уменьшения громкости для входа в режим Fastboot.
- Подключите смартфон к компьютеру при помощи USB-кабеля.
- В окне программы нажмите Refresh .
- После того как программа определит телефон, внизу окна выберите save user data (сохранить данные пользователя) или clean all and lock (удалить всё и заблокировать загрузчик).
- Кликните по кнопке Flash .
Процесс установки занимает от 5 до 10 минут. По завершении процедуры телефон самостоятельно перезагрузится.
Учтите, что при таком сценарии обновления прошивки можно лишиться всех своих данных. Поэтому лучше создать резервную копию.
Есть ещё набор утилит Xiaomi ADB/Fastboot Tools, которые помогаю прошивать смартфоны Сяоми нажатием пары кнопок. По сути, это командная строка ADB с графический интерфейсом.
Обновление Android на Xiaomi A-серии
Смартфоны серии А от компании Xiaomi отличаются от других продуктов китайского техногиганта тем, что в них установлен «чистый» Андроид без фирменной оболочки MIUI. Хотя на тот же Mi A2 позже выпустили MIUI 11.
Проблемы при установке ОТА на эти телефоны уже стали своеобразной традицией. Например, для Xiaomi Mi А3 в декабре 2020 года вышла Android 11, но вскоре оказалось, что после установки прошивки телефон превращается в кирпич, который нужно нести в ремонт.
Разработчики почти сразу отозвали обновление, но владельцы смартфонов Xiaomi A3 получили проблему на ровном месте.
Xiaomi A3 работает на Android One, как и предыдущие смартфоны А-серии.
Если хочется во что бы то ни стало обновить смартфон Xiaomi A-серии, для которого нет MIUI, то можно рассмотреть установку кастомной прошивки от сторонних разработчиков. Для этого потребуется разблокировать загрузчик и установить кастомное рекавери (в большинстве случаев – TWRP).
После установки кастомной прошивки, можно дождаться выхода стабильной версии ОТА от официального производителя и установить её при помощи режима фастбут и программы MiFlashPro. Никакой другой вариант не подойдёт, поскольку после установки оригинальной ОТА на кастомную прошивку любыми другими способами пользователь получает «кирпич».
Почему не приходит OTA на телефон: 10 причин
Десятки комментариев под нашими трекерами (рекомендуем MIUI 12, MIUI 12.5, Android 11) посвящены этой проблеме.
Есть несколько причин из-за которых обновление может не прийти для конкретного телефона. Например, всем вокруг на тот же Redmi Note 9 Global обновление пришло, а на ваш телефон нет. В большинстве случаев практически все проблемы решаемы.
Ниже приведены 10 причин, почему не приходит обновление OTA на Xiaomi и их решение.
1. Ошибка или сбой MIUI
Если произошёл сбой при установке OTA, то все попытки установить обновление классическим способом завершаются разнообразными ошибками MIUI. В некоторых случаях смартфон вовсе не может соединиться с сервером для поиска новой версии.
Если наблюдаются такие проблемы, можно решить их при помощи советов из статьи про ошибки MIUI по ссылке выше, либо скачать официальный файл прошивки и установить его при помощи Recovery или Fastboot способами, описанными в середине этой статьи.
2. Разблокированный загрузчик
На смартфонах Xiaomi загрузчик заблокирован для обеспечения безопасности. Энтузиасты разблокируют его для кастомной прошивки или установки альтернативного рекавери.
На смартфоны с разблокированным загрузчиком ОТА прошивка не приходит.
3. Кастомная прошивка
Обновления получают только телефоны, использующие официальную (стоковую) прошивку от Xiaomi. Те пользователи, которые установили кастомную прошивку (ту же самопальную «вьетнамку»), автоматически лишаются поддержки разработчиков и не получают ОТА.
Придётся сначала установить официальную версию, обычно ставят глобальную MI. Скачать стоковую версию можно из архива прошивок MIUI.
4. Не та прошивка
Сама частая проблема заключается в том, что люди просто путают прошивки и думают, что для их телефона вышло обновление, хотя его нет.
Чтобы узнать какая версия MIUI установлена, не нужно смотреть на коробку от устройства. Нужно посмотреть буквенный код MIUI в настройках, а затем изучить аналогичный код прошивки, которую вы хотите поставить.
Найти буквенный код можно открыв предложение « Настройки » → « О телефоне » → « Версия MIUI ».
Как расшифровать код мы описали в статье «Частые вопросы про MIUI».
5. Кастомное рекавери
Те пользователи, которые установили TWRP или другое альтернативное рекавери автоматически лишаются ОТА.
Для решения проблемы достаточно вернуть на место стоковое рекавери.
6. Нет новой версии OTA
Проблема часто встречается на старых телефонах, когда прошивка не обновляется по причине отсутствия новой версии OTA Update для устройства.
Здесь ничего сделать нельзя.
Следить за выходом новых версий прошивок можно в нашем канале Телеграм или на странице устройства в каталоге обновлений Сяоми. Ссылки на загрузку ведут на официальный сайт Xiaomi Bigota MIUI.
7. Активен Root
Права суперпользователя позволяют редактировать и изменять системные файлы.
Рут устанавливается вручную. И если он включён, то обновления «по воздуху» не приходят.
8. Модифицированы системные файлы
Если файлы ОС были модифицированы, смартфон не получит обновлений OTA. Установленный Android должен быть оригинальным, без малейшего намёка на модификацию.
Для решения проблемы верните изменённые файлы к оригинальному состоянию. Если это невозможно – прошейте оригинальную сборку с использованием Fastboot.
9. Прошивка вышла для определённого региона
Вероятно, ОТА вышла только для конкретного региона (например, Китай или Индия). В этом случае нужно подождать официального релиза для вашего региона.
Если ждать не хочется, можно сменить регион в настройках и получить долгожданное обновление.
Как сменить регион MIUI на Xiaomi:
- Откройте настройки и перейти в раздел «Расширенные настройки».
- Тапните по пункту Регион .
- Выберите Китай, Индию или любой другой нужный регион.
- Подтвердите действие кнопкой ОК .
- Возможно, после этого придётся отредактировать время на телефоне.
Рекомендуем прочитать чем отличаются регионы и на что влияет их выбор.
10. Ваша очередь ещё не подошла
Компания Xiaomi обновляет свои устройства волнами, а не выкатывает прошивки разом на все телефоны. Если на ваш телефон ОТА не пришло, значит, смартфон получит прошивку на следующем этапе.
Выход OTA для MIUI осуществляется поэтапно:
- После релиза стабильной версии, она раздаётся «по воздуху» для 30% случайных пользователей.
- Если всё хорошо и багов не выявлено, через 2–4 недели OTA выкатывается для всех смартфонов Xiaomi.
Поэтому если вам не пришло, а всем пришло, то придётся подождать до месяца. На 1 этапе скачать прошивку MIUI с официального сайта не получится, поскольку она появляется там на 2 этапе развёртывания.
Такая стратегия позволяет производителю устранять недоработки и баги, возникающие при обновлении. Если в первой волне нет проблем с прошивкой, то она разворачивается дальше. Если есть, то её отзывают и начинают дорабатывать. В этом случае нужно ждать, пока исправят баги.
В большинстве случаев в прошивках MIUI разработчики добавляют новые возможности (посмотрите обзор MIUI 12.5), исправляют баги, устраняют проблемы совместимости, улучшают работу и энергоэффективность, проводят оптимизацию.
На этом всё. Если хотите что-то добавить, добро пожаловать в комментарии.
Источник