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. Попробуйте! Инструкция дана. А если это заказ, то мне нужны ссылки (пункт 1).

    1. Может, я немного старомоден, но хотелось бы увидеть слово «пожалуйста» ;) Ну а если серьёзно, то ты забыл указать ссылку (п.1 правил оформления заказа).

    1. Привет! У меня уже была готова эта версия программы:
      http://dfiles.ru/files/j1sjhnm6z

      Пользуйся.
      А если интересует, что у тебя не получилось, то можешь прислать собранный тобою билд (apk-файл): я запущу его и посмотрю, в чём было дело.
      Удачи!

    2. Установил твою версию, на телефон стала, но при запуске програмы пишет «В приложении MobileTaxiCopy» произошла ошибка». Телефон на 4-м Андройде
      В своем билде я изменил package=»com.evos» на package=»com.evos.text».После собрал, подписал. Вот файл
      https://yadi.sk/d/WGmeGM7wbotYP

    3. Спасибо, все работает !!! У тебя есть WMZ? Хочу отблагодарить.
      И еще вопрос,как ты изменил ярлык приложения? Где он храниться ?

    4. Да, есть: Z931306397599. Заранее спасибо.

      Ярлык — это заглавная иконка, которая отображается в списке приложений? Тогда в папке

      <pre>res</pre>

      лежат подпапки, начинающиеся со слова

      <pre>drawable</pre>

      . В каждой из них есть иконка для соответствующего разрешения экрана. Обычно они называются

      <pre>icon.png</pre>

      , но в твоём приложении это

      <pre>ic_launch.png</pre>

      . (Если на будущее пригодится, то посмотреть, как называется иконка, можно в файле

      <pre>AndroidManifest.xml</pre>

      в строке

      <pre>&lt;application android:icon="вот_тут" …</pre>

      .)

      PS. Для изменения иконки apk-файл придётся снова распаковать, а после изменения — собрать и подписать.

    5. Проверь кошелек, спасибо !

      Видемо у меня с Java-ой что то не то, тк запуская SmartAPKTool пишет сообщение «apktool не полностью установлен на Вашем компьютере или не установлен вообще ……». Нажимая ОК, приложение запускается ! Кидаю файл в папку sing и запускаю подписку, выдает сообщение что все ок — ПОДПИСАЛ… но мне кажется что нет.

      https://yadi.sk/d/gZ-FkvM-bqnVy
      Вот собраный файл с измененными иконками и полями в
      <manifest —- package="copyy.com.evos" и
      <provider—- android:authorities="copyy.com.robert.maps.SuggestionProvider", подпиши плиз его.

      Спасибо

    6. Черт, так и не хочет устанавливаться ! Не глянешь в манифест плиз, что я там не правильно сделал … если конечно в этом проблема

    7. Вот файл на основе моей копии, но с твоей зелёной иконкой:

      http://dfiles.ru/files/mcnj5mswa

      Если интересно, вот какие ошибки были у тебя:

      1) Насчёт «Проблемы 3»: у тебя в манифесте было 2 строчки с authorities, а заменил ты только одну.

      2) Лучше делать как в статье: добавлять текст в конец package, а не в начало. Технически разницы никакой нет, но во втором случае придётся менять все пути внутри программы. (Я это делаю лишь потому, что мне так проще в моей операционной системе Linux; а в Windows, и тем более вручную, это адский труд. Поэтому, повторюсь, лучше делать так, как написано в статье.)

    8. Я переделал версию 1.4.43 (ту, которую ты просил сделать изначально). Там была опечатка у меня, так что прошу прощения за лишнюю трату твоего времени. Вот копия:
      http://dfiles.ru/files/nxhnkzosh

      Что касается твоей копии, то там 2 ошибки:
      1. Ты забыл подписать apk-файл сертификатом (об этом написано в статье).
      2. Ты не учёл «Проблему 3».

    1. Извини, не могу. Уже бывало раньше (по другому поводу, правда), что сделаешь, а потом люди начинают просить третью, пятую, десятую. И ведь не откажешь: «Ему-то ты делал».

      PS. Если бы ты лично написал, а не в комменты, то другое дело ;)

    2. Извини за мою тупость. Но как написать тебе в личку.)))))
      08.10.2014 12:43 пользователь «Disqus» написал:

    3. К тебе приходило сообщение от меня в личку или нет?
      08.10.2014 22:07 пользователь «Disqus» написал:

  1. Доброго времени суток, уважаемые.
    Застопорился в самом начале. Не запускается приложение apktool.exe. Ни от имени администратора, ни в совместимости с более старыми версиями Windows.
    Собирался сделать клона для данного приложения: http://4pda.ru/forum/dl/post/5169663/com.rookiestudio.perfectviewer.ver.2.3.4.1.build.266.apk

    1. Премного Вам благодарен! Все работает прекраснейшим образом)

    1. работает, но закладка зоны и заявки не активны( может что то подкрутить?

    2. Если я правильно помню, для того чтобы увидеть эти вкладки, нужно войти в аккаунт. А я не знаю, где брать позывной и пароль. Поэтому мне проблематично протестировать.

    3. Все могу предоставить и благодарность за труд конечно же. Кинь почту.

    1. Извини, с этой не получается. Что-то она от Фейсбука хочет, чего копия сделать не может:

      <pre>E/ActivityThread( 9174): Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider</pre>

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

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