Как переименовать zip в apk windows 7

Обновлено: 06.07.2024

Иногда некоторые приложения на 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

Настройка 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

Импорт 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

Поиск кода рекламы в 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

Создание ключа в 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. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.

Конвертирование файла ZIP в APK это процесс, изменяющий форму презентации данных, а не сами данные. Конвертация данных - это процесс, выполняемый для потребностей компьютерной технологий. Нас, как окончательных пользователей, интересует прежде всего содержимое файла. Совсем иначе данные в файлах воспринимают машины. Они не интересуются содержанием, для них важна соответствующая форма, или же презентация данных, так, чтобы они смогли расшифровать их содержимое.

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

Экспорт и импорт данных и мануальная конвертация


Конверсия данных как правило является процессом, в определенных случаях механизированным. Эффект работы одной программы является автоматически входным продуктом следующей аппликации (некоторые аппликации дают автоматическую возможность записывать работу, проведенную с файлом ZIP в формат APK - ЭКСПОРТ данных) После выполнения экспорта, мы можем простым методом провести ИМПОРТ этих данных в другую аппликацию. Если нет такой возможности, мы можем попробовать самостоятельно провести процесс конвертирования ZIP в APK. Чтобы язык машин совпадал, необходимо использовать соответствующий конвертатор. Список программ для интересующего Вас конвертирования Вы найдете вверху этой страницы. Конвертатор файла - это транслятор бинарного кода, нивелирующий разницу в коде или проводящий его правильный перевод таким образом, чтобы другая машина или программа поняла его. Для нас, как пользователей, заметным изменением будет только иное расширение файла - APK вместо ZIP. Для машин и программ - это разница между пониманием содержания файла, и отсутствием возможности его прочтения.

Вместо apk качаются zip

Описание ошибки:
Здравствуйте, с недавнего времени большинство файлов вместо apk начали качаться в zip.
Пробовала менять расширение вручную, но иногда при установке выдает синтактическую ошибку.
Приходится перекачивать пока apk не зацепит.

Браузер: Opera 60.0.3255.27 Google Chrome 73.0.3683.103
Скин: Обычный

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

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

Сам как-то не собирал такие ссылки.
Файловым менеджером использую Root Explorer и после открытия такого zip с его помощью идёт запрос как именно открыть файл. В том числе есть вариант установить как программу.

У меня такая же проблема появилась в хроме, попробовал скачать другим браузером (тоже на основе хрома собран) и там скачалось все спокойно. Браузер - FreeU

Купил редми 7а. Скачиваются файлы не apk, а в zip или текст. Может перепрошивка поможет?

(Винда 10-я)проводник - вид - (поставть галочку) расширение имения файла - наводим на файл - правая кнопка мыши - переименовать, меняем .zip на .apk - сохраняем нажав enter, комп спросит типа сохранть в новом формате? соглашаемся, все)) . В проводнике андроида смысл тот же самый.

Несколько раз перекачивать приходится, чтоб расширееие нормальное было. Разве это с браузером проблема?

5 месяцев юзал наушники, почти все было ОК.
Сегодня заметил, что левое ухо стало греться в кейсе и сажать сам кейс в ноль. При этом при работе левое ухо стало хрипеть, причем только тогда когда нет входящего звука, при прослушивании музыки все норм, а вот при разговоре шипение, когда собеседник молчит, именно в левом ухе.

Левый наушник греется и в кейсе и в не его.

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

paul.mitrohin, какое отношение, Ваша проблема к данной теме имеет и к багтрекеру в целом?
Идите сюда - Помогите починить устройство

:blush: сорян, чуваки, ветку перепутал.

5 месяцев юзал наушники, почти все было ОК.
Сегодня заметил, что левое ухо стало греться в кейсе и сажать сам кейс в ноль. При этом при работе левое ухо стало хрипеть, причем только тогда когда нет входящего звука, при прослушивании музыки все норм, а вот при разговоре шипение, когда собеседник молчит, именно в левом ухе.

Левый наушник греется и в кейсе и в не его.

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

короч, смотри:
вот у тебя zip-файл,
нажими на него правой кнопкой мыши и выбери «извлечь всё»,
и у тебя вылезит вот такая вещь как на скрине, ну а там все по порядку :)
ну возможно у тебя так не будет, ну фиг знает его, у меня так короче

__TCAPT__

Вот что нужно:
Компьютер, вин рар или севен зип.Распаковать, кинуть апк на карту и установить.
Проще некуда.

Можно прямиком с помощью смарта поставить с помощью архиватора или хорошего файлового менеджера.

Согласись, как вытащить файл из архива знают все, а если ничегошеньки не знаешь, то смысл брать такой аппарат? Для начала хоть почитал бы чего, инструкции например, факи…

Извини, дети. Да и к тому же, относитесь с пониманием.

я то привык. а как быть тем, у кого пукан бомбит?) адекватности ждать не стоит… а раз дети, можно и у родителей спросить, наверное… или у бртьев/сестер, если есть

Все когда-то в чём-то не разбирались.
Ты вот например и читать когда-то не умел. И что, это значит, что тебя и в школу отправлять не надо было?

Скажи, о великий про андроида, как мне прошить ядро на мой НТС?

Дык напиши чего небудь, чтобы мы убедились что ТЫ не НУБ.

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

__TCAPT__

__TCAPT__


так вот как эту бредятину заставить заработать на андроеде .

Поясняю.
Вид > показывать или скрыть > поставить галочку на расширение имён файлов.Потом из .zip переименовываешь в .apk
Аля готово)


Файл с расширением APK является пакетом файлов для Android и используется для распространения приложений на Android – мобильной операционной системы от Google.

Файлы APK сохраняются в формате ZIP и, как правило, загружаются непосредственно на устройства Android, обычно через магазин Google Play, но их также можно найти на других веб-сайтах.

Часть содержимого, содержащегося в типичном APK-файле, включает в себя файл AndroidManifest.xml, classes.dex и resources.arsc; а также папку META-INF и res.

Как открыть файл APK

Файлы APK могут быть открыты в ряде операционных систем, но они используются, в основном, на устройствах Android.

Набор инструментов внутри APK файла для Android

Откройте файл APK на Android

Чтобы открыть файл APK на вашем Android-устройстве, вам нужно просто загрузить его, как любой другой файл, а затем открыть. Однако? файлы APK, загруженные из-за пределов магазина Google Play, могут быть установлены не сразу из-за ограничений системы безопасности.

Чтобы обойти это ограничение загрузки и установить APK-файлов из неизвестных источников, перейдите в «Настройки» → «Безопасность» (или воспользуйтесь поиском по настройкам) и установите флажок Устанавливать из неизвестных источников . Возможно, вам придётся подтвердить это действие.

Если файл APK не открывается на вашем Android, попробуйте найти его с помощью файлового менеджера, такого как Astro File Manager или ES File Explorer File Manager.

Откройте файл APK на Windows

Вы можете открыть файл APK на ПК, используя Android Studio или BlueStacks. Например, если вы используете BlueStacks, перейдите на вкладку Мои приложения и выберите Установить apk в правом нижнем углу окна.

Откройте файл APK на Mac

ARC Welder – это расширение Google Chrome, предназначенное для тестирования приложений Android для ОС Chrome, но оно работает на любой ОС. Это означает, что вы можете открыть APK на своем компьютере Mac или Windows, если это приложение установлено в браузере Chrome.

Откройте файл APK на iOS

Вы не cможете открывать или устанавливать файлы APK на устройстве iOS (iPhone, iPad и т.д.), поскольку файл построен совершенно иным образом, чем приложения, используемые на этих устройствах, и две платформы несовместимы друг с другом.

Вы также можете открыть файл APK в Windows, MacOS или любой другой настольной операционной системе с помощью инструмента извлечения файлов. Поскольку файлы APK представляют собой просто архивы из нескольких папок и файлов, вы можете разархивировать их с помощью программы, такой как 7-Zip или PeaZip, чтобы увидеть различные компоненты, составляющие приложение.

Однако, это не позволяет вам использовать APK-файл на компьютере. Для этого требуется эмулятор Android (например, BlueStacks), который по существу запускает ОС Android на компьютере.

Как конвертировать файл APK

Хотя программа или служба преобразования файлов обычно необходимы для преобразования файлов одного типа в другой, они не очень полезны при работе с файлами APK. Это связано с тем, что файл APK представляет собой приложение, предназначенное для работы только на определенных устройствах, в отличие от файлов других типов, таких как MP4 или PDF, которые работают на различных платформах.

Вместо этого, если вы хотите преобразовать файл APK в ZIP, вы должны использовать инструкции, описанные выше. Либо откройте файл APK в инструменте извлечения файлов, а затем упакуйте его в ZIP-файл или просто переименуйте файл .APK в .ZIP.

Переименование файла таким образом, это не конвертация файла. И это работает только в случае файлов APK, потому что формат файла уже использует ZIP, но он просто добавляет другое расширение файла (.APK).

Как уже упоминалось выше, вы не можете конвертировать файл APK в IPA для использования на iOS, а также вы не можете конвертировать APK в EXE, чтобы использовать приложение Android в Windows.

Однако, обычно вы можете найти альтернативу iOS, которая работает вместо приложения для Android, которое вы хотите установить на свой iPhone или iPad. Большинство разработчиков имеют одинаковое приложение, доступное на обеих платформах (как APK для Android, так и IPA для iOS).

Что касается конвертера APK в EXE, просто установите Windows APK и затем используйте его, чтобы открыть приложение Android на вашем компьютере.

Вы можете преобразовать файл APK в BAR для использования с устройством BlackBerry, просто загрузив файл APK в онлайн-конвертер Good e-Reader APK в BAR. Подождите, пока преобразование закончится, а затем загрузите файл BAR обратно на компьютер.

Читайте также: