Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 通过/ system / app的INSTALL_PACKAGES许可,以编程方式安装应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试以编程方式安装一个没有用户交互的应用程序,我收到此错误
SecurityException: Neither user 10057 nor current process has android.permission.INSTall_PACKAGES

我的安装程序位于/ root / root系统/应用程序,“安装非市场应用程序”被检查,安装程序有权限

<uses-permission android:name="android.permission.INSTall_PACKAGES"/>

这是我的通话功能

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;
        }
    }

}

我收到这个错误

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)

我已经阅读了ti可以通过两种方式获得INSTall_PAKAGES权限:用固件的密钥签署应用程序或将应用程序放在固件中.我的应用程序是从/ system / 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"/>

没有更多的错误

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

但新的

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

使我的手机崩溃,freez并重新启动

解决方法

参见 signatureOrSystem permissions on custom ROM

基本上,

>添加所需的< uses-permission>
将apk推送到/ system / priv-app

完成了(至少对我而言).

你不需要添加android:protectionLevel =“signatureOrSystem”或者android:sharedUserId =“android.uid.system”.您可以签署任何认证.

大佬总结

以上是大佬教程为你收集整理的android – 通过/ system / app的INSTALL_PACKAGES许可,以编程方式安装应用程序全部内容,希望文章能够帮你解决android – 通过/ system / app的INSTALL_PACKAGES许可,以编程方式安装应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。