Secciones del sitio
Selección del editor:
- Crear subtítulos en Subtitle Workshop
- Terapia con láser (terapia con láser) Dispositivo terapéutico con láser "Matrix" ¿Qué trata el dispositivo de terapia con láser Matrix?
- Suscripciones fraudulentas y fraude en suscriptores de Telegram para el canal de Telegram
- Especialidad "Tecnologías de la infocomunicación y sistemas de comunicación" (licenciatura) Tecnologías de la infocomunicación y sistemas de comunicación 11
- Odnoklassniki: cómo abrir mi página
- Cómo enviar lecturas de medidores de agua en el portal de servicios del estado de Kazán Lecturas de medidores RT
- Salida de parte de un sprite html de imagen
- Configuración de detalles adicionales e información adicional para la nomenclatura 1c detalles adicionales y diferencias de información
- Qué hacer cuando no hay datos de registro
- Solicitud de selección de datos (fórmulas) en MS EXCEL Selección de Excel por macro de condición
Publicidad
Cómo utilizar la función de firma de aplicaciones en Google Play. Cómo firmar su aplicación móvil híbrida para colocarla en Google Play Cómo firmar un archivo apk |
Gracias a la función de firma de aplicaciones en Google Play Google puede administrar la clave de firma de su aplicación, así como proteger esa clave y usarla para firmar sus archivos APK para su distribución. Este método de almacenamiento lo protegerá en caso de que la clave se pierda o sea pirateada. ¡Importante! Para utilizar paquetes de aplicaciones de Android (el formato de publicación de aplicaciones recomendado), debes inscribirte en el programa de firma de aplicaciones de Google Play antes de cargar el paquete de aplicaciones en Play Console. El registro está abierto a titulares de cuentas y usuarios con permisos de gestión de producción global que hayan aceptado los Términos de servicio. Solo puedes registrar una aplicación a la vez con el Programa de firma de aplicaciones de Google Play. Principios de trabajoCuando utiliza la función de firma de aplicaciones de Google Play, sus claves se almacenan en la misma infraestructura que almacena las claves de Google y están protegidas por un servicio de administración de claves dedicado. Información detallada La infraestructura técnica de Google se puede encontrar en la documentación de Google Cloud Security. Las aplicaciones de Android están firmadas con una clave privada. Cada una de estas claves está asociada a un certificado público, con el que los dispositivos y servicios pueden verificar la seguridad de las aplicaciones y sus actualizaciones. Solo se instalan en los dispositivos aquellas actualizaciones cuya firma coincida con la firma. aplicación instalada. Permitir que Google administre la clave de firma de su aplicación hará que el proceso sea más seguro. Nota. El uso de la función de firma de aplicaciones de Google Play es opcional. Puede descargar APK y administrar sus propias claves sin utilizar App Bundles. Sin embargo, si pierde el acceso al almacén de claves o éste se ve comprometido, no podrá actualizar su aplicación y tendrá que volver a publicarla con un nombre de paquete diferente. Descripciones de llaves, objetos y herramientas.
Puede descargar archivos APK firmados con la clave de firma de la aplicación original antes o después de firmar la aplicación en Google Play. Si estás migrando a Android App Bundles, puedes probarlos en versiones de prueba y usar APK existentes en versiones de producción. Así es como funciona:
Cómo registrarse en el programa de firma de aplicaciones de Google PlayNuevas aplicacionesPaso 1: crea una clave de descarga
Paso 2: preparar el lanzamiento
Nota. Para continuar, debe aceptar los Términos de uso e inscribirse en el Programa de firma de aplicaciones. Paso 3: registre la clave de firma de su aplicación con sus proveedores de APISi su aplicación utiliza una API, para autenticarse probablemente necesitará registrar un certificado de clave que Google utiliza para firmar su aplicación. Para buscar un certificado:
Paso 1: Regístrese en el programa de firma de aplicaciones de Google Play
Paso 2: envíe la clave original a Google y cree una clave de descarga
Paso 4: firme la próxima actualización de su aplicación con su clave de descargaLas actualizaciones de aplicaciones publicadas deben firmarse con una clave de descarga. Cómo crear una clave de descarga y actualizar almacenes de clavesPuedes crear una clave de descarga cuando te registras en el Programa de firma de aplicaciones de Google Play o puedes generar una más adelante en el Gestión de la liberación > Firmas de aplicaciones. Para crear una clave de descarga, siga estos pasos:
Cuando se le solicite durante el proceso de emisión, descargue el certificado para registrarlo en Google. Si está utilizando una clave de descarga:
Una vez que haya creado su clave de descarga, verifique y actualice las siguientes ubicaciones si es necesario:
Cómo actualizar la clave de firma para instalaciones de nuevas aplicacionesEn algunos casos, es posible que pueda solicitar una actualización de la clave de firma de la aplicación. La nueva clave se utilizará para firmar nuevas instalaciones y actualizaciones de la aplicación, y la desactualizada se utilizará para actualizar las versiones firmadas que ya estén instaladas por los usuarios. La clave de firma solo se puede actualizar una vez para cada aplicación. En el improbable caso de que utilice la misma clave de firma para que varias aplicaciones las ejecuten en el mismo proceso, la clave no se podrá actualizar. Debe solicitar una actualización de la clave de firma de la aplicación en los siguientes casos:
Nota. La solicitud para actualizar la clave de firma de aplicaciones en Play Console no está relacionada con el reemplazo de claves en Android P y versiones posteriores. Actualmente, Google Play no admite este reemplazo de clave. Notas importantes sobre la actualización de clavesAntes de solicitar una actualización clave, es importante comprender qué cambios implicará.
Qué hacer si la clave se pierde o es pirateadaSi ha perdido el acceso a llave privada descargas o ha sido pirateado y pregúntale al propietario de tu cuenta. Al comunicarse con el soporte, el propietario de la cuenta debe adjuntar el archivo upload_certificate.pem. Cuando el equipo de soporte registre la nueva clave de descarga, recibirá correo electrónico y luego podrá actualizar sus almacenes de claves y registrar su clave con los proveedores de API. ¡Importante! Restablecer la clave de descarga no afecta la clave de firma de la aplicación, que Google Play utiliza para firmar archivos APK antes de enviarlos a los usuarios. ¿Fue útil esta información? ¿Cómo se puede mejorar este artículo? La utilidad keytool descrita en la sección anterior crea un certificado digital, que es uno de los parámetros de la herramienta jarsigner. Otro parámetro es el paquete de Android que debe firmarse. Para generar un paquete de Android, debe utilizar la utilidad Exportar paquete de aplicaciones sin firmar del módulo ADT para Eclipse. Para llamar a esta utilidad, deberá hacer clic derecho en el proyecto de Android en Eclipse, seleccionar Menú de contexto Herramientas de Android y luego seleccione Exportar paquete de aplicaciones sin firmar. Una vez iniciada, esta utilidad genera un archivo .apk que no está firmado con un certificado de depuración. Para probar esto, ejecute la utilidad Exportar paquete de aplicaciones sin firmar en uno de sus proyectos de Android y guarde el archivo .apk generado en algún lugar. EN en este ejemplo Usaremos la carpeta del almacén de claves creada anteriormente y generaremos un archivo .apk llamado C:\android\release\myappraw.apk. Ahora que tenemos el archivo .apk y el elemento del almacén de claves, podemos ejecutar la herramienta jarsigner para firmar el archivo .apk (ver 14.2). En este caso, se deben especificar las rutas completas para el archivo de almacén de claves y el archivo .apk. Para firmar un archivo .apk, se envía a la utilidad jarsigner la ubicación del almacén de claves, la contraseña del almacén de claves, la contraseña llave secreta, ruta al archivo .apk y alias del elemento del almacén de claves. Luego, Jarsigner firma el archivo .apk utilizando el certificado digital del elemento del almacén de claves. Para ejecutar la utilidad jarsigner, debe abrir una ventana de herramientas (consulte el Capítulo 2) o abrir una ventana de símbolo del sistema o una ventana de terminal y abrir la carpeta bin en el directorio. JDK (si esta carpeta no está especificada en la variable Entornos de RUTA). Por razones de seguridad, es mejor no pasar contraseñas como argumentos de comando, en cuyo caso jarsigner le solicitará las contraseñas en tiempo de ejecución. En la Fig. La Figura 14.3 muestra un ejemplo de cómo llamar a la utilidad jarsigner. Quizás hayas notado que en la Fig. 14.3 la utilidad jarsigner solo solicita una contraseña. Esto se debe a que no se solicita keypass si storepass y keypass son iguales. Estrictamente hablando, el comando jarsigner en e 14.2 solo necesita especificar la contraseña -keypass cuando es diferente de la contraseña -storepass. Como se mencionó anteriormente, Android requiere que su aplicación esté firmada digitalmente para evitar que programadores malintencionados reemplacen su aplicación con su propia versión. Para hacer esto, Android requiere que las actualizaciones de la aplicación estén firmadas con la misma firma que la aplicación original. Si una aplicación está firmada con una firma diferente, Android las considera aplicaciones diferentes. Por lo tanto, le recordamos una vez más: maneje el archivo del almacén de claves con cuidado para que esté disponible para usted más adelante cuando necesite publicar una actualización de la aplicación. Has trabajado muchos días (y tal vez noches) y aquí tienes tu primer híbrido. aplicación movil listo. Es bastante estable, la mayoría de los errores críticos están solucionados. Quedan pequeños, pero recordando que el perfeccionismo es malo, tomas la decisión decidida de publicar la aplicación. Un requisito previo para ello es la presencia de un archivo APK firmado. como firmar archivo apk, aprenderá de este artículo. Un pequeño retiroCuando mi proyecto favorito estaba a punto de lanzarse, comencé a buscar información sobre cómo publicar una aplicación de forma rápida y sencilla. Muchas de las instrucciones encontradas parecían sencillas. Elegí las instrucciones de los autores del marco Ionic, sobre el cual se desarrolló la aplicación. No todo salió bien la primera vez; hay varias peculiaridades. El proceso de firma se describe en este artículo, puntos importantes especialmente resaltado.Datos inicialesSupongo que tiene todo configurado para desarrollar aplicaciones móviles híbridas utilizando Apache Cordova. Debe ser instalado:
IrPrimero necesita crear una versión de lanzamiento de su aplicación. Pero antes de eso, asegurémonos de eliminar todos los complementos innecesarios. Por ejemplo, no necesitamos un complemento que envíe información de depuración a la consola. Borrémoslo:$ complemento cordova rm consola-plugin-cordova $ cordova build --liberar android Plataformas/android/build/outputs/apk Para firmar un archivo necesita un certificado. Creémoslo usando la utilidad. herramienta clave que está incluido en el JDK: $ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000 El valor del parámetro -alias debe recordarse o, mejor aún, anotarse. En el ejemplo anterior, es igual a lcf (basado en las primeras letras del nombre de la aplicación Loyal Client Free). No daré detalles aquí, si te interesa escribe en los comentarios, te lo cuento con más detalle. -keystore hola-mundo.keystore -alias hola-mundo -keystore clima-app.keystore -alias clima-aplicación -keystore todo.keystore -alias todo * Debes firmar la aplicación cada vez que se publican actualizaciones. Utilidad herramienta clave hace una serie de preguntas. Serán 8 en total. Para tener una idea de las preguntas y respuestas aproximadas de antemano, se detallan todas a continuación, debajo del spoiler. Preguntas clave sobre herramientas y ejemplos de respuestas 1. Ingrese la contraseña del almacén de claves: 2. Vuelva a ingresar la nueva contraseña: 3. ¿Cuál es tu nombre y apellido? 4. ¿Cuál es el nombre de su unidad organizativa? 5. ¿Cuál es el nombre de su organización? 6. ¿Cómo se llama su Ciudad o Localidad? 7. ¿Cómo se llama su Estado o Provincia? 8. ¿Cuál es el código de país de dos letras para esta unidad? : y Confirma si todo está correcto o presiona Enter para ingresar nuevamente. Al final, aparecerá un mensaje indicando que la clave se generó exitosamente. Se le pedirá que establezca una contraseña para la clave privada (si desea dejarla igual que para el certificado, presione Entrar): Generación de un par de claves RSA de 2 048 bits y un certificado autofirmado (SHA256withRSA) con una validez de 10 000 días para: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Ingresar clave contraseña para Importante El archivo creado debe guardarse en un lugar seguro. Si está utilizando un repositorio privado, entonces el archivo se puede confirmar junto con códigos fuente aplicaciones. En general, es mejor almacenar los certificados por separado. Si pierde el certificado, no podrá emitir actualizaciones de la aplicación. Quedan dos pasos y tendrás un archivo APK listo para su distribución. Pasemos a la firma. Para firmar su archivo apk, use la utilidad jarsigner, que también está incluido en el JDK. $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf Finalmente, para optimizar el archivo apk, usaremos la utilidad zipalign: $ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk Importante. Utilidad zipalign Es parte de las herramientas del SDK de Android y se puede encontrar aquí: ConclusiónAhora tiene un archivo apk listo para distribuir que puede cargar en Google Play. Complete la descripción, determine la calificación de su aplicación y no dude en hacer clic en "Publicar".A veces, algunas aplicaciones en Android no se adaptan de alguna manera al usuario. Un ejemplo es la publicidad intrusiva. Y también sucede que el programa es bueno para todos, pero la traducción es torcida o está completamente ausente. O, por ejemplo, el programa es una prueba, pero obtienes versión completa no hay posibilidad. ¿Cómo cambiar la situación? IntroducciónEn este artículo hablaremos de cómo desensamblar un paquete APK con una aplicación, mirar su estructura interna, desensamblar y descompilar el bytecode, y también intentaremos realizar varios cambios en las aplicaciones que pueden traernos un beneficio u otro. Para hacer todo esto usted mismo, necesitará al menos conocimientos básicos del lenguaje Java, en el que están escritas las aplicaciones de Android, y del lenguaje XML, que se utiliza en todas partes en Android, desde la descripción de la aplicación en sí y sus derechos de acceso hasta el almacenamiento de cadenas que se mostrará en la pantalla. También necesitará la capacidad de utilizar software de consola especializado. Entonces, ¿qué es un paquete APK en el que se distribuye absolutamente todo el software de Android? Descompilación de aplicacionesEn este artículo, solo trabajamos con código de aplicación desensamblado, pero si se realizan cambios más serios en aplicaciones grandes, comprender el código pequeño será mucho más difícil. Afortunadamente, podemos descompilar el código dex en código Java, que, aunque no es original ni vuelve a compilarse, es mucho más fácil de leer y comprender la lógica de la aplicación. Para ello necesitaremos dos herramientas:
Así es como se deben utilizar. Primero, ejecutamos dex2jar, especificando la ruta al paquete apk como argumento: % dex2jar.sh correo.apk Como resultado, el paquete Java mail.jar aparecerá en el directorio actual, que ya se puede abrir en jd-gui para ver el código Java. Disposición de paquetes APK y recepción de ellos.Bolsa de plastico aplicaciones de Android, de hecho, es un archivo ZIP normal, no es necesario ver el contenido ni descomprimirlo. herramientas especiales no requerido. Basta con tener un archivador: 7zip para Windows o descomprimir la consola en Linux. Pero eso es todo sobre el envoltorio. ¿Qué hay adentro? En general, tenemos la siguiente estructura en su interior:
Los archivos y directorios enumerados se encuentran, si no en todos, quizás en la gran mayoría de los APK. Sin embargo, hay algunos archivos/directorios no tan comunes que vale la pena mencionar:
Este directorio lo utilizan los fabricantes de juegos, que colocan allí el motor del juego escrito en C/C++, así como los creadores de aplicaciones de alto rendimiento (por ejemplo, Google Chrome). Descubrimos el dispositivo. Pero, ¿cómo se obtiene el archivo del paquete de la aplicación que le interesa? Dado que no es posible recuperar archivos APK del dispositivo sin root (se encuentran en el directorio /data/app), y no siempre es recomendable rootear, existen al menos tres formas de obtener el archivo de la aplicación en su computadora:
Cuál usar es cuestión de gustos; preferimos usar aplicaciones individuales Por lo tanto, describiremos el uso de Real APK Leecher, especialmente porque está escrito en Java y, en consecuencia, funcionará en Windows o Nix. Después de iniciar el programa, debe completar tres campos: correo electrónico, contraseña e ID del dispositivo, y seleccionar un idioma. Los dos primeros son el correo electrónico y la contraseña de tu cuenta de Google que utilizas en el dispositivo. El tercero es el identificador del dispositivo y se puede obtener escribiendo el código en el marcador. # #8255## y luego encontrar la línea de ID del dispositivo. Al completar, solo necesita ingresar la identificación sin el prefijo de Android. Después de completar y guardar, a menudo aparece el mensaje "Error al conectarse al servidor". No tiene nada que ver con Google Play, así que no dudes en ignorarlo y buscar paquetes que te interesen. Ver y modificarDigamos que encontraste un paquete que te interesa, lo descargaste, lo descomprimiste... y cuando intentaste ver algún archivo XML, te sorprendiste al descubrir que el archivo no era texto. ¿Cómo descompilarlo y cómo trabajar con paquetes en general? ¿Es realmente necesario instalar el SDK? No, no es necesario instalar el SDK en absoluto. De hecho, todos los pasos para extraer, modificar y empaquetar paquetes APK requieren las siguientes herramientas:
Puede utilizar todas estas herramientas por separado, pero esto es un inconveniente, por lo que es mejor utilizar software de nivel superior creado sobre su base. Si trabaja en Linux o Mac OS X, existe una herramienta llamada apktool. Le permite descomprimir recursos en su forma original (incluidos archivos binarios XML y arsc), reconstruir un paquete con recursos modificados, pero no sabe cómo firmar paquetes, por lo que tendrá que ejecutar la utilidad de firma manualmente. A pesar de que la utilidad está escrita en Java, su instalación no es estándar. Primero necesitas obtener el archivo jar: $ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2 $ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2 $ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH Si trabaja en Windows, existe una herramienta excelente llamada Virtuous Ten Studio, que también acumula todas estas herramientas (incluido el propio apktool), pero en lugar de una interfaz CLI, proporciona al usuario una interfaz gráfica intuitiva con la que puede realice operaciones para desempaquetar, desensamblar y descompilar con unos pocos clics. Esta herramienta es Donation-ware, es decir, a veces aparecen ventanas pidiéndote que consigas una licencia, pero al final esto se puede tolerar. No tiene sentido describirlo, porque puedes entender la interfaz en unos minutos. Pero apktool, debido a su naturaleza de consola, debería analizarse con más detalle. ![]() Veamos las opciones de apktool. En resumen, hay tres comandos básicos: d (decodificar), b (compilar) y if (instalar marco). Si todo está claro con los dos primeros comandos, ¿qué hace la tercera declaración condicional? Descomprime el marco de interfaz de usuario especificado, que es necesario en los casos en los que se analiza cualquier paquete del sistema. Veamos las opciones más interesantes del primer comando:
Usar apktool es muy sencillo para hacer esto, solo especifica uno de los comandos y la ruta al APK, por ejemplo: $ apktool d correo.apk Después de esto, todos los archivos extraídos y desensamblados del paquete aparecerán en el directorio de correo. Preparación. Deshabilitar la publicidadLa teoría es, por supuesto, buena, pero ¿para qué es necesaria si no sabemos qué hacer con el paquete desempaquetado? Intentemos aplicar la teoría a nuestro favor, es decir, modificar algún software para que no nos muestre publicidad. Por ejemplo, que sea Virtual Torch, una antorcha virtual. Este software es ideal para nosotros porque está repleto de publicidad molesta y, además, es lo suficientemente sencillo como para no perderse en la jungla del código. ![]() Entonces, utilizando uno de los métodos anteriores, descargue la aplicación del mercado. Si decide utilizar Virtuous Ten Studio, simplemente abra el archivo APK en la aplicación y descomprímalo, cree un proyecto (Archivo -> Nuevo proyecto), luego seleccione Importar archivo en el menú contextual del proyecto. Si su elección recayó en apktool, simplemente ejecute un comando: $ apktool d com.kauf.particle.virtualtorch.apk Después de esto, aparecerá un árbol de archivos similar al descrito en la sección anterior en el directorio com.kauf.particle.virtualtorch, pero con un directorio pequeño adicional en lugar de archivos dex y un archivo apktool.yml. El primero contiene el código desensamblado del archivo ejecutable dex de la aplicación, el segundo contiene la información de servicio necesaria para que apktool vuelva a ensamblar el paquete. El primer lugar donde debemos buscar es, por supuesto, AndroidManifest.xml. Y aquí nos encontramos inmediatamente con la siguiente línea:
No es difícil adivinar que es el responsable de otorgar permisos a la aplicación para utilizar la conexión a Internet. De hecho, si sólo queremos deshacernos de la publicidad, lo más probable es que simplemente necesitemos bloquear la aplicación de Internet. Intentemos hacer esto. Eliminamos la línea especificada e intentamos compilar el software usando apktool: $ apktool b com.kauf.particle.virtualtorch El archivo APK resultante aparecerá en el directorio com.kauf.particle.virtualtorch/build/. Sin embargo, no será posible instalarlo, ya que no está firmado digitalmente y sumas de control archivos (simplemente no hay ningún directorio META-INF/ en él). Debemos firmar el paquete usando la utilidad apk-signer. Lanzado. La interfaz consta de dos pestañas: en la primera (generador de claves) creamos claves, en la segunda (firmante de APK) firmamos. Para crear nuestro llave privada, rellene los siguientes campos:
Los campos restantes son, en general, opcionales, pero se debe completar al menos uno. ![]() ADVERTENCIAPara firmar una aplicación usando apk-signer, debe instalar el SDK de Android y especificar la ruta completa en la configuración de la aplicación. Toda la información se proporciona únicamente con fines informativos. Ni los editores ni el autor son responsables de ningún posible daño causado por los materiales de este artículo. Ahora puedes firmar el APK con esta clave. En la pestaña Firmante de APK, seleccione el archivo recién generado, ingrese la contraseña, el alias de clave y la contraseña, luego busque el archivo APK y haga clic audazmente en el botón "Firmar". Si todo va bien, se firmará el paquete. INFORMACIÓNComo firmamos el paquete con nuestra propia clave, entrará en conflicto con la aplicación original, lo que significa que cuando intentemos actualizar el software a través del mercado, recibiremos un error. Sólo se requiere una firma digital software de terceros, entonces si estás haciendo una modificación aplicaciones del sistema, que se instalan copiándolos en el directorio /system/app/, no es necesario firmarlos. Después de eso, descargue el paquete a su teléfono inteligente, instálelo y ejecútelo. ¡Listo, el anuncio desapareció! Sin embargo, en su lugar apareció un mensaje de que no tenemos Internet o no tenemos los permisos adecuados. En teoría, esto podría ser suficiente, pero el mensaje parece molesto y, para ser honesto, tuvimos suerte con una aplicación estúpida. Lo más probable es que el software escrito normalmente aclare sus credenciales o compruebe la conexión a Internet y, de lo contrario, simplemente se niegue a iniciarse. ¿Cómo ser en este caso? Por supuesto, edite el código. Normalmente, los autores de aplicaciones crean clases especiales para mostrar anuncios y llaman a los métodos de estas clases cuando se inicia la aplicación o una de sus "actividades" (en términos simples, pantallas de aplicaciones). Intentemos encontrar estas clases. Vamos al directorio pequeño, luego a com (org contiene solo la biblioteca gráfica abierta cocos2d), luego a kauf (aquí está, porque este es el nombre del desarrollador y todo su código está ahí), y aquí está, el directorio de marketing. En su interior encontramos un montón de archivos con la extensión smali. Estas son clases, y la más notable de ellas es la clase Ad.smali, por cuyo nombre es fácil adivinar que es la que muestra publicidad. Podríamos cambiar la lógica de su funcionamiento, pero sería mucho más fácil simplemente eliminar las llamadas a cualquiera de sus métodos desde la propia aplicación. Por tanto, salimos del directorio de marketing y nos dirigimos al directorio de partículas adyacente, y luego a virtualtorch. El archivo MainActivity.smali merece especial atención aquí. Esta es una clase estándar de Android creada por el SDK de Android y instalada como punto de entrada a la aplicación (análoga a la función principal en C). Abra el archivo para editarlo. En el interior hay un código pequeño (ensamblador local). Es bastante confuso y difícil de leer debido a su naturaleza de bajo nivel, por lo que no lo estudiaremos, simplemente encontraremos todas las referencias a la clase Ad en el código y las comentaremos. Ingresamos la línea “Anuncio” en la búsqueda y llegamos a la línea 25: Campo de anuncio privado:Lcom/kauf/marketing/Ad; Aquí se crea un campo de anuncio para almacenar un objeto de clase de anuncio. Comentamos colocando un cartel ### delante de la fila. Seguimos la búsqueda. Línea 423: Nueva instancia v3, Lcom/kauf/marketing/Ad; Aquí es donde ocurre la creación del objeto. Comentemos. Continuamos la búsqueda y encontramos en las líneas 433, 435, 466, 468, 738, 740, 800 y 802 llamadas a métodos de la clase Ad. Comentemos. Parece que eso es todo. Ahorrar. Ahora es necesario volver a armar el paquete y verificar su funcionalidad y la presencia de publicidad. Para garantizar la pureza del experimento, devolvemos la línea eliminada de AndroidManifest.xml, ensamblamos el paquete, lo firmamos y lo instalamos. ![]() ![]() ¡Ups! La publicidad desapareció sólo mientras la aplicación se estaba ejecutando, pero permaneció en el menú principal, que vemos cuando iniciamos el software. Entonces, espere, pero el punto de entrada es la clase MainActivity y el anuncio desapareció mientras se ejecutaba la aplicación, pero permaneció en el menú principal, entonces, ¿el punto de entrada es diferente? Para identificar el verdadero punto de entrada, vuelva a abrir el archivo AndroidManifest.xml. Y sí, contiene las siguientes líneas:
Nos dicen (y, lo que es más importante, a Android) que se debe iniciar una actividad denominada Inicio en respuesta a la generación de una intención (evento) android.intent.action.MAIN de la categoría android.intent.category.LAUNCHER. Este evento se genera cuando toca el ícono de la aplicación en el iniciador, por lo que determina el punto de entrada, es decir, la clase Inicio. Lo más probable es que el programador primero haya escrito una aplicación sin un menú principal, cuyo punto de entrada era la clase estándar MainActivity, y luego agregó una nueva ventana (actividad) que contiene el menú y se describe en la clase Inicio, y la convirtió manualmente en la entrada. punto. Abra el archivo Start.smali y busque nuevamente la línea “Ad”, encontramos en las líneas 153 y 155 una mención de la clase FirstAd. También está en el código fuente y, a juzgar por su nombre, se encarga de mostrar anuncios en la pantalla principal. Miremos más allá, estamos creando una instancia de la clase FirstAd y un intent que según el contexto está relacionado con esta instancia, y luego la etiqueta cond_10, salto condicional que se realiza exactamente antes de crear una instancia de la clase: If-ne p1, v0, :cond_10 .line 74 nueva instancia v0, Landroid/content/Intent; ... :cond_10 Lo más probable es que el programa calcule de alguna manera aleatoriamente si se debe mostrar publicidad en la pantalla principal y, en caso contrario, salte directamente a cond_10. Bien, simplifiquemos su tarea y reemplacemos la transición condicional por una incondicional: #si-ne p1, v0, :cond_10 ir a:cond_10 No hay más menciones de FirstAd en el código, por lo que cerramos el archivo y volvemos a ensamblar nuestra antorcha virtual usando apktool. Cópialo en tu teléfono inteligente, instálalo y ejecútalo. Voila, toda la publicidad ha desaparecido, por lo que nos felicitamos a todos. ResultadosEste artículo es sólo una breve introducción a los métodos para piratear y modificar aplicaciones de Android. Muchos problemas quedaron detrás de escena, como eliminar protección, analizar código ofuscado, traducir y reemplazar recursos de aplicaciones, así como modificar aplicaciones escritas con usando Android NDK. Sin embargo, teniendo conocimientos básicos, es sólo cuestión de tiempo descubrirlo todo. Vistas de publicaciones: 5,618 Estudio Android Proporciona amplias oportunidades tanto para el desarrollo de aplicaciones como para aumentar la automatización y la comodidad en la programación. Si está utilizando un sistema de compilación Gradle Para crear sus aplicaciones, también puede configurar varias opciones para crear firmas para sus aplicaciones. Probablemente no desee publicar sus claves de firma, contraseñas y nombres de usuario en un repositorio público (o incluso privado). Por lo tanto, puede definir clave, contraseña y nombre de usuario como propiedades en un archivo separado. Antes de comenzar a firmar su aplicación, debe crear una nueva propiedad en su archivo gradle.properties. llamémoslo Claves.repo y, como valor, especifique la ruta a la carpeta donde posteriormente se ubicará el almacén de claves y el archivo con propiedades (por ejemplo, C:/Usuarios/Nombre de usuario/.signing). Keys.repo=C:/Users/Nombre de usuario/.signing Luego debe crear esta carpeta o, si especificó una existente, abrirla. Necesitas crear un archivo en él. SuNombreProyecto.properties, dentro del cual la ruta al almacén de claves, el alias de clave y la contraseña se escribirán como propiedades en el siguiente formulario. RELEASE_STORE_FILE=/SuNombreProyecto/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias RELEASE_KEY_PASS=****** ¿Cómo crear un almacén de claves?Si no tiene un almacén de claves, puede crear uno fácilmente con usando Android Estudio. Para hacer esto, seleccione el elemento del menú. Construir -> Generar APK firmado. En la ventana que aparece, debe hacer clic Crear nuevo... Como resultado, se abrirá una ventana en la que puede especificar dónde se ubicará el almacenamiento de claves (para esta lección, es mejor seleccionar inmediatamente la ruta que especificó en SuNombreProyecto.properties en propiedad RELEASE_STORE_FILE), así como información clave. Entonces necesitas crear una carpeta. Su nombre de proyecto y muévelo allí archivo requerido tiendas de llaves. Ahora puede proceder directamente al proceso de firma. Para hacer esto, necesita abrir el archivo en su proyecto. construir.gradle(ubicado en la carpeta de la aplicación). Dentro del bloque androide necesitas agregar el siguiente código. SigningConfigs ( depuración ( /* no hay cambios aquí */ ) lanzamiento ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties " ) if (projectPropsFile.exists()) (Propiedades props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"]) ) storePassword props["RELEASE_STORE_PASS"] keyAlias props["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] ) ) else ( println "===================== = ====================================" println " - Configure el entorno de compilación de lanzamiento, por ejemplo. ~/. directorio de firma" println "========================================== ================== ==========" ) ) ) ¿Cuáles son los diferentes esquemas para obtener una firma?Existen dos esquemas para obtener una firma APK: tarro v1 Y v2 APK completo. En el primer caso está firmado. FRASCO-file, que es la forma tradicional de firmar. La firma v1 no protege algunas partes del APK, como los metadatos ZIP. El verificador de APK debe manejar una gran cantidad de estructuras de datos que no son de confianza (aún no verificadas) y luego descartar datos que no están firmados, lo que deja una gran superficie de ataque. Además, el verificador de APK debe descomprimir todas las entradas comprimidas, lo que desperdicia mucho tiempo y memoria. Para solucionar estos problemas, se ha desarrollado el segundo esquema v2 Full APK. El esquema v2 se presentó en Android 7.0 Turrón (API 25) y funciona a partir de la versión Estudio Android 2.2 Y Complemento de Android Gradle 2.2. Este esquema proporciona más instalación rápida aplicaciones y buena protección contra cambios no autorizados en APK. El contenido del APK se procesa y firma, luego el resultado Bloque de firma APK insertado en el APK. Durante la verificación, el esquema v2 trata el APK como un blob y realiza la verificación de la firma en todo el archivo. Cualquier modificación del APK, incluidas las modificaciones de los metadatos ZIP, invalida la firma. Esta forma de verificación es mucho más rápida y puede detectar más modificaciones no autorizadas. El nuevo formato es compatible con versiones anteriores, por lo que los APK firmados con el nuevo esquema se pueden instalar en dispositivos más antiguos (que simplemente ignorarán la nueva firma) siempre que esos APK también estén firmados con el esquema v1. De forma predeterminada, la firma utiliza ambos esquemas para que las aplicaciones se puedan instalar en cualquier dispositivo. Sin embargo, si es necesario, puede desactivar la firma v1 o v2. Para hacer esto, en el código anterior en el bloque liberar Basta añadir las siguientes líneas. V1SigningEnabled falso V2SigningEnabled falso También es importante tener en cuenta que debe firmar con el esquema v1 antes de firmar con el esquema v2, ya que el APK no pasará la verificación bajo el esquema v2 si se firma con certificados adicionales después de firmar con el esquema v2. Una vez agregado el código, incluya este código en un bloque. tipos de construcción adentro liberar. Por ejemplo: BuildTypes (lanzamiento (minifyEnabled true listeningResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release)) Ahora puedes hacerlo de forma segura en el elemento del menú. Construir elegir Construir APK, habiendo cambiado previamente el tipo de montaje de depurar en liberar. Como se vio, este método conveniente porque es automático, solo necesita configurarlo una vez y sus almacenamientos de claves pueden estar seguros. |
Popular:
Nuevo
- Terapia con láser (terapia con láser) Dispositivo terapéutico con láser "Matrix" ¿Qué trata el dispositivo de terapia con láser Matrix?
- Suscripciones fraudulentas y fraude en suscriptores de Telegram para el canal de Telegram
- Especialidad "Tecnologías de la infocomunicación y sistemas de comunicación" (licenciatura) Tecnologías de la infocomunicación y sistemas de comunicación 11
- Odnoklassniki: cómo abrir mi página
- Cómo enviar lecturas de medidores de agua en el portal de servicios del estado de Kazán Lecturas de medidores RT
- Salida de parte de un sprite html de imagen
- Configuración de detalles adicionales e información adicional para la nomenclatura 1c detalles adicionales y diferencias de información
- Qué hacer cuando no hay datos de registro
- Solicitud de selección de datos (fórmulas) en MS EXCEL Selección de Excel por macro de condición
- Correo electrónico temporal temporal por única vez Correo electrónico temporal, sitios de correo, registro en redes sociales