À l'époque, pour installer une application en tant qu'application système, il suffisait de déplacer le fichier APK dans le dossier de l'application. /system/app
o /system/priv-app
. Les supprimer était aussi simple que de supprimer l'APK.
Maintenant, pendant que je personnalise la ROM stock du téléphone, j'ai remarqué que chaque application sur la partition système était dans son propre dossier. J'ai essayé de simplement déposer l'APK en /system/app
o /system/priv-app
mais ça ne marche pas.
Comment installer une application en tant qu'application système sur Lollipop ? Je soupçonne qu'il y a un problème avec SELinux et le contexte, mais je n'ai pas d'accès Root. Cependant, j'ai un accès en lecture/écriture au système de fichiers (en montant l'image dans Linux).
UPDATE : J'ai essayé Death Mask Salesman
et jeté un coup d'oeil à logcat
. Les applications que je souhaite préinstaller (par exemple, Instagram) génèrent cette erreur :
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
Symptômes :
- Toutes les applications que j'ai installées se ferment de force.
- Le nom de leur paquet et le logo générique apparaissent sur le lanceur au lieu du nom et du logo de leur application.
- Ils ne fonctionnent tout simplement pas
Pour les personnes qui prévoient de signaler cette question comme étant un doublon, ces réponses ne fonctionnent pas / sont dépassées / ne sont pas applicables (pas un système en direct / pas d'accès Root) :
- Comment installer correctement une application système à partir de son .apk ?
- Convertir en application système en déplaçant manuellement l'APK dans le dossier "system/app" dans Lollipop.
- Comment installer une application comme application système
- Comment installer l'application système sur Lollipop car su n'existe pas ?
- Installation des applications système sur Android 4.4
- Ajouter des applications système dans une rom personnalisée
- Comment installer une application avec des droits système sur un smartphone non rooté ?
- Installation dans le système/application sans Root
- Comment installer l'application système avec SE Linux enforcé sur le Galaxy s7 Android 6.0.1