添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
深情的煎鸡蛋  ·  the value of the ...·  1 月前    · 
踏实的大海  ·  Microsoft Ajax ...·  1 年前    · 
讲道义的牛肉面  ·  Int32 Struct (System) ...·  1 年前    · 
火星上的回锅肉  ·  SVG 阴影 | 菜鸟教程·  1 年前    · 

我正试图在AOSP中添加OpenVPN应用程序,但它崩溃了。我通过在设备上安装来检查,当我从playstore/f-droid安装或通过adb install下载apk时,它工作正常。当我在AOSP源代码中添加这个apk时,它被添加到构建AOSP(OS)中,但当我在设备中闪烁AOSP后启动应用程序时,它在库中崩溃,然后我在AOSP中添加其需要的库,但现在它抛出其他错误。AOSP(操作系统)在两种情况下都是一样的。我也试过其他的VPN应用程序,但都有同样的问题。 我在AOSP中添加了其他应用程序,这些应用程序工作正常,但这些VPN应用程序不工作。

以下是应用程序崩溃的adb日志

2020-10-16 10:12:49.736 0-0/? E/q6asm_callback: payload size of 8 is less than expected.
    --------- beginning of main
2020-10-16 10:12:51.759 1291-5412/? E/ACDB-LOADER: Error: ACDB AudProc vol returned = -19
2020-10-16 10:12:51.780 0-0/? E/q6asm_callback: payload size of 8 is less than expected.
2020-10-16 10:12:51.785 1568-1743/? E/system_server: Invalid ID 0x00000000.
2020-10-16 10:12:51.788 6354-6354/? E/q6asm_callback: payload size of 8 is less than expected.
2020-10-16 10:12:51.795 0-0/? E/q6asm_callback: payload size of 8 is less than expected.
2020-10-16 10:12:51.885 6354-6354/? E/SoLoader: couldn't find DSO to load: libc++_shared.so caused by: dlopen failed: couldn't map "/data/user/0/net.openvpn.openvpn/lib-main/libc++_shared.so" segment 1: Permission denied
2020-10-16 10:12:51.885 6354-6354/? E/SoLoader: couldn't find DSO to load: libfb.so caused by: couldn't find DSO to load: libc++_shared.so caused by: dlopen failed: couldn't map "/data/user/0/net.openvpn.openvpn/lib-main/libc++_shared.so" segment 1: Permission denied
2020-10-16 10:12:51.885 6354-6354/? E/SoLoader: couldn't find DSO to load: libjscexecutor.so caused by: couldn't find DSO to load: libfb.so caused by: couldn't find DSO to load: libc++_shared.so caused by: dlopen failed: couldn't map "/data/user/0/net.openvpn.openvpn/lib-main/libc++_shared.so" segment 1: Permission denied
2020-10-16 10:12:51.888 6354-6380/? E/SoLoader: couldn't find DSO to load: libhermes.so
    --------- beginning of crash
2020-10-16 10:12:51.888 6354-6380/? E/AndroidRuntime: FATAL EXCEPTION: create_react_context
    Process: net.openvpn.openvpn, PID: 6354
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
        at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
        at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:952)
        at java.lang.Thread.run(Thread.java:922)
2020-10-16 10:12:54.986 0-0/? E/q6asm_callback: payload size of 8 is less than expected.
2020-10-16 10:12:55.351 1568-4304/? E/TaskPersister: File error accessing recents directory (directory doesn't exist?).
2020-10-16 10:13:52.588 4309-4309/? E/libnfc_nci: [ERROR:NativeNfcTag.cpp(866)] nativeNfcTag_doDisconnect: tag already deactivated
2020-10-16 10:13:52.571 0-0/? E/i2c-msm-v2 c1b6000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:7) mode:FIFO slv_addr:0x28 MSTR_STS:0x0d1300c8 OPER:0x00000090 

我的问题在@RickSanchez的建议下得到了解决,但我必须在AOSP中添加两个库,另外@RickSanchez给出的make文件如下

3 个评论
你是否通过LOCAL_PREBUILT_JNI_LIBS在Makefile中指定了.so库?除非指定,否则默认情况下它们是不会被复制过来的。请看这个答案。stackoverflow.com/a/64694422/3801327
semw
你指定了LOCAL_PREBUILT_JNI_LIBS := \ @lib/arm64-v8a/libnoise.so。这里@lib/arm64-v8a/libnoise.so是设备文件夹,在构建AOSP镜像后,lib会被复制到这里。orAOSP的源代码文件夹,我把VPN应用的libs放在这里。
这是APK里面的lib的路径。如果你省略@,它指的是同一目录下名为lib的本地文件夹(在这种情况下,你必须手动将lib放入其中)。
android
vpn
android-source
openvpn
semw
semw
发布于 2020-11-08
1 个回答
Rick Sanchez
Rick Sanchez
发布于 2020-11-09
已采纳
0 人赞同

建立一个名为OpenVPN的文件夹,将APK命名为OpenVPN.apk放在里面,并将Android.mk放在下面。

LOCAL_PATH := $(call my-dir)
my_archs := arm x86 arm64
my_src_arch := $(call get-prebuilt-src-arch, $(my_archs))
include $(CLEAR_VARS)
LOCAL_MODULE := OpenVPN
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := OpenVPN.apk
LOCAL_PREBUILT_JNI_LIBS := \
  @lib/arm64-v8a/libc++_shared.so \
  @lib/arm64-v8a/libconceal.so \
  @lib/arm64-v8a/libfb.so \
  @lib/arm64-v8a/libfolly_futures.so \
  @lib/arm64-v8a/libfolly_json.so \
  @lib/arm64-v8a/libglog.so \
  @lib/arm64-v8a/libglog_init.so \
  @lib/arm64-v8a/libhermes-executor-debug.so \
  @lib/arm64-v8a/libhermes-executor-release.so \
  @lib/arm64-v8a/libhermes-inspector.so \
  @lib/arm64-v8a/libhttpcli.so \
  @lib/arm64-v8a/libimagepipeline.so \
  @lib/arm64-v8a/libjsc.so \
  @lib/arm64-v8a/libjscexecutor.so \
  @lib/arm64-v8a/libjsijniprofiler.so \
  @lib/arm64-v8a/libjsinspector.so \
  @lib/arm64-v8a/libnative-filters.so \
  @lib/arm64-v8a/libnative-imagetranscoder.so \
  @lib/arm64-v8a/libovpncli.so \
  @lib/arm64-v8a/libreactnativeblob.so \
  @lib/arm64-v8a/libreactnativejni.so \
  @lib/arm64-v8a/libyoga.so
LOCAL_MODULE_TARGET_ARCH := $(my_src_arch)