Cómo implementar la "doble apertura" del mismo programa apk
1. Acerca de la apertura dual del programa apk
Revisé mi correo electrónico hoy y vi que alguien me envió un correo electrónico preguntándome cómo abrir Alibaba Wangwang en Android. Después de mi verificación externa, parece que el mismo programa apk no se puede ejecutar en varias instancias.
Es decir, el mismo programa no se puede abrir dos veces al mismo tiempo y el mismo programa no se puede instalar dos veces, lo que es aún más sofocante; Posibilidad de doble apertura. La única solución que se me ocurre es cambiar la apk para que Android no reconozca las versiones original y modificada como el mismo programa. Entonces, ¿cuál es la clave? ¿Qué hace que Android piense que estos dos programas son iguales o diferentes? Hice una búsqueda rápida en Internet pero no encontré nada. Sin embargo, noté un problema cuando estaba jugando con él antes. En la carpeta /data/data
, habrá datos de los programas instalados. En cada carpeta está el nombre del paquete del programa. En otras palabras, la razón por la que Android puede saber si dos programas son iguales o diferentes es mirar los nombres de sus paquetes
(PD: el paquete es un concepto de programación en Java). (PD: el paquete es un concepto de programación en Java).
Según esta idea, para lograr la "apertura dual" del mismo programa apk, podemos cambiar el "paquete" del programa original por su "paquete". Por ejemplo, el paquete original es com.z4mod.z4root
es el nombre del paquete del programa z4root, luego podemos cambiarlo a net.z4mod.z4root
De esta manera, la versión original Si no están en el mismo paquete de software que la versión modificada, el sistema Android pensará que no están relacionados entre sí y que son dos programas, y luego podremos instalarlos al mismo tiempo. De esta manera, puede instalar estos dos programas al mismo tiempo y ejecutarlos al mismo tiempo para lograr una "apertura dual" (por supuesto, esto es una apertura pseudo-dual).
Está bien, usaré el SD2Flash.apk que acabo de lanzar para demostrar esta función de "apertura dual" (en cuanto a si quieres conectar varios QQ, Wangwang, dije que no profundizaré en "doble apertura"). -Pregunta "abierta", así que te remitiré a mi artículo relacionado para que te inspires). (En cuanto a si desea conectarse a varios QQ, Wangwang, dije que no profundizaré en el tema de la "doble apertura". Puede resultar esclarecedor consultar mi artículo). Primero enviaré una foto.
Algunas personas dicen que los nombres de los dos SD2Flash son diferentes, por lo que es imposible escribir dos programas para sacudir a la gente. De hecho, este definitivamente no es el caso. El nombre de la tarea también se puede cambiar directamente, pero simplemente cambiar el nombre no puede lograr una "doble apertura". A continuación se muestra un tutorial de operación detallado.
2. Proceso de modificación (solo como referencia)
Aquí uso mi SD2Flash como fuente de modificación. Este programa es relativamente simple, pero me da pereza cuando los edificios altos se elevan desde el. Aquí sentamos las bases. Otros programas pueden ser más complicados, como contener varios paquetes, y será problemático modificarlos:
1. Utilice Apktool para descompilar SD2Flash.apk, suponiendo que sea el directorio de descompilación. es SD2Flash
2 Edite SD2Flash\AndroidManifest.xml y cambie:
package="mandarava.android"
a:
. package="mandaravb.android "
La razón principal de este cambio es hacer que el nombre del paquete de la versión modificada del programa sea inconsistente con el nombre del paquete del programa original. El sistema Android se considera dos. programas, de modo que las versiones original y modificada se puedan instalar al mismo tiempo "Doble apertura".
(Al cambiar el nombre del paquete de software, tenga en cuenta que solo necesita cambiar ligeramente las letras y no agregar ni eliminar letras a voluntad. Esto es especialmente adecuado para la modificación binaria de .so)
3 Editar SD2Flash\res\values\strings .gt;SD2Flash
Cambiar a: