Как удалить подпись приложения
Исторически сложилось так, что разработчики отвечали за создание своих собственных закрытых ключей и сохраняли их в безопасности на протяжении всего срока службы приложения. И хотя такой подход предлагал большую гибкость, он также приводил к ошибкам: генерация слабых ключей, случайная проверка вашего закрытого ключа в публичном репозитории или даже полная его потеря — это всего лишь несколько распространенных ошибок, которые регулярно происходят даже с опытными разработчиками.
В настоящее время у разработчиков есть привлекательная альтернатива для управления ключами самостоятельно: подписание приложения на Google Play, где ключ загрузки (тот, который вы используете, чтобы загрузить свои артефакты в Google Play) и ключ для подписи приложения (который используется для подписи APK-файлов, распространяющихся на устройства) могут быть разными, и второй ключ хранится на Google инфраструктуре.
Несмотря на то, что многие другие популярные платформы используют такой способ распределения ключей, для многих разработчиков это отход от предыдущей модели подписи Android, и некоторые из них могут подумать, что они теряют контроль над своими приложениями.
Вот почему я хочу развеять некоторые распространенные заблуждения относительно подписи приложений в Google Play, а также дать рекомендации по конкретным сценариям, с которыми вы можете столкнуться.
Этот совет основан на вопросах, которые наша команда по связям с разработчиками слышала на конференциях, в онлайн-форумах и наших чатах 1:1.
Давайте начнем с самой убедительной причины для перехода на подписание приложений с помощью Google Play:
1. Я потерял ключ, используемый для подписи артефактов релиза, которые я загружаю в Google Play. Какие у меня есть варианты?Без подписи приложения в Google Play: благодаря защите безопасности, встроенной в Android, без ключа вы или Google ничего не можете сделать для продолжения обновления вашего приложения. Ваш единственный вариант — это создать новый список с новым именем пакета и начать с нуля.
С подписью приложения в Google Play: вы можете запросить новый ключ загрузки. Play сможет продолжать подписывать обновления вашего приложения с помощью ключа подписи приложения, который надежно хранится в Google.
2. Почему Google хочет, чтобы разработчики переключились на подписание приложений с помощью Google Play?Первым приоритетом Google Play является создание безопасной и надежной платформы для миллиардов пользователей и миллионов разработчиков.
От этого зависит устойчивость и успех экосистемы. Большинство разработчиков не могут обеспечить тот уровень безопасности, который может предложить Google.
Новая модель приложения, где Play поглощает артефакты публикации и генерирует подписанные, предназначена для минимизации шанса того, что ключи подписи будут раскрыты. Она не только безопасна, но и более эффективна, а также ориентирована на будущее с выгодой как для конечных пользователей, так и для разработчиков.
Например, ряд приложений, находящихся в настоящее время в Play Store, до сих пор не приняли более безопасную схему подписи v2. После регистрации в приложении подписи от Google Play приложения автоматически получают преимущества новых механизмов защиты и будущих улучшений, без необходимости работы разработчика.
И наконец, разделение формата публикации (с использованием пакетов приложений для Android) и формата обслуживания (разделенные APK) открывает преимущества как для разработчиков, так и для пользователей: от повышения безопасности до оптимизации, снижения сложности и фрагментации. Однако для этого Play должен иметь возможность подписывать обслуживающие артефакты.
Некоторые примеры функций, доступных прямо сейчас, — это автоматическая оптимизация размера для доставки приложений, а также новые настраиваемые параметры доставки модулей в вашем приложении.
Что еще более важно, такой подход дает нам возможность развивать и совершенствовать механизмы доставки в будущем, обеспечивая при этом доверие и безопасность распределяемых артефактов.
Несмотря на то, что мы продолжаем совершенствовать наш стек обслуживания, мы не изменяем и не распространяем код вашего приложения без вашего ведома и одобрения, и новые оптимизации, которые выполняет Play, доступны для вашего контроля в bundletool с открытым исходным кодом. Далее в этом часто FAQ мы обсудим некоторые метаданные (те, которые не влияют на работу вашего приложения), которые вы можете увидеть между артефактами, загруженными из Play и созданными локально.
3. Мой ключ подписи приложения был сгенерирован много лет назад, и я боюсь, что его криптографическая сила больше не соответствует сегодняшним стандартам, или мне кажется, что произошла утечка моего ключа подписи приложения. Что я могу сделать для обновления?Без подписи приложения в Google Play: как уже упоминалось ранее, вы не можете просто переключиться на новый ключ, так как это будет означать, что ваши существующие пользователи не смогут получать обновления приложений. Вы должны либо продолжать использовать существующий ключ и рисковать безопасностью данных ваших пользователей, либо начать новую запись приложения с нуля.
С подписью приложения в Google Play: если вы используете слабый ключ или ваш ключ был скомпрометирован, вы можете обновить его для новых установок.
Это осуществляется путем доставки APK, подписанных вашим устаревшим ключом, существующим пользователям, когда они обновляют приложение, в то время как новые установки приложений получают APK, подписанные обновленным безопасным ключом.
Рассмотрите включение подписи приложения сейчас и как можно скорее переключитесь на использование отдельного ключа загрузки, что снизит вероятность компрометирования ключа подписи приложения.
Текущий процесс обновления до нового ключа не является мгновенным, и если ключ подписи приложения утечет, ваши существующие пользователи будут подвергаться риску до тех пор, пока они не переустановят приложение или не перейдут на новое устройство.
Обратите внимание, что текущий процесс обновления ключа не использует преимущества функции ротации ключа, введенной в Android 9 (Pie) и выше. В настоящее время мы изучаем поддержку ротации ключей с помощью подписи приложения версии 3 для устройств на этих версиях ОС и сообщим об этом сообществу разработчиков, как только оно будет готово, в отдельном объявлении.
4. Ключ загрузки, который я использовал для подписи своих артефактов, был украден. Какие у меня есть варианты?Без подписи приложения в Google Play: нет никакой концепции отдельного “ключа загрузки”, поэтому, если ваш ключ подписи выпуска утечет, вы можете оказаться в большой беде: кто-то может создать вредоносные или несанкционированные версии вашего приложения, которые будут неразличимы (и обновляемы!) от вашего оригинального APK.
Конечно, защита учетной записи Google применяется к доступу к консоли Google Play (и мы рекомендуем разработчикам включить 2-ступенчатую проверку), поэтому злоумышленнику все равно придется найти способ обмануть пользователя, чтобы он загрузил такой измененный APK. Тем не менее безопасность вашего приложения ослаблена.
Обратитесь к вопросу 3 о скомпрометированном ключе подписи приложения, чтобы узнать, какие исправления доступны, а также как обновить ключ для новых установок.
С подписью приложения в Google Play: если ваш ключ загрузки отделен от ключа подписи приложения (рекомендованный вариант), и просочился только первый, то данные ваших пользователей будут в безопасности — одного ключа загрузки недостаточно, чтобы подменить APK, подписанные ключом подписи приложения. Просто запросите новый ключ загрузки.
5. Я включил функцию подписи приложений в Google Play для своего приложения, но передумал и хотел бы загрузить ключ подписи приложений, хранящийся в инфраструктуре Google.Вы или кто-либо другой в вашей учетной записи разработчика не может загрузить и сохранить закрытый ключ для вашего приложения, хранящегося в защищенной инфраструктуре Google. Это делается для обеспечения защиты ключа подписи вашего приложения.
Если вы предвидите ситуацию, в которой вам потребуется постоянный доступ к ключу подписи вашего приложения, вам следует сделать следующее при включении подписи приложения:
· Не выбирайте опцию, в которой Google Play создает ключ подписи приложения за вас. Вместо этого создайте свой ключ подписи локально на вашем компьютере.
· Надежно перенесите свой ключ в Google Play и не удаляйте его с вашего компьютера.
· Храните ключ в надежном месте, чтобы он не просочился к третьим лицам.
· Убедитесь, что вы регулярно создаете и тестируете резервные копии своего ключа, так как в случае его потери вы не сможете загрузить его из Google.
Эти шаги описаны в документации. В инструкции о том, как ”выбрать существующее приложение”, показано, как зашифровать свой ключ подписи, чтобы загрузить его на консоль Google Play из Android Studio или командной строки.
Если вы абсолютно уверены, что вам не понадобится постоянный доступ к ключу подписи вашего личного приложения, мы рекомендуем вам либо разрешить Play генерировать ваш ключ (для новых приложений), либо удалить свою копию после передачи ее в Play и переключиться на использование ключа загрузки.
Ключ загрузки может быть сброшен, и это не ставит под угрозу безопасность ваших пользователей в случае утечки информации.
6. Как я могу быть уверен, что мой закрытый ключ не будет перехвачен при передаче его в Google Play?Если вы включаете подпись приложения для нового приложения и выбираете опцию создания нового ключа в консоли Google Play, ключ никогда не передается и генерируется непосредственно на защищенном сервере Google.
Если вам нужно передать существующий ключ подписи (необязательно для новых приложений и обязательно для существующих приложений), вы всегда делаете это в зашифрованном виде. Независимо от того, экспортируете ли вы ключ из Android Studio или из командной строки, вы будете использовать инструмент шифрования закрытого ключа Play (PEPK) локально на вашем компьютере перед передачей ключа.
В случае, если вам нужно знать детали используемого шифрования, PEPK использует асимметричное шифрование эллиптической кривой P256 с симметричным шифрованием AES. Если вам нужно получить более подробную информацию, вы можете загрузить инструмент PEPK и его исходный код во время процесса регистрации подписи приложения.
Не стесняйтесь просматривать или компилировать его самостоятельно, чтобы он мог быть запущен в вашей собственной безопасной среде, гарантируя, что незашифрованный ключ никогда не будет раскрыт.
Используйте только версии PEPK, загруженные с консоли Google Play, никогда не загружайте его или его источник с непроверенных сторонних веб-сайтов.
7. Как ключ защищен на остальной инфраструктуре Google? Как я могу быть уверен, что никто не имеет к нему доступа?Когда вы используете подпись приложения в Google Play, ваши ключи хранятся в той же инфраструктуре, где и Google хранит свои собственные.
Доступ к ключам регулируется строгими ACL и аудиторскими следами с защитой от несанкционированного доступа для всех операций.
Все артефакты, созданные и подписанные ключом разработчика, становятся доступными в консоли Google Play для проверки/аттестации.
Кроме того, чтобы предотвратить потерю ключей, мы очень часто делаем резервные копии нашего основного хранилища. Эти резервные копии строго зашифрованы, и мы регулярно тестируем восстановление из этих резервных копий.
Если вы хотите узнать о технической инфраструктуре Google, ознакомьтесь с информационными документами Google Cloud Security.
8. Мне нужен публичный сертификат для регистрации внешних сервисов, но у меня нет доступа к своему ключу. Что я могу сделать?Если вы хотите использовать сервисы или API, которые требуют регистрации с хэшем публичного сертификата вашего приложения, вы можете просмотреть или загрузить “отпечатки пальцев” публичного сертификата из раздела “App signing“ консоли Google Play:
Не забывайте всегда использовать эти отпечатки пальцев при включении сервисов для выпускных версий вашего приложения, а не для тех, которые получены из вашего ключа загрузки.
Большинство сервисов позволяют включить несколько сертификатов для приложения, поэтому вы можете продолжить тестирование с локально построенными APK, а также APK, генерируемыми Google Play.
9. Отличаются ли артефакты, которые Google Play распространяет среди пользователей моего приложения, от тех, которые я создаю локально, кроме ключа, используемого для их подписи?Как уже говорилось ранее, Play не будет изменять функциональность вашего приложения без вашего ведома и одобрения. Однако он вставляет небольшое количество метаданных, которые помогают проверить источник и целостность распространения. Эти метаданные бывают двух видов:
• Для всех приложений, загруженных в Google Play, Play добавлял метаданные безопасности после блока подписи, чтобы включить такие функции, как авторизованный обмен приложениями P2P. Мы объявили об этом первоначально в своем блоге в 2017 году.
• Для приложений, загруженных в виде пакетов приложений, мы улучшим безопасность, введя так называемый штамп источника. Эти исходные метаданные вставляются в манифест приложения с помощью bundletool. Когда APK генерируется на сервере Play, он также подписывается с помощью ключа Google в дополнение к вашему ключу подписи приложения.
Это означает, что метаданные безопасности не могут быть удалены или изменены без аннулирования подписи Google. Такой подход дает сигнал высокой уверенности в том, что немодифицированные АПК, содержащие исходный штамп, пришли из Google Play.
Вы можете локально использовать bundletool с открытым исходным кодом для генерации APK из пакетов точно так же, как это делает Play на сервере. Метаданные исходного штампа, добавленные bundletool, не будут подписаны ключом Google. Другие исходные подписи будут возможны, когда ApkSigner будет обновлен со следующим выпуском Android.
10. Как я могу получить доступ к последним артефактам, которые Google Play распространяет среди пользователей моего приложения?Есть несколько вариантов, доступных для вас:
• В целях тестирования вы можете использовать внутреннюю ссылку на общий доступ к приложению для любой исторической версии вашего приложения из проводника пакетов приложений консоли Google Play. Нажатие на ссылку на устройстве приведет к установке APK, которые Play Store установит в prod для этого устройства.
• Вы также можете загрузить подписанные APK-файлы для конкретных устройств из проводника пакетов приложений консоли Google Play.
11. Как я могу продолжать распространять свое приложение в других магазинах, если я хочу использовать подпись приложения в Google Play?Приложения можно распространять несколькими способами и по разным каналам. Есть несколько соображений, которые вы должны иметь в виду, в зависимости от того, является ли это приложение новым или существующим.
Для новых приложений вы можете использовать отдельные ключи подписи для каждого канала распространения, а Google будет генерировать ключ, используемый Google Play для вас. Это самый безопасный способ для приложений, распространяемых в Play, так как ключ никогда не покидает серверы Google, что сводит вероятность того, что кто-то перехватит ключ, почти к нулю.
Кроме того, для тех, кто не хочет управлять несколькими ключами, но все еще использует преимущества безопасности подписи приложений в Google Play, мы скоро предоставим возможность загружать подписанные универсальные APK из проводника пакетов приложений и распространять их в других магазинах.
Для существующих приложений: если вы уже используете один ключ для разных магазинов, при желании вы можете продолжать это делать. При включении входа в приложение в Google Play вам будет предложено загрузить существующий ключ.
При необходимости вы можете рассмотреть функцию обновления ключа, упомянутую ранее, чтобы со временем отказаться от совместного использования ключа, используемого Google Play, с другими каналами распространения.
Есть одно предостережение, которое приходит вместе с вышеприведенным советом: пожалуйста, обратите внимание, что если вы решите использовать отдельные ключи подписи для разных магазинов, ваши пользователи не смогут перекрестно обновлять приложение между различными каналами распространения. Например, когда кто-то изначально установил приложение через другой магазин, а затем пытается обновить его через Play. Они должны будут удалить и установить приложение снова.
12. Я занят работой над функционалом, и все это звучит сложно. Нужно ли мне переключаться на пакеты приложений для Android или использовать расширенные функции, такие как динамическая доставка?Нет, вы не должны делать все сразу.
Вы можете выбрать подписание приложений от Google Play и продолжить публикацию APK. Когда вы будете готовы, вы можете начать публиковать пакеты приложений для Android.
Публикация с помощью пакета приложений проста для систем сборки, которые поддерживают его, и автоматически предоставляет такие преимущества, как уменьшение размера, для большинства приложений.
Со временем вы можете воспользоваться преимуществами расширенных функций, таких как динамическая доставка. Вы также можете модулировать свое приложение с помощью динамических функциональных модулей, чтобы улучшить время сборки и воспользоваться преимуществами настраиваемой доставки. Play может использовать динамическую доставку для предоставления высококачественных активов во время или после установки с настраиваемыми режимами и интеллектуальными опциями таргетинга.
Если вы хотите начать использовать подпись приложений, но ваши менеджеры или команды по безопасности нуждаются в объяснении преимуществ и предостережений касательно подписи приложений, то покажите им эту статью.
Перевод: Лебедев Даниил.
Еще больше полезной и нужной информации вы найдете в нашем Телеграм-канале по ссылке:
Очень важной частью разработки Android является подписание файлов Apk своим собственным ключом. Файлы Apk, которые не подписаны, обычно не устанавливаются, даже если они установлены, в конце они не будут работать.
Распространяющаяся в Интернете «проверка на разрешение установки приложений из неизвестных источников» не имеет ничего общего с подписью или нет. Грубо говоря, она разрешает только установку приложений, которые не скачиваются с электронного рынка.
В последние дни мне нужно изменить файл .so, вызываемый JNI в Apk. У меня нет исходного кода apk, поэтому мне нужно изучить проблемы, связанные с подписями. Конечно, есть много сторонних инструментов, которые могут это сделать, но на самом деле мощный инструмент подписи jarsigner уже предоставлен в JDK.
1. Удалить подпись
на самом деле очень прост. Откройте apk с помощью WinRAR, найдите папку META-INF и удалите все остальные файлы, кроме MANIFEST.MF.
2. Подпись
Запустить jarsigner. Если переменная среды PATH не задана, ее можно найти в каталоге bin по пути установки JDK. Например, мой локальный компьютер - C: \ Program Files \ Java. \ jdk1.8.0 _31 \ bin \ jarsigner.exe
Использование jarsigner выглядит следующим образом:
Чаще всего используются параметры, позволяющие указать расположение хранилища ключей и подписанного файла. Примеры:
Подписываемый файл - apk-unsigned.apk, а подписанный apk - apk-signed.apk. Мы также можем не указывать параметр -signedjar и подписывать прямо в apk, который нужно подписать. Последний myKey - это псевдоним моего хранилища ключей.
После того, как подпись будет завершена, откройте ее с помощью WinRAR, и вы обнаружите, что в каталоге META-INF есть еще два файла, MYKEY.RSA и MYKEY.SF. Это:
MANIFEST.MF сохраняет значения в кодировке SHA-1 и base64 всех остальных файлов.
MYKEY.SF также имеет значения в кодировке SHA-1 и base64 других файлов, а также имеется значение в кодировке SHA-1 и base64 файла MANIFEST.MF.
MYKEY.RSA содержит информацию об открытом ключе и информацию об организации-эмитенте.
Имена двух последних файлов и мой ключевой псевдоним совпадают после преобразования в верхний регистр.
Я не буду вдаваться в подробности о том, как сгенерировать хранилище ключей на этой машине. В AndroidStudio и Eclipse есть соответствующие инструменты, графические интерфейсы и все просто.
Batch ApkTool
версия: 3.7.5
Последнее обновление программы в шапке: 23.12.2020
Краткое описание:
Утилита для правильной перекомпиляции APK-файлов.
Описание:
Представляю вниманию коллег свою утилиту для работы с файлами APK. Несмотря на свой скромный интерфейс, утилита превосходит большинство аналогичных приложений по качеству работы и удобству использования, поскольку она разрабатывается в тесном сотрудничестве с профессионалами по модификации Android-приложений, а также с головой и руками.
РЕКОМЕНДАЦИИ:
Перед использованием ВНИМАТЕЛЬНО прочитайте readme.txt в архиве с утилитой.
ВСЕГДА используйте последнюю версию утилиты.
Если файл не разбирается\не собирается, попробуете выбрать более старую, или наоборот, более новую версию apktool. Помните, что собирать нужно той же версией apktool, которой разбирали. Также убедитесь, что это не ваш случай.
ВСЕГДА прикладывайте лог (полностью весь, а не только кусочек с ошибкой) и сам файл (с фреймами) - тогда вам ответят быстрее и точнее.
Также вполне вероятно, что решение вашей ошибки уже найдено и описано в посте Решение ошибок из лога BatchApkTool (apktool) .
Прогресс разработки apktool можно отслеживать здесь
Предыдущие версии apktool находятся здесь
от Mr Ikso
от edit_check
от Mr Ikso
от tilks
от tilks
от Sankakotik228
от tilks
от tilks
от tilks
от Mr Ikso
от tilks
от tilks
от tilks
от tilks
от tilks
от unix3d
от Mr Ikso (предыдущие версии v1-v6c от Anteiku)
от Andycar
от Andycar
от Alex.Strannik
от nopbreak
от nopbreak
от Alex.Strannik
от Alex.Strannik
от Alex.Strannik
от GodKiller_222
от GodKiller_222
от LEXA0857
от 799
от Lordhmen
от 799
от 799
от nopbreak
от 799
v3.7.9 DONATE
- Обновлен apktool (2.5.1_20201211), smali (2.4.0_20200330), jadx (1.2.0-b1456), Python (3.7.9), Java (11.0.9).
- Добавлена деодексация Android 10.
- Обновлен плагин BuildApkTool 1.1: добавлена компиляция smali и baksmali.
- Обновлен плагин UnpackerFirmware 1.7.0 RC: добавлена поддержка "Super partitions image".
- Обновлен плагин UnicodeEscape2UTF8 v1.0.4.
- В настройки добавлена опция выбора версии AAPT (AAPT1, AAPT2 или AUTO).
- В расширенные настройки добавлена опция "Добавлять порядковый номер к имени выходного файла, вместо перезаписи"
- Удалён декомпилятор luyten, для просмотра java-кода рекомендую плагин BytecodeViewer.
- Различные исправления и доработки.
v3.7.8 DONATE
- Обновлен apktool (2.4.1), smali (2.3.4), jadx (1.0.0-b1166), luyten 0.5.4 (procyon 0.5.36), dex2jar (2.1_20190905), Java (11.0.5), Python (3.7.5).
- Добавлен плагин BuildApkTool 1.0: скачивание и компиляция последних версий ApkTool из исходников.
- Обновлен плагин remove_classes_dex 1.5.1: добавлено логирование выполняемых операций.
- Во всех операциях с JAR-файлами теперь применяется выравнивание. Может помочь, если после деодексации или редактирования JAR-файлов прошивка не стартует.
- При использовании проектов не работает деодексация Android 9. Исправлено!
- Добавлен венгерский язык от gidano. Спасибо!
v3.7.7 DONATE
- Обновлен apktool (2.4.1_0303), smali (2.2.6), jadx (0.9.0-b656), vdexExtractor (0.5.3_1108), luyten 0.5.4 (procyon 0.5.33), Python (3.7.2), Java (8u201).
- Обновлен плагин ColorPicker 1.1: добавлена регулировка прозрачности интерфейса.
- Исправлены некоторые ошибки.
v3.7.6 DONATE
- Добавлена возможность быстрого выбора подпунктов меню, т.е. вместо 7 -> 1 можно набрать 71.
- В расширенные настройки добавлена опция выбора схемы подписи APK (v1 или auto).
- Обновлен smali (2.2.5_1008), zipalign.
- Исправлена деодексация Android 9.0 на компьютерах со старыми процессорами, в которых отсутствуют инструкции SSE4.2.
- Исправлены некоторые ошибки.
v3.7.5
- Обновлен apktool (2.5.1_20201211), smali (2.4.0_20200330), jadx (1.2.0-b1456), Python (3.7.9), Java (11.0.9).
- Добавлена деодексация Android 9.0 - 10.0
- Обновлен плагин UnpackerFirmware 1.7.0 RC: добавлена поддержка "Super partitions image".
- Обновлен плагин remove_classes_dex 1.5.1, UnicodeEscape2UTF8 v1.0.4.
- Для подписи теперь используется apksigner.jar: добавлена поддержка APK Signature Scheme v2-v3.
- В настройки добавлена опция выбора версии AAPT (AAPT1, AAPT2 или AUTO).
- В расширенные настройки добавлена опция "Добавлять порядковый номер к имени выходного файла, вместо перезаписи"
- Удалён декомпилятор luyten, для просмотра java-кода рекомендую плагин BytecodeViewer.
- Различные исправления и доработки.
v3.7.4
- Обновлен apktool (2.4.1), smali (2.3.4), jadx (1.0.0-b1166), luyten 0.5.4 (procyon 0.5.36), dex2jar (2.1_20190905), Java (11.0.5), Python (3.7.5).
- Во всех операциях с JAR-файлами теперь применяется выравнивание. Может помочь, если после деодексации или редактирования JAR-файлов прошивка не стартует.
- Транслятор байт-кода Dalvik в байт-код JVM enjarify заменен на dex2jar.
- Исправлены некоторые ошибки.
v3.7.1
- Обновлен apktool (2.3.4_0503), oat2dex (0.90_0420), jadx (0.7.2 build 429), UnpackerFirmware 1.4.4, Java (8u171).
- Ускорено отображение и сохранение логов Logcat (примерно в 3 раза).
- Добавлено сохранение лога от предыдущей перезагрузки (last).
- В расширенные настройки снова добавлена опция деодексации Android 6 и выше через oat2dex (быстрее, чем через baksmali, но возможны ошибки).
- Опция в расширенных настройках "Сохранять оригинальный AndroidManifest.xml" по умолчанию теперь имеет значение НЕТ.
- Исправлены некоторые ошибки.
v3.7.0
- Batch ApkTool теперь 64-х битный! Для 32-х битных Windows (и Windows XP) будет выкладываться отдельная версия.
- Обновлен apktool (2.3.3_0413), jadx (0.7.2 build 427), oat2dex (0.90), python (3.6.5), adb, zipalign.
- Добавлена деодексация Android 8.1 (при помощи утилиты vdexExtractor).
- Добавлен плагин UnpackerFirmware от unix3d для распаковки образов прошивок (взамен устаревшего SDATunpacker).
- Все пункты "ОТМЕНА" в меню Batch ApkTool теперь выбираются цифрой 0.
v3.6.9
- Обновлен apktool (2.3.2), smali (2.2.3), enjarify (0329), jadx (0.7.2 build 413), Java (8u161).
- В расширенные настройки добавлена опция включения экспериментальной поддержки aapt2 (только для apktool 2.3.2 и выше).
- Исправлены некоторые ошибки.
v3.6.8
- Обновлен apktool (2.3.1), smali (2.2.2), Java (8u151).
- Добавлено отображение времени, затраченного на декомпиляцию / рекомпиляцию.
- Исправлено определение версии Java 9.
- Из дистрибутива удалён apktool 1.5.2.
v3.6.6
- Обновлен apktool (2.2.3), smali (2.2.1), luyten 0.5.3, sdat2img (2017-01-04), Java (8u131).
- Добавлена деодексация Android O.
- Удалена возможность деодексации Android 6 и выше через oat2dex.
v3.6.4
- Обновлен apktool (2.2.2), smali (2.2_0108), enjarify (0122), luyten 0.5.0 (procyon 0.5.32), sdat2img (2016-11-23), Java (8u121).
- В дистрибутив добавлен плагин FindFramework.
- Исправлено извлечение из архивов sqsh файлов с одинаковыми именами, но в разном регистре, во время деодексации.
v3.6.3
- Обновлен apktool (2.2.2_1023), smali (2.2_1024).
- Добавлена поддержка API Level 25 (Android 7.1 Nougat Preview).
- Исправлена подпись некоторых APK-файлов.
v3.6.1
- Обновлен apktool (2.2.1_0819), enjarify (0831), luyten 0.4.9 (procyon 0.5.32), плагин SDATunpacker (1.0.1).
- Оптимизирован алгоритм деодексации API level >= 23 через baksmali.
- Добавлена поддержка деодексации файлов odex*.sqsh.
- Существенно ускорен и улучшен алгоритм поиска симлинков (поддерживаются симлинки после распаковки образов программой Rom Helper).
- Добавлена опция включения/выключения удаления симлинков после деодексации (в расширенных настройках).
v3.6.0
- Обновлен apktool (2.2.0), luyten 0.4.8 (procyon 0.5.32), Java (8u101).
- Добавлена папка _system для деодексации прошивок.
- Добавлено автоматическое определение API Level, если в папке _system есть файл build.prop.
- Лог деодексации вынесен в отдельный файл log_deodex.txt
- Файлы симлинков теперь удаляются после деодексации (код симлинков для updater-script сохраняется в конце лога деодексации).
- Ускорена рекомпиляция в экспертном режиме при большом количестве изменений в декомпелированном файле.
- В дистрибутив добавлен плагин SDATunpacker.
- Удалены старые версии oat2dex.
- Различные улучшения и исправления.
v3.4.5
- Обновлен apktool (2.1.1), smali (2.1.2_0424), oat2dex (0.87_0426), luyten 0.4.7 (procyon 0.5.32), Java (8u91).
- Изменен метод деодексации Android 6.0.
- В дистрибутив добавлен плагин CopyBack.
v3.4.4
- Обновлен apktool (2.1.0), oat2dex (0.86_0316), Java (8u77).
- Добавлена деодексация Android N.
- Ошибка деодексации boot.oat теперь не прерывает процесс деодексации.
v3.4.3
- Обновлен apktool (2.1.0_0229), oat2dex (0.86_0226), smali (2.1.2_0228), Java (8u73).
- Добавлено копирование папок /system/app, /system/priv-app, /system/framework из устройства в папки утилиты (п. 13 -> 4).
- Исправлена обработка некоторых файлов с нестандартными zip-заголовками (при деодексации и сборке в экспертном режиме).
- Обновлены бинарники adb, zipalign.
v3.4.2
- Обновлен apktool (2.1.0_0106), oat2dex (0.86_0107), smali (2.1.1), luyten 0.4.6 (procyon 0.5.32).
- Ускорена деодексация файлов Android 6.0.
- Исправлена деодексация файлов с несколькими classes.dex (Android 6.0).
- Добавлено копирование файлов из _OUT_APK в /system/framework.
- Добавлен украинский язык (спасибо Volodiimr).
v3.4.1
- Обновлен apktool (2.0.3_1024), smali (2.1.0_1018), oat2dex (0.85_1013), jadx (0.6.1 build 221), Java (8u65).
v3.4.0
- Добавлена деодексация Android 6.0
- Обновлен apktool (2.0.2_0930_), smali (2.1.0_1002), oat2dex (0.83_0930), jadx (0.6.1 build 220).
v3.3.4
- Обновлен apktool (2.0.2_0912_fix), jadx (0.6.1 build 218).
v3.3.3
- Обновлен apktool (2.0.2_0821), smali (2.0.7_0906), oat2dex (0.83_0909), luyten 0.4.4 (procyon 0.5.30), jadx (0.6.1 build 215), Java (8u60).
- Обновлены бинарники adb.
- Исправлено чтение скрытых символьных ссылок.
v3.3.2
- Добавлена деодексация .odex.gz-файлов.
- Исправлена подпись zip-файлов для рекавери.
- Мелкие исправления.
- Обновлен apktool (2.0.2_0811), jadx (0.6.1 build 210), oat2dex (0.83_0806).
v3.3.1
- Добавлена деодексация .apk-файлов в папке _framework.
- Функция копирования файлов в устройство (пункт 14) теперь копирует файлы рекурсивно вместе с подкаталогами.
- Добавлено копирование деодексированных APK и JAR-файлов в папки _INPUT_APK и _INPUT_JAR.
- Обновлен apktool (2.0.1), jadx (0.6.1 build 206), Java (8u45).
v3.3.0
- Добавлены испанский, китайский, немецкий, турецкий и французский языки.
- Изменена логика деодексации файлов: теперь файлы деодексируются непосредственно в папках _app, _priv-app и _framework.
- Улучшены алгоритмы деодексации: теперь деодексируются файлы всех архитектур за один проход.
- В лог деодексации добавлен вывод символьных ссылок (для updater-script).
- Исправлена деодексация файлов с несколькими classes.dex.
- Обновлен apktool (2.0.1_0629), smali (2.0.7_0619), jadx (0.6.1 build 203), oat2dex (0.83).
v3.2.1
- Добавлен беларуский язык
- Логи теперь сохраняются в UTF-8 с BOM
- Увеличен размер Java heap для oat2dex.jar
v3.2.0
- Добавлена поддержка файлов локализаций. В дистрибутив добавлен русский и английский языки.
- Добавлена начальная поддержка плагинов. Функции замены ресурсов без перекомпиляции и преобразования unicode-последовательностей в UTF-8 перенесены в плагины.
- Добавлен плагин настройки цвета основных элементов интерфейса.
- Декомпилятор исходного Java-кода jd-gui заменен на luyten 0.4.4 (procyon 0.5.28).
- Добавлен вывод цветного форматированного текста в logcat. Логи теперь сохраняются в реальном времени во время просмотра.
- Исправлено игнорирование изменений в папке libs.
- Обновлен apktool (2.0.1_0524), smali (2.0.6_0523), jadx (0.6.1 build 198), oat2dex (0.81).
- Различные улучшения и исправления.
v3.0.1
- Добавлен счетчик обрабатываемых файлов.
- Фреймы теперь устанавливаются из папки _framework и всех ее подпапок.
- Обновлен apktool (2.0.0), smali (2.0.5_0410), jadx (0.6.0), jd-gui (1.0.0-RC4), dex2jar (2.0).
- Обновлена Java 8u45 (в standalone-версии BAT).
v2.9.9
- Исправлена функция рекомпиляции, если в папке C:\Windows присутствует файл aapt.exe
- Обновлен jadx (0.5.5 build 171).
v2.9.8
- Улучшено определение Java
- apktool 2.x теперь использует внешний aapt.
- Обновлен apktool (2.0.0 RC4), jadx (0.5.5 build 166).
v2.9.6
- Пункты 04-07 теперь декомпелируют все dex-файлы, а не только classes.dex.
- Обновлен apktool (2.0.0 rc3 от 21.01.2015), smali (2.0.5), jadx (0.5.5 build 164).
- Обновлена Java 8u31 (в standalone-версии BAT).
v2.9.5
- Исправлено игнорирование изменений, внесенных в папки assets и lib при использовании apktool 1.x (дефект появился в BAT289)
- Возвращена совместимость с beta-версиями apktool 2.x
v2.9.4
- Добавлена деодексация файлов *.odex.xz в папке _framework
- Оптимизация кода
v2.9.3
- Добавлена деодексация файлов *.odex.xz (Android 5.0)
- Обновлен jadx (0.5.5 build 163).
v2.9.2
- Добавлена возможность деодексации приложений Android 5.0
- Исправлена некорректная декомпиляция приложений, если в именах файлов их smali-кода содержались недопустимые символы
- Обновлен jadx (0.5.5 build 162).
v2.9.1
- Доработана функция деодексации.
- Обновлен apktool (2.0.0 rc3 от 30.12.2014),smali (2.0.3 от 29.12.2014), jadx (0.5.5 build 157).
- Обновлен aapt.exe для apktool 1.5.2
v2.9
- В логи добавлена информация о версиях используемых компонентов.
- Фреймы при использовании apktool_2.x теперь устанавливаются в папку утилиты.
- Обновлен apktool (2.0.0 rc3 от 26.12.2014), jadx (0.5.5 build 155).
v2.8.9
- Исправлено сохранение версии приложения и версии SDK, измененных через apktool.yml.
- Обновлен apktool (2.0.0 rc2 от 02.11.2014), smali (2.0.3 от 06.11.2014), jd-gui (0.3.7 RC1), jadx (0.5.5 build 142).
v2.8.8
- Возвращено создание резервной копии в папке _backup.
- Standalone-версия Batch ApkTool теперь использует Java 8.
- Обновлен apktool (2.0.0 rc2 от 20.10.2014), jadx (0.5.3 build 131).
- Улучшения и исправления.
v2.8.7
- При копировании файлов в системные папки им теперь выставляются права 644
- Обновлен алгоритм сборки APK через apktool 2.x
- Логи теперь откываются в редакторе, ассоциированном в системе с файлами txt
- Обновлен apktool (2.0.0 rc2 от 05.10.2014), jadx (0.5.3 build 126).
v2.8.6
- Добавлено определение версии Java при запуске утилиты
- Обновлен aapt.exe для apktool 1.5.2
- Обновлен apktool (2.0.0 rc1 от 24.09.2014), jadx (0.5.3 build 126).
v2.8.4
- Добавлена поддержка apk, содержащих несколько dex-файлов
- Обновлен apktool (2.0.0 rc1 от 16.08.2014), jadx (0.5.2).
v2.8.3
- Исправлена ситуация у некоторых пользователей, когда после декомпиляции папка разобранного приложения оказывалась пустой
- Обновлен jadx (0.5.2 build 102).
v2.8.2
- Добавлены операции пакетной установки приложений (в т.ч. на SD-карту) и копирования файлов в устройство
- Запрещен запуск нескольких копий утилиты
- Изменен метод вывода цветного текста (для переводчиков утилиты на русский и другие языки)
- Обновлен jadx (0.5.2 build 96).
v2.8
- Добавлено копирование (pull) папок /system/app, /system/priv-app и /system/framework из устройства
- Добавлена возможность сохранить полный багрепорт устройства (logs > bugreport)
- Формат окончания строк в файлах логов и багрепорта теперь стандартный для Windows - CR+LF
- Обновлен jadx (0.5.2 build 88)
v2.7
- Добавлено конвертирование unicode escapes в UTF-8 (smali).
- Добавлены цвета)
- Оптимизирован алгоритм детекта внесенных изменений, увеличена скорость рекомпиляции (до 2-х раз)
- Добавлены smali-baksmali версии 1.4.2.
- Обновлены бинарники aapt, adb и zipalign.
- Обновлен jadx (0.5.1 build 80).
- Исправлена некорректная дата в имени логов и скриншотов, если формат региональных стандартов отличен от русского.
v2.6
- Увеличена скорость рекомпиляции (в зависимости от исходного файла и внесенных изменений - до 3-х раз)
- Изменение логики открытия лога, снова)): два режима - MANUAL и ON.
- Обновлен apktool (2.0.0 rc1 от 18.06.2014), jadx (0.5.1 build 78).
v2.4.1
- Возвращен прежний алгоритм определения изменений в AndroidManifest.xml, без учета apktool.yml.
- Исправлено падение при работе с файлами, содержащими в имени скобки (), а также при вводе некоторых спецсимволов вместо номера пункта меню.
- Обновлен jadx (0.5.1 build 68).
v2.4
- Добавлена возможность выбрать для обработки один файл.
- Обновлен apktool (2.0.0 rc1), jadx (0.5.1 build 63).
- Исправлено сохранение изменений в apktool.yml.
- Мелкие улучшения.
v2.1
- Добавлена возможность создания и загрузки проектов.
- Пункты рекомпиляции и сборки результирующего APK объединены в один пункт.
- Опция подписи стала глобальной и теперь применяется ко всем выходным APK.
- Опция подписи включена по умолчанию
- Код smali при разборе через smali теперь соответствует коду smali при разборе через apktool.
- Исполняемые файлы программы перенесены в папку bin
Русский интерфейс: Да
Разработчик: BurSoft
Домашняя страница: BurSoft Portable - Batch ApkTool
Нужно ли удалять сертификат электронной подписи (ЭП), если закончился срок его действия? Как удалить сертификат с компьютера и можно ли восстановить его в случае ошибки? На эти и другие вопросы ответим в статье.
Способы удаления сертификатов электронной подписи различаются в зависимости от того, с каким средством криптографической защиты (СКЗИ) работает сертификат. Это может быть КриптоПро CSP, VipNet CSP или СКЗИ на носителях — Рутокен ЭЦП 2.0 и JaCarta SE.
Описанные ниже способы подойдут только для сертификатов, которые работают с КриптоПро CSP. Другие сертификаты, например, для ЕГАИС, удаляются иначе — как, опишем в следующих статьях.
Когда сертификаты лучше не удалять
Удалять сертификат ЭП можно по разным причинам, например, когда его хозяин планирует сменить компьютер и стирает с него все личные данные. Однако, в некоторых случаях этого лучше не делать. Либо перед удалением скопировать сертификат на другой носитель.
Если у сертификата ЭП истек срок действия, не спешите его удалять. Подписать документ таким сертификатом не получится, но с его помощью по-прежнему можно расшифровать старые документы.
Правительство регулирует сроки хранения некоторых бухгалтерских, кадровых и налоговых документов. Например, договоры, счета-фактуры и налоговые декларации нужно хранить пять лет. Если эти документы электронные, то вместе с ними нужно хранить и сертификат ЭП, которым они подписаны.
Открыть документы, зашифрованные старым сертификатом ЭП, с помощью нового сертификата не получится — даже если новый сертификат выдан на того же человека.
Как удалить сертификат встроенными средствами Windows
Удалить сертификат электронной подписи с помощью средств Windows можно двумя способами: в браузере Internet Explorer и в менеджере сертификатов.
Чтобы удалить сертификат в интернет-браузере:
Зайдите в Internet Explorer.
Откройте раздел «Сервис» и выберите в нем пункт «Свойства браузера».
Перейдите во вкладку «Содержание» и нажмите на кнопку «Сертификаты».
В списке сертификатов выберите нужный и удалите его с помощью одноименной кнопки.
В этом случае удаляется только сертификат открытого ключа — общедоступная часть ЭП, а закрытый ключ останется на носителе (токене или компьютере). Система не будет показывать этот сертификат в общем списке, но при желании его можно вернуть. Для этого запросите сертификат открытого ключа в удостоверяющем центре, в котором получали электронную подпись.
Если же вы хотите удалить сертификат ЭП полностью, используйте менеджер сертификатов:
Откройте меню «Пуск».
В строке «Выполнить» введите команду «certmgr.exe» и нажмите кнопку ввода.
В списке сертификатов выберите тот, который хотите удалить и нажмите на него правой кнопкой мыши.
В контекстном меню выберите пункт «Удалить» и подтвердите это действие.
В обоих случаях у пользователя должны быть права администратора. Например, если вы войдете в систему под учетной записью «гостя», вы не сможете удалить и скрыть сертификат подписи.
Как удалить сертификат ЭП в Linux
В отличие от Windows, на Linux нет встроенного менеджера сертификатов, и, чтобы удалить сертификат ЭП, нужно использовать специальные программы. Порядок действий в таких программах схожий, однако некоторые команды, которые нужно ввести в терминал, могут отличаться. Мы расскажем, как удалить сертификат с помощью одной из самых распространенных программ — Mono.
Запустите терминал (командную строку) и введите команду certmgr –list.
В списке сертификатов найдите тот, который хотите удалить и скопируйте его название.
Введите команду «certmgr -del -c -m» и через пробел вставьте название нужного сертификата. Например, certmgr -del -c -m 0000.cer, где «0000.cer» — название сертификата.
Удаление сертификата через КриптоПро
Программа КриптоПро CSP нужна, чтобы записать сертификат электронной подписи на компьютер. С ее помощью можно и удалить сертификат. При этом программа удалит весь контейнер (хранилище) электронной подписи — и ключи подписи, и сертификат ЭП и корневой сертификат удостоверяющего центра.
Чтобы удалить сертификат электронной подписи:
Откройте меню «Пуск» и зайдите в «Панель управления».
Запустите программу КриптоПро CSP.
Откройте вкладку «Сервис» и выберите пункт «Удалить».
Выберите сертификат, который хотите удалить, и нажмите на кнопку «Готово».
Можно ли восстановить сертификат после удаления
Электронная подпись — важный инструмент, который хранит конфиденциальные данные пользователя. Чтобы защитить эти данные, удаленные сертификаты стираются из памяти компьютера безвозвратно. Они не попадут в «Корзину», и восстановить их с помощью специальных программ не получится. Таким образом производитель защищает пользователя от действий мошенников.
Восстановить можно только открытую часть сертификата ЭП которая хранилась в контейнере вместе с закрытым ключом. Например, если вы случайно удалили сертификат из браузера, то можете переустановить его с помощью программы КриптоПро.
Если же вы случайно удалили закрытый ключ ЭП, восстановить его не получится. Однако, если у вас есть копия сертификата ЭП и закрытого ключа на токене или флешке, вы можете заново записать их на компьютер.
Если же копии файлов подписи нет, то придется получать новый сертификат подписи в УЦ. В этом случае придется посетить офис УЦ лично. Если в вашем тарифе нет услуги перевыпуска сертификата, получение нового сертификата будет платным.
Обратите внимание, что открыть зашифрованный документ можно только тем сертификатом, которым его подписывали. Перевыпущенный сертификат ЭП не откроет старые документы.
Читайте также: