Copyroid

Android: как установить два одинаковых приложения на один телефон

Стол заказов — в конце статьи.

Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение package в файле AndroidManifest.xml, находящемся внутри apk-билда.
Например, имеем:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num"
xmlns:android="http://schemas.android.com/apk/res/android">

Для того, чтобы установить это приложение ещё раз, нужно сделать примерно следующее:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num.test"
xmlns:android="http://schemas.android.com/apk/res/android">

После такого изменения заново собранный apk-файл придётся подписать сертификатом. Информацию о том, как распаковывать, запаковывать и подписывать apk-файлы, можно найти в любом поисковике по запросу SmartApkTool. Вот ссылка на приложение: v.2.2 (распакуйте содержимое архива в пустую директорию). А вот более правильный способ работы с apk-файлами: Использование apktool.

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

Под катом описаны некоторые встречающиеся проблемы, а также находится Стол Заказов.

ВОЗМОЖНЫЕ ПРОБЛЕМЫ

Проблема 1

Если рядом с AndroidManifest.xml не создаётся файл apktool.yml, то в домашней директории пользователя найдите папку apktool\framework и удалите из неё файл 1.apk. (Совет с 4pda.ru, спасибо Alex Boroda.)

Проблема 2

Иногда обычная смена имени package не помогает. Чаще всего это бывает в случаях, когда в файле AndroidManifest.xml прописаны относительные пути к различным активити. Например:

<activity
android:label="E-NUM"
android:name=".SplashScreenActivity"
android:screenOrientation="portrait">

В такой ситуации нужно прописать полный путь ко всем активити, то есть:

<activity
android:label="E-NUM"
android:name="ru.e_num.SplashScreenActivity"
android:screenOrientation="portrait">

Обратите внимание, что прописывать нужно не новое имя package (то есть в нашем случае не ru.e_num.test), а реальный путь к активити в директории smali распакованного apk-файла. Естественно, в общем случае путь совпадает со старым именем package (в нашем случае это ru.e_num).

Проблема 3

Если в файле AndroidManifest.xml есть тег provider, то в его атрибуте authorities нужно также дописать символы, которые мы использовали в качестве дополнения к параметру package (в нашем случае это .test). Например, было:

<provider
android:authorities="com.someapp.android"
android:name="com.someapp.android">

Стало:

<provider
android:authorities="com.someapp.android.test"
android:name="com.someapp.android">

Как и в проблеме 2, значение атрибута name менять не надо.

Стол заказов

Я снова принимаю заказы! Если вы прочитали инструкцию, но у вас с ней возникли какие-то сложности, пишите в комментариях ссылку на приложение. Это обязательно! Искать «вайбер» или «клаш оф кланс» я не буду. Одну копию я делаю бесплатно. Результат не гарантирую — тестируйте. Если нужно больше копий, или есть какие-либо нестандартные пожелания — пишите в обратку, договоримся. Если хотите отблагодарить пинтой пива и за одну копию, то кошельки здесь.

PS. Пользователи *NIX-систем могут попробовать сделать копии приложений автоматически с помощью этого несложного bash-скрипта:
https://github.com/kodopik/Copyroid
Пулл-реквесты приветствуются!

2 027 thoughts on “Android: как установить два одинаковых приложения на один телефон”

    1. Она весит около90 метров, тут всего 3 кэш как докачивать? Само приложение не докачивает.
      Установилось все норм

    2. Насчёт этого ничего сказать не могу. Я делаю только копии.

    3. Ты с маркета скачивал? Если да то у тебя должен быть кэш, скинь его. если нет то кэш нужно докачивать самому, скинь ссылку от куда брал я докачаю сам. С игры наверно через вафлю только качать будет а комп сломан вайфая нету

    4. С Маркета. Я скачивал только приложение и ни разу его не запускал. Я просто достал с телефона apk-файл, сделал копию и отправил тебе. Собственно, только этим я и занимаюсь. Никаких кэшей я не трогаю. Извини, но в правилах заказов всё сказано. Ты можешь попытаться сделать копию сам, как тебе нужно, и тогда я, конечно же, помогу тебе советом.

    5. Кэш эта сама игра со всеми файлами игры, музыкой звуками и прочее, а ты мне скинул только установку. если ты скачивал с маркета значит кэш у тебя должен быть посмотри в телефоне его путь: android/obb/и там должна быть папка com.apexpoint.feudals2 ну или название поменялось изза копии, вообщем скинь ее мне она должна весить около 85мб. Потому что я не могу открыть игру, высвечиваетсячто требует кэш, без него не запустить т.к. кэш и есть сама игра

    6. Я знаю, что такое кэш. Но повторю ещё раз: я этим не занимаюсь. Копирование затрагивает только apk. Если в копии неверный путь к кэшу, я не буду глубоко лезть в приложение и менять его. Ты можешь сделать это сам, если посчитаешь нужным. Я этим не занимаюсь.

    7. Блин ман ты меня так и не понял! Нахрен мне нужна копия если я ее открыть не могу. Ты мне кэш не скидываешь а где его скачать я хз, я понимаю что ты занимаешься копиями но она тупо установлена и все. То же самое накачать колесо для машины которой нет!

    8. Ничем не могу помочь. Я давно удалил игру, а кроме того, ни разу её на запускал, так что кэша у меня тоже нет. Но даже если бы и был, я бы не стал ничего пересылать, т.к. делаю только то, что указано в правилах заказов.

  1. Вот ссылкаhttps://play.google.com/store/apps/details?id=ru.mail.games.android.JungleHeat&hl=ru&referrer=utm_source%3Dgoogle%26utm_medium%3Dorganic%26utm_term%3Djungle+heat обращаюсь к вам не потому что руки кривые .а потому у что нету времени копаться самому

    1. Ок одблагодарю материально.
      И кстати если ты вызвался сам помогать тут и до сих пор это делаешь то я так понимаю времени у тебя прилично

    2. Ну уж точно у меня его нет для подобных обсуждений. Я дал инструкцию, а всё остальное — моя добрая воля (хотя согласно правилам, я вообще не даю никаких гарантий).

      Благодарность — на твоё усмотрение. Просто показалось достаточно странным такое предисловие. На оправдание похоже.

    1. К сожалению, боюсь, не получится. Две проблемы:
      1. Игра с кэшем, а я клонирую только apk-файлы.
      2. У них там накосячено с именем package и путями внутри файла.

    1. С удовольствием.
      Вот параметр package в оригинале:

      package="com.evos"

      А вот в копии:

      package="ru.e_num.com.evos.KoPoHa"

      Зачем было добавлено что-то вроде ru.e_num в начале, я не понимаю. Естественно, это искажает все пути.

    2. Значит должно тогда быть так ?
      package=»com.evos» — оригинал
      package=»com.evos.KoPoHa» -копия ( если так то неработает :()

    3. Именно так и должно быть. А не работать может ещё по какой-то причине. Например, по одной из тех, которые описаны в «Проблемах».

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

    5. Помогите пожалуйста сделать, мне очень нужно :(

    6. не работает
      пишет установка а потом сразу приложение не установлено

    7. А ты пришли, что получилось (не тот очевидно неправильный вариант, что раньше присылал, а новую попытку). Я попробую установить и скажу, в чём ошибка.

    1. Тогда не получится. Ошибка при запуске такая:

      W/NotificationService( 661): Object died trying to show notification android.app.ITransientNotification$Stub$Proxy@41c1e088 in package copy.com.gameloft.android.ANMP.GloftIAHM

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *