日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager

發(fā)布時間:2023/12/10 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

反饋BUG之前,先issue里面搜看看有沒有別人已經反饋過,重復的不予處理!!

問題描述

最近下了一個不可描述APP,實機是能運行的,不過在VXP里則報如下錯誤

07-14 15:48:28.672 13477 13477 E test2:fake_dlfcn: /system/lib/libart.so not found in my userspace

07-14 15:48:28.750 602 602 E SELinux : avc: denied { find } for service=persistent_data_block pid=13477 uid=10195 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:persistent_data_block_service:s0 tclass=service_manager permissive=0

07-14 15:48:28.750 13477 13477 W MethodInvocationStub: Unable to build HookDelegate: BinderInvocationStub.

07-14 15:48:28.772 13477 13477 W MethodInvocationStub: The Hook(finishActivity, com.lody.virtual.client.hook.proxies.am.ActivityTaskManagerStub$3) you added has been in existence.

07-14 15:48:28.774 13477 13477 I TransactionHandlerStub: inject transaction handler.

07-14 15:48:28.775 13477 13477 I TransactionHandlerStub: executor's handler: android.app.TransactionHandlerProxy@820b2dd

07-14 15:48:28.786 13477 13477 I TransactionHandlerProxy: getActivityClient : android.os.BinderProxy@3a2307f

07-14 15:48:28.790 13477 13477 I TransactionHandlerProxy: restart process, return

07-14 15:48:28.794 13477 13477 I VClientImpl: Binding application com.test.data, (com.test.data)

07-14 15:48:28.808 13477 13477 W System.err: java.lang.reflect.InvocationTargetException

07-14 15:48:28.808 13477 13477 W System.err: at java.lang.reflect.Method.invoke(Native Method)

07-14 15:48:28.808 13477 13477 W System.err: at mirror.RefStaticMethod.call(RefStaticMethod.java:119)

07-14 15:48:28.808 13477 13477 W System.err: at com.lody.virtual.client.env.SpecialComponentList.(SpecialComponentList.java:77)

07-14 15:48:28.808 13477 13477 W System.err: at com.lody.virtual.client.env.SpecialComponentList.isConflictingInstrumentation(SpecialComponentList.java:92)

07-14 15:48:28.808 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:322)

07-14 15:48:28.808 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:218)

07-14 15:48:28.808 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:213)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:149)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:146)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

07-14 15:48:28.808 13477 13477 W System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)

07-14 15:48:28.809 13477 13477 W System.err: at android.os.Handler.dispatchMessage(Handler.java:107)

07-14 15:48:28.809 13477 13477 W System.err: at android.os.Looper.loop(Looper.java:214)

07-14 15:48:28.809 13477 13477 W System.err: at android.app.ActivityThread.main(ActivityThread.java:7356)

07-14 15:48:28.809 13477 13477 W System.err: at java.lang.reflect.Method.invoke(Native Method)

07-14 15:48:28.809 13477 13477 W System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)

07-14 15:48:28.809 13477 13477 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

07-14 15:48:28.809 13477 13477 W System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.app.Application.getPackageManager()' on a null object reference

07-14 15:48:28.809 13477 13477 W System.err: at android.webkit.WebViewFactory.isWebViewSupported(WebViewFactory.java:111)

07-14 15:48:28.809 13477 13477 W System.err: at android.webkit.WebViewFactory.getUpdateService(WebViewFactory.java:474)

07-14 15:48:28.809 13477 13477 W System.err: ... 19 more

07-14 15:48:28.810 13477 13477 W System.err: java.lang.NullPointerException: null receiver

07-14 15:48:28.810 13477 13477 W System.err: at java.lang.reflect.Method.invoke(Native Method)

07-14 15:48:28.810 13477 13477 W System.err: at mirror.RefMethod.call(RefMethod.java:63)

07-14 15:48:28.810 13477 13477 W System.err: at com.lody.virtual.client.env.SpecialComponentList.(SpecialComponentList.java:77)

07-14 15:48:28.810 13477 13477 W System.err: at com.lody.virtual.client.env.SpecialComponentList.isConflictingInstrumentation(SpecialComponentList.java:92)

07-14 15:48:28.810 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:322)

07-14 15:48:28.810 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:218)

07-14 15:48:28.810 13477 13477 W System.err: at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:213)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:149)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:146)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)

07-14 15:48:28.810 13477 13477 W System.err: at android.os.Handler.dispatchMessage(Handler.java:107)

07-14 15:48:28.810 13477 13477 W System.err: at android.os.Looper.loop(Looper.java:214)

07-14 15:48:28.810 13477 13477 W System.err: at android.app.ActivityThread.main(ActivityThread.java:7356)

07-14 15:48:28.810 13477 13477 W System.err: at java.lang.reflect.Method.invoke(Native Method)

