Cómo eliminar el límite de tiempo en el APK del software Android
Al principio pensé que no era posible cambiar la hora del sistema a nivel de aplicación, pero después de buscar en línea durante mucho tiempo, descubrí que aún se puede hacer.
El primer método es relativamente simple, pero necesita usar make en el entorno de código fuente de Android para compilar:
1. Agréguelo al manifiesto en el nodo AndroidManifest.xml de la aplicación.
android: atributosharedUserId="android .uid.system".
2. Modifique el archivo Android.mk y agregue LOCAL_CERTIFICATE:= línea de plataforma
3. Utilice el comando mm para compilar y el apk generado tendrá permiso para modificar el sistema. tiempo.
El segundo método es un poco problemático, pero puedes usar make para compilar en el entorno fuente sin ejecutar una máquina virtual:
1. Igual que arriba, agrega android:sharedUserId=. Propiedad "android .uid.system".
2. Utilice eclipse para compilar el archivo apk, pero el archivo apk no se puede ejecutar.
3. Abra el archivo apk con el software de compresión y elimine los archivos CERT.SF y CERT.RSA en el directorio META-INF.
4. Vuelva a firmar el archivo apk utilizando la clave de plataforma del sistema de destino. Esto es un poco complicado.
Primero busque los archivos clave, en mi directorio de código fuente de Android, la ubicación es "build\target\product\security", en platform.pk8 y platform.x509.pem
p>debajo del archivo.
Luego use la herramienta Signapk proporcionada por Android para firmar. El código fuente de signapk se encuentra en "build\tools\signapk".
Utilice "plataforma signapk.x509.pem". .pk8 input . apk output.apk",
Es mejor usar una ruta absoluta para el nombre del archivo para evitar que se encuentre, o puede modificar el código fuente y usarlo directamente.
De esta manera, la apk que obtendrás será la misma que la del primer método.
Finalmente, para explicar el principio, primero agregue el atributo android:sharedUserId="android.uid.system". Compartir ID de usuario permite configurar varios APK con el mismo ID de usuario para que se ejecuten en el mismo proceso. Por lo tanto, configurar el UID de un programa en android.uid.system significa permitir que el programa se ejecute en un proceso del sistema, dándole permiso para cambiar la hora del sistema.
Simplemente agregar el UID no es suficiente. Si instala el APK en este momento, encontrará que no se puede instalar y le indicará que la firma no coincide. El motivo es que la clave de plataforma del. Se requiere que el sistema de destino ejecute el programa en el proceso del sistema, es decir, el segundo método mencionado anteriormente, dos archivos platform.pk8 y platform.x509.pem. Solo después de que el apk esté firmado con estas dos claves, el apk puede ingresar al proceso del sistema. Agregar LOCAL_CERTIFICATE en el primer método: = la plataforma en realidad firma el apk con estas dos claves.
También hay un problema con esto, es decir, el programa generado de esta manera solo se puede usar en el sistema Android original o en un sistema autocompilado, porque solo estos sistemas pueden obtener platform.pk8 y archivo plataforma.x509. Ni siquiera puedes instalarlo en sistemas Android fabricados por otras empresas. Al intentar utilizar la firma de clave original de Android, el programa se ejecuta normalmente en el emulador, pero cuando se instala en G3, aparece directamente "Paquete ...", no hay ninguna firma que coincida con la firma en el usuario compartido android.uid.system. y Compartir el usuario android.uid.system también puede proteger la seguridad del sistema.
Por último, pero no menos importante, el atributo android:sharedUserId no solo coloca el apk en un proceso del sistema, sino que también te permite configurar varios APK para que se ejecuten en un solo proceso para que puedas * *** disfrutar los datos, esto debería ser muy útil.