Клонировать приложение для Android программно
Есть некоторые приложения для Android, которые позволяют пользователю клонировать существующее приложение на телефоне. Например: http://fixoptimize.com/app-cloner Можете ли вы объяснить, как работают эти клонеры? Спасибо.
2 ответа
Решение
- Изменить имя пакета в
AndroidManifest.xml
и переподписать приложение. Обратите внимание, что XML является двоичным, а не текст вapk
пакет. Android идентифицирует различные приложения по имени пакета и при изменении имени пакета, приложение будет считаться "новым". - Хотя простой подход может работать или не работать (например, приложение предполагает, что имя его пакета является постоянным, или проверяет свою подпись), во многих случаях следует применять различные другие изменения, включая также изменение имени пакета java, отключение проверки подписи, изменение строки литералы, которые являются предполагаемыми путями, содержащими имя пакета. Все это (вероятно) потребует декомпиляции и разборки
dex
и дажеnative
коды, что не только жестко, но и незаконно. - Современный способ: Sandboxify приложение. Будет создана среда песочницы, в рамках которой приложение, которое "клонируется", фактически не клонируется и остается неизменным. Песочница будет перехватывать все коммуникации между клонированным приложением и системой, пользователем и другими приложениями, поэтому
transparent
и стабильный. Ни приложение, ни пользователь не заметят, что приложение находится в "песочнице". И это, скорее всего, устраняет юридические проблемы, если эмулятор также не объявлен вне закона. На github есть приложения с песочницей с открытым исходным кодом, которые вы можете изучить и скопировать.
- Приложение параллельного пространства создает песочницу в своем собственном приложении для размещения клонированных приложений.
- Например, приложение Parallel Space «Dual Apps» создаст песочницу для нашего приложения CloneAppChecker как /data/user/0/com.dual.space.parallel.app.clone.multiple/virtual/data/user/0/com.example.cloneappchecker/файлы
- Нам нужно проверить песочницу в нашем приложении, чтобы убедиться, что приложение имеет собственную песочницу (/data/user/0/com.example.cloneappchecker/files) или создано приложением Parallel Space.
- Следовательно, мы можем ограничить параллельное приложение, и исходное приложение будет работать как есть. 5. Я проверил от 15 до 16 приложений параллельного пространства, и все они ведут себя одинаково.