Pickup tutorial что это за программа на андроид
Google Play – по праву считается самым лучшим каталогом приложений для Android, который покрывает почти 99% моих потребностей. Он не только обладает широким ассортиментом, но и высоким уровнем безопасности. Скачивая приложения из Google Play, я могу быть уверен, что не нарвусь на троян или какой-нибудь другой вредоносный софт, просто потому что Google тщательно за этим следит, а встроенный антивирус не позволит мне установить что-то, что пропустили глаза цензоров. Однако иногда у меня возникает потребность скачать приложение, которого в Google Play либо нет вообще, либо там установлено географическое ограничение на загрузку. Тогда я прибегаю к помощи APKPure .
APKPure – это альтернативная площадка, откуда можно скачать практически любой софт, в том числе тот, которого нет в Google Play. Правда, в отличие от большинства аналогов с APK-файлами приложений, APKPure можно ещё и установить на смартфон, чтобы использовать в качестве обычного магазина приложений. В результате это будет даже удобнее, потому что все программы, которые вы скачаете, встанут на устройство сразу и не оставят после себя бесполезный установочный файл, занимающий свободное пространство в хранилище.
Как установить APKPure на Android
- Просто перейдите в «Настройки» — «Безопасность» и включите загрузку приложений из неизвестных источников;
- Перейдите по этой ссылке и скачайте установочный файл APKPure;
- После загрузки нажмите на загрузившийся файл и, следуя инструкциям на экране, установите каталог;
- После того как его иконка появится на экране, откройте и начинайте пользоваться.
А вот некоторые пользователи предпочитают не скачивать приложения из интернета , и эти рассуждения не лишены смысла.
Несмотря на то что APKPure – это полноценный каталог приложений, будучи установленным на устройство, он совершенно не конфликтует с Google Play и, что немаловажно, совершенно не требует регистрации. То есть для того, чтобы скачивать любые приложения из APKPure, вам не потребуется ни логин, ни пароль, ни аккаунт Google. Достаточно будет просто запустить каталог и забить в поиск название нужного приложения. А если вы не хотите устанавливать каталог на устройство, можете скачивать нужный софт прямо с мобильной версии сайта, которая не менее удобна.
Широкий ассортимент – это главная причина, по которой я пользуюсь APKPure. Здесь можно найти приложения самого разного толка. В APKPure я нашёл установочный файл приложения Google Stadia, которое у меня не получалось загрузить из Google Play. Фирменный магазин приложений Google блокировал загрузку, потому что мой смартфон по умолчанию не поддерживается сервисом, а значит, и претендовать на его использование я не мог. Однако APKPure совершенно не обратил внимания на то, каким именно устройством я пользуюсь и позволил загрузить то, что я хочу.
Кроме снятия территориальных и других ограничений, APKPure позволяет скачивать APK-файлы приложений уже с кэшем. Это очень удобно для пользователей, которые ищут игры с готовым прохождением. Для этого достаточно найти нужный тайтл в ассортименте каталога, а потом загрузить его на устройство. А для уверенности, что всё в порядке, можно посмотреть рейтинг, который выставляют сами пользователи. Если он выше 7 баллов, приложению можно доверять. А вот если рейтинг ниже 5, я бы поостерёгся его – мало ли что.
Безопасно ли скачивать с APKPure
Да, большая часть приложений, которые попадают в APKPure, бесплатны, потому что являются взломанными. Тем не менее, это не мешает им быть абсолютно безопасными. Дело в том, что на площадке есть встроенный инструмент для проверки подлинности APK-файлов. То есть, мало того, что каталог сам проверяет все файлы, которые туда попадают, так ещё и предлагает пользователям провести проверку тех файлов, которые они скачали где-то ещё. Достаточно просто перейти по этой ссылке и загрузить сюда файл, который хотите проверить, а затем дождаться результата.
Теперь, чтобы скачать Fortnite, необязательно искать сторонние источники. Отныне игра доступна в Google Play .
Да, у APKPure неидеальная локализация и кое-какие элементы интерфейса попадаются либо без перевода, либо с некачественным переводом. Однако APKPure в принципе имеет русскоязычный интерфейс, да и ищет по русским приложением без каких-либо проблем. Здесь можно найти и приложение «Сбербанка», и «Тинькофф», и «Яндекс.Такси», и вообще чего угодно. Тут попадаются даже программы, которые по какой-то причине были удалены из Google Play, если это, конечно, не трояны и не какие-нибудь вирусы, представляющие опасность. Поэтому, если вы ищете альтернативу официальному магазину приложений от Google, выбирайте APKPure — не пожалеете.
Компания Google быстро прошла путь от небольшой поисковой системы до гигантской инфраструктуры, компоненты которой работают на наших ПК, смартфонах, планшетах и даже телевизорах. Google неустанно собирает о нас информацию, поисковые запросы тщательно логируются, перемещения отслеживаются, а пароли, письма и контактная информация сохраняются на годы вперед. Все это неотъемлемая часть современности, но мы вполне можем ее изменить.
Ни для кого не секрет, что любое устройство под управлением Android (по крайней мере то, что сертифицировано Google) содержит в себе не только компоненты, собранные из AOSP, но и внушительное количество проприетарных программ Google. Это те самые Google Play, Gmail, Hangouts, Maps и еще куча приложений, включая диалер и камеру (начиная с KitKat).
Для всех этих компонентов нет не только исходного кода, но и вообще каких-либо пояснений по поводу принципов их работы. Многие из них изначально созданы с целью собирать определенные виды информации и отправлять их на серверы Google. Так, например, ведут себя GoogleBackupTransport, отвечающий за синхронизацию списка установленных приложений, паролей и других данных, GoogleContactsSyncAdapter, который синхронизирует список контактов, или ChromeBookmarksSyncAdapter, работа которого — синхронизировать закладки браузера. Плюс сбор информации обо всех запросах в поисковике.
В самом факте синхронизации, конечно, ничего плохого нет, и это великолепный механизм, который позволяет настроить новый телефон за считаные минуты, а Google Now даже умудряется дать нам полезную информацию на основе наших данных (иногда). Проблема только в том, что все это рушит нашу конфиденциальность, ибо, как показал Сноуден, под колпаком у АНБ (и, вероятнее всего, у кучи других служб) находится не только какая-нибудь империя зла под названием Microsoft, но и Google, а также множество других компаний из тусовки «мы не зло, а пушистые меценаты».
Говоря другими словами: Гугл сольет нас всех без всяких проблем, и не факт, что его сотрудники, сидя в своих офисах с массажистками и собачками, не ржут над именами из твоей контактной книги (там все зашифровано, да), попивая 15-летний пуэр из провинции Юньнань. А может быть, к черту этот Гугл? Возьмем их Android, а сами они пусть идут лесом?
Последняя версия кастомной прошивки на основе KitKat для моего смартфона весит 200 Мб, однако, чтобы получить настоящий экспириенс от смартфона, я должен прошить поверх нее еще и архив gapps, размер которого составляет 170 Мб. Только после этого я получу систему, аналогичную предустановленной на Nexus-устройства, со всеми плюшками в виде интегрированного с Google Now рабочего стола, блокировку экрана на основе снимка лица, камеру с поддержкой сферической съемки и килограмм гугловского софта, начиная от Google Play и заканчивая Google Books.
Так Google Apps попадают на смартфон. Из пользователей 99% либо юзают предустановленные приложения, либо устанавливают их самостоятельно на абсолютно чистую и полностью анонимную прошивку. А дальше с момента ввода имени пользователя и пароля начинается синхронизация и слив информации.
Чтобы разобраться, как это происходит, распакуем тот самый архив с gapps и взглянем внутрь. Нас интересуют каталоги /system/app и /system/priv-app , при установке их содержимое копируется в одноименные каталоги внутри смартфона. Второй каталог — это новшество KitKat, в нем размещаются приложения, использующие системные API, помеченные как "private" и не доступные обычным приложениям.
В каталоге /system/app мы найдем большое количество разных гугловских приложений, легко узнаваемых по названию пакета: Books.apk, Chrome.apk, Gmail2.apk и так далее. Каждое из них по-своему будет делиться информацией, но это абсолютно нормально (да, Google будет знать, что ты читаешь Пауло Коэльо через их приложение!). Наибольшую опасность здесь представляет GoogleContactsSyncAdapter.apk, который отвечает только за то, чтобы отправлять на удаленный сервер список контактов. Записываем название в блокнот и идем дальше.
Большинство файлов из каталога /system/priv-app — это сервисы и фреймворки, необходимые для запуска всей этой махины синхронизации и слежки:
- GoogleBackupTransport.apk — занимается синхронизацией данных установленных приложений, паролей Wi-Fi и некоторых настроек;
- GoogleLoginService.apk — связывает устройство с Google-аккаунтом;
- GooglePartnerSetup.apk — позволяет сторонним приложениям получить доступ к сервисам Google;
- GoogleServicesFramwork.apk — фреймворк с различной подсобной функциональностью;
- Phonesky.apk — Play Store (как ни странно);
- PrebuiltGmsCore.apk — Google Services, как видно из названия, это ядро всего комплекта gapps;
- Velvet.apk — поиск от Google, включающий в себя строку поиска на рабочем столе и Google Now.
В сущности, это и есть та часть Google Apps, которая ответственна за слив нашей частной информации. Попробуем от всего этого избавиться.
Самый простой способ отвязать смартфон от Google — это воспользоваться стандартными настройками системы. Метод хорош тем, что не требует ни прав root, ни установки кастомных прошивок, ни кастомного рекавери. Все можно сделать в любой стоковой прошивке без потери доступа к аккаунту и приложениям типа Gmail (если это необходимо). Однако за эффективность никто ручаться не будет, так как вполне возможно, что некоторые компоненты gapps продолжат отправку данных.
За множество настроек синхронизации отвечает также приложение «Настройки Google», которое является частью Google Services. С его помощью, в частности, можно отключить доступ Google к местоположению («Доступ к геоданным -> Доступ к моим геоданным / Отправка геоданных / История местоположений»), отключить отправку личных данных поисковику («Поиск -> Личные данные»), отключить Google Now («Поиск -> Google Now») и отключить удаленное управление («Удаленное управление -> Удаленный поиск устройства / Удаленная блокировка и сброс настроек»).
В тех же «Настройках Google», кстати, можно отключить любое приложение, использующее аккаунт Google для авторизации. Речь при этом идет не только о софте, установленном на девайс, но и вообще обо всех когда-либо использованных приложениях, включая веб-сайты. Я, например, обнаружил в этом списке множество сайтов, на которые не заходил уже как минимум пару лет.
Большинство приложений Google можно безболезненно отключить через настройки: «Приложения -> ВСЕ -> нужное приложение -> Отключить».
Настройки аккаунта Google
Другие статьи в выпуске:
Настройки Google
В том случае, если на стоковой прошивке есть права root, от Google Apps можно избавиться, просто удалив их со смартфона. Как я уже говорил, все они хранятся в каталогах /system/app и /system/priv-app . Например, в случае с KitKat список Google-приложений в первом каталоге будет таким:
- Books.apk — Google Книги;
- CalendarGoogle.apk — Google Календарь;
- Chrome.apk — Google Chrome;
- CloudPrint.apk — система облачной печати;
- Drive.apk — Google Drive;
- GenieWidget.apk — виджет новостей и погоды;
- Gmail2.apk — Gmail;
- GoogleContactsSyncAdapter.apk — синхронизация контактов;
- GoogleEars.apk — Google Ears (аналог Shazam);
- GoogleEarth.apk — Google Земля;
- GoogleHome.apk — домашний экран с интегрированным Google Now;
- GoogleTTS.apk — система синтеза речи;
- Hangouts.apk — Google Hangouts;
- Keep.apk — Google Keep;
- LatinImeGoogle.apk — клавиатура с поддержкой жестов;
- Magazines.apk — Google Журналы;
- Maps.apk — Google Карты;
- Music2.apk — Google Музыка;
- PlayGames.apk — Google PlayGames;
- PlusOne.apk — Google+;
- QuickOffice.apk — QuickOffice;
- Street.apk — Google Street;
- SunBeam.apk — живые обои SunBeam;
- Videos.apk — Google Фильмы;
- YouTube.apk — YouTube.
В каталоге /system/priv-app , кроме перечисленных ранее, также хранятся такие файлы:
- CalendarProvider.apk — хранит данные календаря;
- GoogleFeedback.apk — отправляет отчет об использовании Google Play;
- GoogleOneTimeInitilalizer.apk — мастер установки дополнительных Google-приложений;
- SetupWizard.apk — мастер настройки при первом запуске;
- Wallet.apk — Google Кошелек;
- talkback.apk — оповещение голосом о событиях на устройстве.
Комплект Gapps для KitKat, кроме всего прочего, включает в себя также проприетарную камеру с поддержкой сферической съемки и проприетарный же рабочий стол с интегрированным Google Now.
Но это еще не все. Google Apps зависят от нескольких фреймворков, которые находятся в каталоге /system/framework . Это файлы com.google.android.maps.jar, com.google.android.media.effects.jar и com.google.widevine.software.drm.jar. Еще есть множество библиотек в каталоге /system/lib , которые используются исключительно Google-приложениями. Удалять их совсем не обязательно, но можно. Просто чтобы очистить мусор. Их список ты найдешь на сайте ][.
В прошлых (да и в будущих) версиях системы содержимое Google Apps отличается, поэтому перед удалением рекомендую скачать gapps нужной версии с сайта goo.im/gapps, распаковать с помощью WinRar и просмотреть содержимое. Также следует учитывать зависимость некоторых приложений из маркета от приложений Google, подробнее об этом я расскажу позже.
Это только часть библиотек, входящих в комплект gapps
Предыдущий способ можно существенно упростить, если просто установить на смартфон кастомную прошивку без Google Apps. В этом случае смартфон/планшет будет кристально чист без всякой привязки к Google. Недостаток этого способа — отсутствие Google Play, но можно либо заменить его сторонним магазином приложений (об этом ниже), либо использовать следующий способ, который включает в себя установку урезанной версии Google Apps.
Этот способ частичной отвязки от Google — своего рода компромисс. Он не решает проблему слежки — по крайней мере без настроек из первого способа, — но позволяет не захламлять систему кучей бесполезного софта, который будет висеть в фоне и жрать память. Суть проста — ставим кастомную прошивку и заливаем поверх нее минималистичную версию gapps, которая включает в себя только Google Play.
Таких минимальных сборок gapps в Сети множество, но я бы рекомендовал использовать проверенные временем BaNkS Gapps, а именно файл «месяц-числоGAppsCore4.4.2signed.zip». Они работают на любом смартфоне, совместимы с ART и включают в себя только основные файлы gapps, список которых приведен в разделе «Что такое Gapps», файлы фреймворка, а также несколько библиотек. По сути, это Google Play, инструменты синхронизации и ничего больше.
Меняем поисковик на DuckDuckGo
Даже после полного отключения синхронизации на домашнем экране останется «встроенная» строка поиска Google. В стоковых прошивках некоторых производителей (Samsung, например) это всего лишь виджет, который можно легко удалить с экрана. В чистом Android и девайсах от многих других производителей она «вшита» в домашний экран, но ее можно убрать, отключив весь поиск от Google (вместе с Google Now) с помощью меню «Настройки -> Приложения -> Все -> Google поиск -> Отключить» или установив сторонний лаунчер. Далее достаточно скачать из маркета или другого магазина приложений DuckDuckGo и добавить одноименный виджет на домашний экран.
Второй и третий способ предполагают полное избавление от Google Apps, включая Google Play и возможность логина с помощью Google-аккаунта, поэтому мы должны найти способ простой и удобной установки приложений, который не заставлял бы нас выкачивать их самостоятельно, а затем скидывать на карту памяти и устанавливать вручную. Один из таких способов — установить сторонний маркет.
На данный момент существует три более или менее жизнеспособные альтернативы Google Play. Это Amazon Appstore, Yandex.Store и 1Mobile Market. У каждого из них есть свои преимущества и недостатки, которые в основном сводятся к количеству приложений и способам оплаты:
- Amazon Appstore — самый известный магазин приложений после Google Play. Содержит более 75 тысяч приложений (в сравнении с 800 тысячами в Google Play), качество каждого из которых проверяется вручную, так же как в iTunes для iOS. Расплачиваться можно с помощью кредитной карты или амазоновскими монетами (Amazon Coins), которые дают в качестве подарка за покупку планшета Kindle Fire либо в подарок от другого юзера. Одна из самых интересных черт магазина — ежедневная бесплатная раздача одного из платных приложений.
- Yandex.Store — магазин от компании «Яндекс». Содержит более 85 тысяч приложений, каждое из которых проверяется антивирусом Касперского. Особо ничем не выделяется, но зато имеет киллер-фичу в виде возможности оплачивать покупки с помощью сервиса Яндекс.Деньги или счета мобильного телефона.
- 1Mobile Market — крупнейший сторонний репозиторий Android-приложений, включающий в себя более 500 тысяч софтин. Отличается от других наличием исключительно бесплатных приложений (не путать с пиратскими), из-за чего позволяет не проходить стадию регистрации аккаунта и сохранить анонимность.
Приложения во всех трех маркетах имеют оригинальные цифровые подписи разработчиков приложений, что позволяет использовать их одновременно. Приложение, установленное из одного маркета, может быть без проблем обновлено из другого, а при удалении пропадет из списка установленных сразу во всех. Покупать, правда, придется раздельно.
Amazon Appstore Yandex.Market 1Mobile Market
Open Source Маркет
Кроме описанных в статье, а также множества других менее известных магазинов приложений, в Сети можно найти отличающийся от остальных репозиторий F-Droid. Он полностью анонимен и содержит только свободный софт, распространяемый под лицензиями, одобренными фондом FSF. Приложений в F-Droid всего тысяча, зато все они гарантированно не содержат бэкдоров и других систем разглашения личных данных. Именно F-Droid используется в качестве дефолтового маркета в свободной Android-прошивке Replicant.
Несмотря на то что компоненты gapps не являются частью официального API Android, некоторые приложения все-таки ожидают увидеть их в системе, из-за чего может возникнуть ряд проблем — от полной неработоспособности приложения до потери части его функций. Некоторые приложения откажутся устанавливаться из-за отсутствия Google Maps API, другие падают сразу после запуска, не обнаружив его, третьи включают в себя прямые ссылки на Google Play, что может привести к падениям и некорректной работе.
Чтобы решить эти проблемы, пользователь MaR-V-iN с XDA начал проект NOGAPPS, в рамках которого ведется разработка набора открытых компонентов, заменяющих оригинальную функциональность Google Apps. В данный момент доступно три компонента-замены:
- Network Location — сервис геолокации на основе Wi-Fi и базовых станций GSM. Основан на базе данных IP-адресов от Apple и открытой базе базовых станций;
- Maps API — замена интерфейса к Google Maps на основе OpenStreetMap;
- BlankStore — открытая альтернатива клиенту Play Store. Позволяет устанавливать бесплатные приложения из магазина Google, но не рекомендуется к использованию из-за возможных санкций со стороны поисковика (это запрещено их правилами).
Установка компонентов производится отдельно и разными способами. Network Location достаточно вручную скопировать в каталог /system/app/ в Android 2.3–4.3 или в каталог /system/priv-app/ в KitKat (в этом случае следует использовать файл NetworkLocation-gms.apk). Maps API устанавливается с помощью прошивки файла nogapps-maps.zip через консоль восстановления. Для установки маркета придется не только копировать файл, но и генерировать Android ID на большой машине, но, так как делать это не рекомендуется, я не буду об этом рассказывать и ограничусь ссылкой на инструкцию.
После всех манипуляций софт должен корректно заработать.
Для компании Google Android без ее собственных приложений бесполезен, поэтому нет ничего удивительного в том, что компания выносит в них самые вкусные части системы и оставляет код закрытым. Однако в этой статье я показал, что жизнь без gapps есть и она может быть даже проще и удобнее, чем с Google.
[authors]
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Иногда некоторые приложения на Android чем-то не устраивают пользователя. В качестве примера можно привести назойливую рекламу. А то бывает и так — всем хороша программа, да только перевод в ней или кривой, или вовсе отсутствует. Или, например, программа триальная, а получить полную версию возможности нет. Как же изменить ситуацию?
Введение
В этой статье мы поговорим о том, как разобрать пакет APK с приложением, рассмотрим его внутреннюю структуру, дизассемблируем и декомпилируем байт-код, а также попробуем внести в приложения несколько изменений, которые могут принести нам ту или иную выгоду.
Чтобы сделать все это самостоятельно, потребуются хотя бы начальные знания языка Java, на котором пишутся приложения для Android, и языка XML, который используется в Android повсеместно — от описания самого приложения и его прав доступа до хранения строк, которые будут выведены на экран. Также понадобится умение обращаться со специализированным консольным софтом.
Итак, что же представляет собой пакет APK, в котором распространяется абсолютно весь софт для Android?
Декомпиляция приложений
В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:
Использовать их следует так. Сначала запускаем dex2jar, указывая в качестве аргумента путь до apk-пакета:
В результате в текущем каталоге появится Java-пакет mail.jar, который уже можно открыть в jd-gui для просмотра Java-кода.
Устройство APK-пакетов и их получение
Пакет приложения Android, по сути, является обычным ZIP-файлом, для просмотра содержимого и распаковки которого никаких специальных инструментов не требуется. Достаточно иметь архиватор — 7zip для Windows или консольный unzip в Linux. Но это что касается обертки. А что внутри? Внутри же у нас в общем случае такая структура:
- META-INF/ — содержит цифровой сертификат приложения, удостоверяющий его создателя, и контрольные суммы файлов пакета;
- res/ — различные ресурсы, которые приложение использует в своей работе, например изображения, декларативное описание интерфейса, а также другие данные;
- AndroidManifest.xml — описание приложения. Сюда входит, например, список требуемых разрешений, требуемая версия Android и необходимое разрешение экрана;
- classes.dex — компилированный байт-код приложения для виртуальной машины Dalvik;
- resources.arsc — тоже ресурсы, но другого рода — в частности, строки (да-да, этот файл можно использовать для русификации!).
Перечисленные файлы и каталоги есть если не во всех, то, пожалуй, в абсолютном большинстве APK. Однако стоит упомянуть еще несколько не столь распространенных файлов/каталогов:
- assets — аналог ресурсов. Основное отличие — для доступа к ресурсу необходимо знать его идентификатор, список asset’ов же можно получать динамически, используя метод AssetManager.list() в коде приложения;
- lib — нативные Linux-библиотеки, написанные с помощью NDK (Native Development Kit).
Этот каталог используют производители игр, помещая туда движок игры, написанный на C/C++, а также создатели высокопроизводительных приложений (например, Google Chrome). С устройством разобрались. Но как же получить сам файл пакета интересующего приложения? Поскольку без рута с устройства забрать файлы APK не представляется возможным (они лежат в каталоге /data/app), а рутить не всегда целесообразно, имеется как минимум три способа получить файл приложения на компьютер:
- расширение APK Downloader для Chrome;
- приложение Real APK Leecher;
- различные файлообменники и варезники.
Какой из них использовать — дело вкуса; мы предпочитаем использовать отдельные приложения, поэтому опишем использование Real APK Leecher, тем более что написан он на Java и, соответственно, работать будет хоть в винде, хоть в никсах.
Настройка Real APK Leecher
Другие статьи в выпуске:
Просмотр и модификация
Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:
Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в Linux или Mac OS X, то тут есть инструмент под названием apktool. Он позволяет распаковывать ресурсы в оригинальный вид (в том числе бинарные XML- и arsc-файлы), пересобирать пакет с измененными ресурсами, но не умеет подписывать пакеты, так что запускать утилиту signer придется вручную. Несмотря на то что утилита написана на Java, ее установка достаточно нестандартна. Сначала следует получить сам jar-файл:
Далее нам понадобится скрипт-обвязка для запуска apktool (он, кстати, доступен и для Windows), включающий в себя еще и утилиту aapt, которая понадобится для запаковки пакета:
Далее просто сваливаем содержимое обоих архивов в каталог ~/bin и добавляем его в $PATH:
Если же ты работаешь в Windows, то для нее есть превосходный инструмент под названиемVirtuous Ten Studio, который также аккумулирует в себе все эти инструменты (включая сам apktool), но вместо CLI-интерфейса предоставляет пользователю интуитивно понятный графический интерфейс, с помощью которого можно выполнять операции по распаковке, дизассемблированию и декомпиляции в несколько кликов. Инструмент этот Donation-ware, то есть иногда появляются окошки с предложением получить лицензию, но это, в конце концов, можно и потерпеть. Описывать его не имеет никакого смысла, потому что разобраться в интерфейсе можно за несколько минут. А вот apktool, вследствие его консольной природы, следует обсудить подробнее.
Импорт APK в Virtuous Ten Studio
Рассмотрим опции apktool. Если вкратце, то имеются три основные команды: d (decode), b (build) и if (install framework). Если с первыми двумя командами все понятно, то что делает третья, условный оператор? Она распаковывает указанный UI-фреймворк, который необходим в тех случаях, когда ты препарируешь какой-либо системный пакет.
Рассмотрим наиболее интересные опции первой команды:
- -s — не дизассемблировать файлы dex;
- -r — не распаковывать ресурсы;
- -b — не вставлять отладочную информацию в результаты дизассемблирования файла dex;
- --frame-path — использовать указанный UI-фреймворк вместо встроенного в apktool. Теперь рассмотрим пару опций для команды b:
- -f — форсированная сборка без проверки изменений;
- -a — указываем путь к aapt (средство для сборки APK-архива), если ты по какой-то причине хочешь использовать его из другого источника.
Пользоваться apktool очень просто, для этого достаточно указать одну из команд и путь до APK, например:
После этого в каталоге mail появятся все извлеченные и дизассемблированные файлы пакета.
Препарирование. Отключаем рекламу
Теория — это, конечно, хорошо, но зачем она нужна, если мы не знаем, что делать с распакованным пакетом? Попробуем применить теорию с пользой для себя, а именно модифицируем какую-нибудь софтину так, чтобы она не показывала нам рекламу. Для примера пусть это будет Virtual Torch — виртуальный факел. Для нас эта софтина подойдет идеально, потому что она под завязку набита раздражающей рекламой и к тому же достаточно проста, чтобы не потеряться в дебрях кода.
Поиск кода рекламы в jd-gui
Итак, с помощью одного из приведенных способов скачай приложение из маркета. Если ты решил использовать Virtuous Ten Studio, просто открой APK-файл в приложении и распакуй его, для чего создай проект (File -> New project), затем в контекстном меню проекта выбери Import File. Если же твой выбор пал на apktool, то достаточно выполнить одну команду:
После этого в каталоге com.kauf.particle.virtualtorch появится файловое дерево, похожее на описанное в предыдущем разделе, но с дополнительным каталогом smali вместо dex-файлов и файлом apktool.yml. Первый содержит дизассемблированный код исполняемого dex-файла приложения, второй — служебную информацию, необходимую apktool для сборки пакета обратно.
Первое место, куда мы должны заглянуть, — это, конечно же, AndroidManifest.xml. И здесь мы сразу встречаем следующую строку:
Нетрудно догадаться, что она отвечает за предоставление приложению полномочий на использование интернет-соединения. По сути, если мы хотим просто избавиться от рекламы, нам, скорее всего, достаточно будет запретить приложению интернет. Попытаемся это сделать. Удаляем указанную строку и пробуем собрать софтину с помощью apktool:
В каталоге com.kauf.particle.virtualtorch/build/ появится результирующий APK-файл. Однако установить его не получится, так как он не имеет цифровой подписи и контрольных сумм файлов (в нем просто нет каталога META-INF/). Мы должны подписать пакет с помощью утилиты apk-signer. Запустили. Интерфейс состоит из двух вкладок — на первой (Key Generator) создаем ключи, на второй (APK Signer) подписываем. Чтобы создать наш приватный ключ, заполняем следующие поля:
- Target File — выходной файл хранилища ключей; в нем обычно хранится одна пара ключей;
- Password и Confirm — пароль для хранилища;
- Alias — имя ключа в хранилище;
- Alias password и Confirm — пароль секретного ключа;
- Validity — срок действия (в годах). Значение по умолчанию оптимально.
Остальные поля, в общем-то, необязательны — но необходимо заполнить хотя бы одно.
Создание ключа в apk-signer
WARNING
Чтобы подписать приложение с помощью apk-signer, ты должен установить Android SDK и указать полный путь до него в настройках приложения.
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Теперь этим ключом можно подписать APK. На вкладке APK Signer выбираем только что сгенерированный файл, вводим пароль, алиас ключа и пароль к нему, затем находим файл APK и смело жмем кнопку «Sign». Если все пройдет нормально, пакет будет подписан.
Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.
Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.
Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс Ad.smali, по названию которого нетрудно догадаться, что именно он выводит рекламу.
Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл MainActivity.smali. Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.
Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:
Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из AndroidManifest.xml строку, собираем пакет, подписываем и устанавливаем.
Наш подопытный кролик. Видна реклама Он же, но уже без рекламы
Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл AndroidManifest.xml. И да, в нем есть следующие строки:
Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) android.intent.action.MAIN из категории android.intent.category.LAUNCHER. Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.
Открываем файл Start.smali и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:
Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:
Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.
- Перевод приложений Android;
- пример снятия триала с приложения.
Итоги
Эта статья лишь краткое введение в методы вскрытия и модификации Android-приложений. За кадром остались многие вопросы, такие как снятие защиты, разбор обфусцированного кода, перевод и замена ресурсов приложения, а также модификация приложений, написанных с использованием Android NDK. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.
Все перечисленные в этой статье приложения для Android могут быть популярными, однако они также ставят под угрозу вашу безопасность и конфиденциальность. Если они у вас установлены, лучше удалите их.
Некоторые приложения для Android маскируются под доверенное. Они якобы, выполняют полезные функции, хотя на самом деле просто хотят навредить вам.
Магазин Google Play часто подвергался критике за неэффективный подход к фильтрации небезопасного контента. Если вы не будете осторожны, вас могут выследить, взломать или обмануть.
Имея это в виду, вот самые большие нарушители в списке плохих приложений. У них уже есть миллионы установок - убедитесь, что вы не один из них.
1. QuickPic Gallery
Что это такое: QuickPic раньше была дружелюбной и простой в использовании фотогалереей. Он никогда не был популярным, однако благодаря четкой связи и частым обновлениям он неуклонно увеличивал базу пользователей.
Почему надо удалить: оно было куплено известной китайской фирмой Cheetah Mobile, которая имеет плохую репутацию. Приложение сразу стала вредоносным для Android; компания начала загружать данные пользователей на их собственные серверы, о чем свидетельствует один пользователь Google Plus, обнаруживший множество новых DNS-запросов, связанных с приложением.
Приложение было полностью удалено из Play Store в конце 2018 года, но вернулось в 2019 году. Во время возврата Cheetah сообщил Android Police, что QuickPic не был удален из-за мошенничества с рекламными кликами; вместо этого компания просто не хотела больше его поддерживать.
Сегодня существуют сотни клонов QuickPic. Трудно сказать, какая версия является оригинальной. Однако одно простое правило обезопасит вас: не устанавливайте ни один из них!
Что вам следует использовать вместо этого: Одна из лучших альтернатив - Simple Gallery . В нем есть редактор фотографий, файловый менеджер и несколько тем.
2. ES File Explorer
Что это: ES File Explorer, вероятно, был самым популярным приложением для работы с файлами. Это потому, что раньше он был действительно хорош.
Почему надо удалить: бесплатная версия была напичкана вредоносным ПО и рекламным ПО, и вам постоянно приходилось загружать дополнительные приложения через всплывающие окна панели уведомлений, которые нельзя отключить. Однако ситуация значительно ухудшилась в апреле 2019 года, когда приложение было удалено из Play Store за совершение мошенничества с кликами по его рекламе.
Для тех, кто не знает, мошенничество с кликами относится к практике автоматического нажатия на фоновые объявления на устройствах пользователей без их ведома.
Сегодня вы можете загрузить APK-файл ES File Explorer или загрузить десятки имитаторов, которые все еще находятся в Play Store. Вам следует избегать всех итераций приложения.
Что вам следует использовать вместо этого: существует множество проводников файлов Android на выбор. Если вас беспокоит простота использования, попробуйте Files by Google ; или, если вам нравится индивидуальная настройка, вы можете скачать Total Commander .
3. UC Browser
Что это: Самый популярный веб-браузер для Android в Китае и Индии. Он утверждает, что имеет быстрый режим, который сэкономит ваши данные благодаря сжатию.
Почему надо удалить: отслеживание. Поисковые запросы пользователей отправляются без шифрования в Yahoo India и Google. Номер IMSI пользователя, номер IMEI, Android ID и MAC-адрес Wi-Fi отправляются без шифрования в Umeng (инструмент аналитики Alibaba). А данные о геолокации пользователей (включая долготу / широту и название улицы) передаются без шифрования в AMAP (инструмент картографии Alibaba).
Что вам следует использовать вместо этого: с чего начать? Chrome и Firefox - очевидный выбор, если вам нужен быстрый браузер на Android , но некоторые люди тоже беспокоятся о конфиденциальности. В этому случае браузер DuckDuckGo это то что вам нужно.
«Это одна из последних статей на тему отключения различного программного хлама в MUI 12 на базе Android 10. Нам осталось отключить ещё около 5 приложений и сервисов, которые впустую тратят мобильный интернет, оперативную память и заряд батареи, после чего, я выпущу статью с финальным списком и пресетом для ADB App Control и перейду к изучению Android 11.
Как показывают отзывы читателей, многим удалось значительно улучшить работу своих смартфонов, чему я очень рад и надеюсь, что эта статья тоже окажется вам полезной».
Начнём с простого
Приложение «Smart-Divert» присутствует во многих смартфонах с двумя Sim-картами и если говорить простым языком, служит для того, чтобы в момент когда вы говорите по одной симке, а на вторую поступает входящий звонок, происходила переадресация.
Но его бессмысленность, заключается в техническом устройстве наших гаджетов, ведь в большинстве из них установлен только один радиомодуль, следовательно, он физически не может поддерживать одновременную работу двух Sim-карт. Проверьте есть ли это приложение в вашем смартфоне, воспользовавшись поиском в пункте "Все приложения". Только показ системных включить не забудьте.
Как вы видите, «Smart-Divert» постоянно находится в активном состоянии, расходуя ресурсы системы и оперативную память, которой как известно, много не бывает.
Поэтому я рекомендую отключить его, через уже знакомое вам приложение ADB App Control (если не знаете что это, ссылка на статью будет ниже). Замечу, что на всех своих смартфонах это приложение я отключил и никаких сбоев в работе не обнаружил.
Перед тем как я перейду к «вишенке на торте», небольшая предыстория: Обратился ко мне человек с проблемой плохой работы определения местоположения после одного из последних обновлений. Перепробовали всё, и местоположение Google отключали, и данные A-GPS чистили - результата ноль.
В итоге, на одном из форумов я вычитал, что проблема может крыться в приложении «LocationServices» от Qualcomm. А зайдя на своём смартфоне в «Настройки» —> Приложения —> Все приложения —> Три точки (Показать все приложения), обнаружил что оно постоянно висит в фоне и потребляет (в моём случае) 272 Мб оперативной памяти.
Начал интересоваться и выяснил, что работа GPS после отключения этого сервиса, остаётся такой же как была (подтверждение ниже).
На всех своих смартфонах Xiaomi я его отключил, весь день пользовался навигатором, тестировал приём спутников - никаких проблем нет. В итоге проблема обратившегося человека была решена, а в добавок ко всему, я нашёл ещё одну службу, которая расходовала достаточно большой объём памяти.
Более того, после отключения (в моём случае) расход аккумулятора, заметно уменьшился и уже потом я прочёл, что статистика расхода батареи «LocationServices» входит в строку «Система Android».
Можете последовать моему примеру и отключить её на своём смартфоне через ADB App Control, тем более, любое отключённое приложение можно восстановить без проблем.
Имена пакетов для отключения в ADB App Control (скопируйте в поисковую строку): Smart-Divert - com.qti.xdivert, LocationService - com.qualcomm.location
Читайте также: