Antiguamente, instalar una aplicación como aplicación del sistema era tan sencillo como mover el archivo APK a /system/app
o /system/priv-app
. Eliminarlas fue tan sencillo como borrar el APK.
Ahora, mientras estoy personalizando la ROM stock del teléfono, me he dado cuenta de que todas y cada una de las aplicaciones de la partición del sistema estaban dentro de su propia carpeta. He intentado simplemente soltar el APK en /system/app
o /system/priv-app
pero no funcionan.
¿Cómo instalo una aplicación como aplicación del sistema en Lollipop? Sospecho que algo pasa con SELinux y el contexto, pero no tengo acceso Root. Sin embargo, tengo acceso de lectura/escritura al sistema de archivos (montando la imagen en Linux).
ACTUALIZACIÓN: He intentado Death Mask Salesman
y echado un vistazo a logcat
. Las aplicaciones que quiero preinstalar (por ejemplo, Instagram) arrojan este error:
01-01 01:04:45.108 5538-5538/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.instagram.android, PID: 5538
java.lang.RuntimeException: Unable to instantiate application com.instagram.app.InstagramAppShell: java.lang.ClassNotFoundException: Didn't find class "com.instagram.app.InstagramAppShell" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar"],nativeLibraryDirectories=[/custpack/app/removeable/withlibs/com.instagram.android-1/lib/arm, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:572)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4818)
at android.app.ActivityThread.access$1500(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5624)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.instagram.app.InstagramAppShell" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar"],nativeLibraryDirectories=[/custpack/app/removeable/withlibs/com.instagram.android-1/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newApplication(Instrumentation.java:985)
at android.app.LoadedApk.makeApplication(LoadedApk.java:567)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4818)
at android.app.ActivityThread.access$1500(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5624)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Suppressed: java.lang.ClassNotFoundException: com.instagram.app.InstagramAppShell
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Los síntomas:
- Todas las aplicaciones que he instalado fuerzan el cierre
- Los nombres de sus paquetes y el logotipo genérico aparecen en el lanzador en lugar del nombre y el logotipo de su aplicación
- Simplemente no funcionan
Para las personas que planean marcar esto como un duplicado, estas respuestas no funcionan/están desactualizadas/no son aplicables (no es un sistema vivo/sin acceso Root):
- ¿Cómo puedo instalar correctamente una aplicación del sistema dado su .apk?
- Convertir en aplicación del sistema moviendo manualmente el APK a la carpeta "system/app" en Lollipop
- Cómo instalar la aplicación como aplicación del sistema
- Cómo instalar la app del sistema en Lollipop ya que su no existe
- Instalación de aplicaciones del sistema en Android 4.4
- Añadir aplicaciones de sistema en una rom personalizada
- ¿Cómo puedo instalar una aplicación con derechos de sistema en un smartphone no rooteado?
- Instalación en sistema/app sin Root
- Cómo instalar la aplicación del sistema con SE Linux aplicado en Galaxy s7 Android 6.0.1