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 028 thoughts on “Android: как установить два одинаковых приложения на один телефон”

  1. Запаковал файл с изменениями (все в точности по Вашей инструкции) , но выдаёт «Приложение не установлено».
    Пожалуйста посмотрите где ошибка, а ранее Благодарен.
    http://gfile.ru/a2DNN

    1. Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

      То есть ты забыл подписать собранное приложение сертификатом. Читай самый конец раздела перед «Возможными проблемами», ссылки на приложения для подписи там даны.

    1. Тебе точно нужна копия какого-то приложения? Если да, то дай ссылку на него.

  2. KodopiK Доброго времени суток. Хотел сделать у вас заказ на копию MobileTaxi так как те версии которые тут не рабочие

    1. Пишет не загруженно, если можно повторите сылку или бросте на почту

    2. Выношу вам благодарочку, все заработало. На неделе скину на яндекс гонорар.

  3. Здрастуйте, можно копию приложения Вконтакте v3.3.0 ???? Заранее спасибо)

    1. Нужна ссылка на приложение, как и было сказано в правилах заказа. В Google Play версия 3.3.3 на данный момент.

  4. Здравствуйте. У меня опять проблема с драгом…На этот раз я вроде понял что и как, переименовал в манифесте как надо, создал папку с активити…В общем все как надо, но вот беда не пакует обратно. Делать не прошу, но не могли бы вы указать мне, что еще нужно делать, чтобы она запаковывалась обратно.
    Вот ссылка на архив http://www.ex.ua/273619072210 — там расспакованая и измененная мною версия.

    Заранее благодарен за совет и за помощь.

    1. Советую попробовать вставлять дополнение «gold», которое ты добавляешь к имени package, не в начало, а в конец. Должно получиться так:

      package="com.creativemobile.DragRacing.gold"

      Если вкратце, то внутри файлов *.smali тоже могут быть указаны относительные пути к различным ресурсам, и в результате придётся менять все эти пути. А это трудно, ибо тысячи их™. Попробуй в конец, а если не получится, напиши, разберёмся.

    2. Антон ну скорей всего причина того что игра вылетает и не меняет название именно в смали. Но ведь вы же не могли сидеть и переименовывать эти тысячи файлов? Должен же быть какой то иной способ. Я уже замучался копаться в тех 2 версиях пытаясь найти что то, перепробовал разные варианты. Вот опять та же ссылка http://www.ex.ua/442327934212 Если не трудно, гляньте пожалуйста.

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

      Но уж если нужно, то я к посту в самом конце сделал приписку. Если вкратце, то вот:
      https://github.com/kodopik/Copyroid

      Если навыки работы в командной строке UNIX есть, то пригодится.

    4. Да, и ещё: как и сказано в «Проблеме 2», нужно в activity дописывать не новое имя package, а старое. То есть, должно быть не

      &lt;activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name=".billing.gutils.FortumoBilling" /&gt;

      и не

      &lt;activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="gold.com.creativemobile.DragRacing.billing.gutils.FortumoBilling" /&gt;

      и не

      &lt;activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.creativemobile.DragRacing.gold.billing.gutils.FortumoBilling" /&gt;

      а

      &lt;activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.creativemobile.DragRacing.billing.gutils.FortumoBilling" /&gt;
    5. Я как раз и использую эту программу. Вчера она не хотела паковать с gold, сегодня же запаковала все нормально и не выдала никаких ошибок. Но название не поменялось, когда пытался поставить на телефоне, но и про замену тоже ничего не сказало — в итоге сказало приложение не установлено. Кстати, с обычными путями к активити без gold она выдала мне ошибки, но все равно запаковала. Уже не знаю как с ней бороться…
      Вот тут последняя версия с голд в путях к активити -http://www.ex.ua/442327934212 . Посмотрите пожалуйста, и если не трудно напишите ошибки которые я сделал вкратце.

    6. Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

      Ты забыл подписать получившийся файл.

    7. Название не поменялось, но установка пошла без замены. Но вылетает сразу же после запуска. Попробую еще поковыряться, если не получиться опять напишу. Уж извините за частое беспокойство ;-)

    8. Я как раз и использую эту программу. Вчера она не хотела паковать с gold, сегодня же запаковала все нормально и не выдала никаких ошибок. Но название не поменялось, когда пытался поставить на телефоне, но и про замену тоже ничего не сказало — в итоге сказало приложение не установлено. Кстати, с обычными путями к активити без gold она выдала мне ошибки, но все равно запаковала. Уже не знаю как с ней бороться…
      Вот тут последняя версия с голд в путях к активити — http://www.ex.ua/442327934212 . Посмотрите пожалуйста, и если не трудно напишите ошибки которые я сделал вкратце.

  5. Приветствую. Я к тебе по одному интересному вопросу,касающегося Третьего Мира 3Д.
    Ты вроде бы толковый в этих делах человек, не можешь подсказать,как вскрыть ресурсы игры? Мне нужно узнать,как вытащить от туда музыку и графические файлы зданий… Я пробовал,но увы. Можешь помочь?

    1. Да нет,ты не понял меня чуть чуть. Я уже через смарт ее распаковал. А вот как мне их вытащить. Они лежат в каких то паках,как в ZIP,но чуть чуть другое. Типа .SO,и др

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

    1. Спасибо за труд, но к сожалению выкидывает(

    1. Написано же ссылку кидай

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

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