Problemi di installazione di un'applicazione con authorization INSTALL_PACKAGES da / system / app

Sto provando ad installare programmialmente un'applicazione senza interazione con l'utente e sto ottenendo questo errore

SecurityException: Neither user 10057 nor current process has android.permission.INSTALL_PACKAGES 

Il mio installatore si trova in / system / app sul telefono radicato, è selezionato "Installa applicazioni non market", l'installatore ha il permesso

  • Come visualizzare il file .gif in imageview?
  • Seleziona l'image da galleria e mostra in immagini
  • iOS Facebook Slide Menu per Android
  • EditText si blocca / non visualizza text durante la digitazione
  • Il browser di Chrome Android rinomina i nomi e le tipologie di file scaricati
  • org.apache.http.client.ClientProtocolException
  •  <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> 

    Questa è la mia function di chiamata

      private void puk(Context context) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{ String fileName = PAKAGE_FILE_NAME ; String dir_type = Environment.DIRECTORY_DOWNLOADS; File dir= Environment.getExternalStoragePublicDirectory(dir_type); java.io.File file = new java.io.File(dir ,fileName); Uri packageUri = Uri.fromFile(file); PackageManager pm = context.getPackageManager(); Class<? extends PackageManager> o = pm.getClass(); Method[] allMethods=o.getMethods(); for (Method m : allMethods) { if (m.getName().equals("installPackage")) { Log.e(TAG, "installing the app.." ); m.invoke(pm,new Object[] { packageUri, null, 1, "com.mic.zapp"}); break; } } } 

    Sto ottenendo questo errore

      11-15 02:46:23.320: W/System.err(10848): java.lang.reflect.InvocationTargetException 11-15 02:46:23.330: W/System.err(10848): at java.lang.reflect.Method.invokeNative(Native Method) 11-15 02:46:23.330: W/System.err(10848): at java.lang.reflect.Method.invoke(Method.java:507) 11-15 02:46:23.330: W/System.err(10848): at com.mic.pvtapi.PvtApiReflectActivity.puk(PvtApiReflectActivity.java:56) 11-15 02:46:23.330: W/System.err(10848): at com.mic.pvtapi.PvtApiReflectActivity.onCreate(PvtApiReflectActivity.java:28) 11-15 02:46:23.330: W/System.err(10848): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 11-15 02:46:23.330: W/System.err(10848): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722) 11-15 02:46:23.330: W/System.err(10848): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 11-15 02:46:23.330: W/System.err(10848): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 11-15 02:46:23.330: W/System.err(10848): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 11-15 02:46:23.330: W/System.err(10848): at android.os.Handler.dispatchMessage(Handler.java:99) 11-15 02:46:23.330: W/System.err(10848): at android.os.Looper.loop(Looper.java:130) 11-15 02:46:23.330: W/System.err(10848): at android.app.ActivityThread.main(ActivityThread.java:3835) 11-15 02:46:23.330: W/System.err(10848): at java.lang.reflect.Method.invokeNative(Native Method) 11-15 02:46:23.330: W/System.err(10848): at java.lang.reflect.Method.invoke(Method.java:507) 11-15 02:46:23.330: W/System.err(10848): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 11-15 02:46:23.330: W/System.err(10848): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 11-15 02:46:23.330: W/System.err(10848): at dalvik.system.NativeStart.main(Native Method) 11-15 02:46:23.330: W/System.err(10848): Caused by: java.lang.SecurityException: Neither user 10057 nor current process has android.permission.INSTALL_PACKAGES. 11-15 02:46:23.340: W/System.err(10848): at android.os.Parcel.readException(Parcel.java:1322) 11-15 02:46:23.340: W/System.err(10848): at android.os.Parcel.readException(Parcel.java:1276) 11-15 02:46:23.340: W/System.err(10848): at android.content.pm.IPackageManager$Stub$Proxy.installPackage(IPackageManager.java:2037) 11-15 02:46:23.340: W/System.err(10848): at android.app.ContextImpl$ApplicationPackageManager.installPackage(ContextImpl.java:2613) 

    Ho letto che è ansible get le autorizzazioni INSTALL_PAKAGES in due modi: firmare l'applicazione con la chiave del firmware o mettere l'applicazione nel firmware. La mia applicazione è runng da / system / app per cui deve acquisire privilegi.

    Qualcuno sa cosa è sbagliato e mi dà alcuni suggerimenti? Grazie

    EDIT:

    Un passo avanti, due passi indietro

    Ho aggiunto nuova authorization all'app

      <permission android:name="com.mic.pvtapi.permission.INS_AP" android:label="etichetta_perm" android:protectionLevel="signatureOrSystem" /> <uses-permission android:name="com.mic.pvtapi.permission.INS_AP"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

    nessun errore più

     Neither user 10057 nor current process has android.permission.INSTALL_PACKAGES 

    ma il nuovo

      11-15 19:43:58.895: I/ActivityManager(1838): Displayed com.mic.pvtapi/.PvtApiReflectActivity: +421ms 11-15 19:43:58.955: D/dalvikvm(4008): GC_EXPLICIT freed 3K, 51% free 2681K/5379K, external 0K/0K, paused 132ms 11-15 19:43:58.955: W/ActivityManager(1838): No content provider found for: 11-15 19:43:58.955: E/PackageManager(1838): Couldn't create temp file for downloaded package file. 11-15 19:43:58.955: W/dalvikvm(1838): threadid=13: thread exiting with uncaught exception (group=0x40018560) 11-15 19:43:58.965: E/AndroidRuntime(1838): *** FATAL EXCEPTION IN SYSTEM PROCESS: PackageManager 11-15 19:43:58.965: E/AndroidRuntime(1838): java.lang.NullPointerException 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$FileInstallArgs.createCopyFile(PackageManagerService.java:5247) 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$FileInstallArgs.copyApk(PackageManagerService.java:5255) 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$InstallParams.handleStartCopy(PackageManagerService.java:5051) 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$HandlerParams.startCopy(PackageManagerService.java:4902) 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$PackageHandler.doHandleMessage(PackageManagerService.java:516) 11-15 19:43:58.965: E/AndroidRuntime(1838): at com.android.server.PackageManagerService$PackageHandler.handleMessage(PackageManagerService.java:461) 11-15 19:43:58.965: E/AndroidRuntime(1838): at android.os.Handler.dispatchMessage(Handler.java:99) 11-15 19:43:58.965: E/AndroidRuntime(1838): at android.os.Looper.loop(Looper.java:130) 11-15 19:43:58.965: E/AndroidRuntime(1838): at android.os.HandlerThread.run(HandlerThread.java:60) 11-15 19:43:58.975: I/Process(1838): Sending signal. PID: 1838 SIG: 9 11-15 19:43:59.005: I/ServiceManager(1637): service 'SurfaceFlinger' died 

    far sì che il mio telefono sia bloccato, bloccato e riavviato

  • Disposizione Relativa: comportmenti diversi su Api <11
  • Come fornire dati audio e video a MediaMux
  • PhoneGap - Android - come salvare l'image di cattura dalla camera nella scheda SD
  • Problema nella memorizzazione di immagini in MediaStore in Android
  • Perché i miei "post" caricano in diverse size in recyclerview di android?
  • L'attività verrà eseguita suDestroy quando il sistema lo uccide?
  • 4 Solutions collect form web for “Problemi di installazione di un'applicazione con authorization INSTALL_PACKAGES da / system / app”

    Fare riferimento alle autorizzazioni signatureOrSystem sulla ROM personalizzata

    Fondamentalmente,

    1. aggiungere il <uses-permission>
    2. spingere apk su / system / priv-app

    Fatto (beh, alless funziona per me).

    Non è necessario aggiungere Android: protectionLevel = "signatureOrSystem" o android: sharedUserId = "android.uid.system". Potresti firmare con qualsiasi certificazione.

    Suppongo che metterlo nella cartella / system / app non sia equivalente a essere caricato nel firmware.

    Informazioni sull'errore:

     SecurityException: Neither user 10057 nor current process has android.permission.INSTALL_PACKAGES 

    Per get l'authorization INSTALL_PACKAGES:

    1. Inserisci la tua applicazione in / system / app
    2. Firmare l'applicazione con la chiave del sistema
    3. Nel file manifest.xml, inserisci questo attributo all'interno del manifest di tag:

       <manifest android:sharedUserId="android.uid.system" ... 

    L'esecuzione di queste due righe corregge il problema con l'errore di authorization PackageManager: "Imansible creare il file temp per il file di pacchetto scaricato".

     adb shell chown system.shell /data/app adb shell chown system.shell /data/local 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.