07-14 15:48:28.810 13477 13477 W System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)

07-14 15:48:28.810 13477 13477 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

07-14 15:48:28.811 13477 13477 I VClientImpl: Xposed is enabled.

07-14 15:48:28.812 13477 13477 D NativeEngine: DexOrJarPath = /data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk, OutputPath = null.

07-14 15:48:28.808 13477 13477 W m.test.data: type=1400 audit(0.0:360): avc: granted { execute } for path="/data/data/io.va.exposed/virtual/data/app/com.test.data/oat/arm/base.odex" dev="sda13" ino=2024095 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file

07-14 15:48:28.815 13477 13477 D NativeEngine: DexOrJarPath = /data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk, OutputPath = null.

07-14 15:48:28.817 13477 13477 W o.va.exposed:p: ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk*3789797101])

07-14 15:48:28.817 13477 13477 W o.va.exposed:p: Found duplicate classes, falling back to extracting from APK : /data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk

07-14 15:48:28.817 13477 13477 W o.va.exposed:p: NOTE: This wastes RAM and hurts startup performance.

07-14 15:48:28.817 13477 13477 W o.va.exposed:p: Found duplicated class when checking oat files: 'LMTT/ThirdAppInfoNew;' in /data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk and /data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk

07-14 15:48:28.817 13477 13477 W o.va.exposed:p:

07-14 15:48:29.079 13477 13477 W o.va.exposed:p: JIT profile information will not be recorded: profile file does not exits.

07-14 15:48:29.079 13477 13477 W o.va.exposed:p: JIT profile information will not be recorded: profile file does not exits.

07-14 15:48:29.101 13477 13477 I ExposedBridge: com.test.data is not a Xposed module, do not init epic.force

07-14 15:48:29.102 13477 13477 D ExposedBridge: xposed installer's modules not exist, ignore.

07-14 15:48:29.102 13477 13477 I ExposedBridge: module:/data/user/0/io.va.exposed/virtual/data/app/de.robv.android.xposed.installer/base.apk is disabled, ignore

07-14 15:48:29.102 13477 13477 D ExposedBridge: xposed installer's modules not exist, ignore.

07-14 15:48:29.102 13477 13477 I ExposedBridge: module:/data/user/0/io.va.exposed/virtual/data/app/com.test.data/base.apk is disabled, ignore

07-14 15:48:29.104 13477 13477 I MultiDex: VM with version 2.1.0 has multidex support

07-14 15:48:29.104 13477 13477 I MultiDex: Installing application

07-14 15:48:29.104 13477 13477 I MultiDex: VM has multidex support, MultiDex support library is disabled.

07-14 15:48:29.102 13477 13477 W m.test.data: type=1400 audit(0.0:362): avc: granted { execute } for path="/data/data/io.va.exposed/virtual/data/app/com.test.data/lib/libnative-lib.so" dev="sda13" ino=2024087 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file

07-14 15:48:29.113 13477 13477 I o.va.exposed:p: System.exit called, status: -1112314295

07-14 15:48:29.113 13477 13477 I AndroidRuntime: VM exiting with result code -1112314295, cleanup skipped.

07-14 15:48:29.126 1371 7490 I ActivityManager: Process io.va.exposed:p0 (pid 13477) has died: fore TOP

它在onCreate的時候 調用里 一個native靜態(tài)方法,用于校驗包的SHA值,

public class App extends MultiDexApplication {

@override

public void onCreate(){

super.onCreate();

....

sign.check(this);

}

}

看smali 和ida 的偽代碼,它傳入了一個Context 到 native 方法 然后嘗試調用 PackageManager 時 傳入的 Context 是NULL導致的?

希望大神幫忙。

v4 = ((int (__fastcall *)(JNIEnv *))(*a1)->GetObjectClass)(a1);

v5 = v4;

v6 = ((int (__fastcall *)(JNIEnv *, int, const char *, const char *))(*v2)->GetMethodID)(

v2,

v4,

"getPackageManager",

"()Landroid/content/pm/PackageManager;");

v7 = _JNIEnv::CallObjectMethod(v2, v3, v6);

復現(xiàn)步驟

(請分步驟描述如何復現(xiàn)這個BUG,非畢現(xiàn)BUG請給出如何能大概率復現(xiàn)的步驟)

環(huán)境

機型:K20Pro MIUI12 / Pixel 2XL ASOP10 / MEIZU 16s Android 9

系統(tǒng)版本:

ROM版本:

Xposed 插件以及插件版本:

VirtualXposed版本:0.18.2

補充

(別的需要描述的內容)

寫完之后,請自己再讀一遍自己寫的,如果你自己都讀不懂,就不用說修復了

總結

以上是生活随笔為你收集整理的linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。