Closed mistek131995 closed 4 months ago
Can I use this example if I manually built the library in *.so?
Example (Line 31, 32, 151, 166) - https://github.com/heiher/sockstun/blob/master/app/src/main/java/hev/sockstun/TProxyService.java
Why need to run as a process? I think you can build it to an executable.
https://github.com/heiher/hev-socks5-tunnel/blob/master/Android.mk#L47
include $(BUILD_EXECUTABLE)
Why need to run as a process? I think you can build it to an executable.
https://github.com/heiher/hev-socks5-tunnel/blob/master/Android.mk#L47
include $(BUILD_EXECUTABLE)
I have this error, when I use this
`companion object { init { System.loadLibrary("hev-socks5-tunnel") } }
private external fun TProxyStartService(configPath: String, fd: Int)
private external fun TProxyStopService()`
But I have *.so file in lib in my apk file.
java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: JNI RegisterNatives called with pending exception java.lang.ClassNotFoundException: Didn't find class "hev.htproxy.TProxyService" on path: DexPathList[[zip file "/data/app/~~c2MipfsEQKx1DsrJ9xZv8w==/com.example.lockvpnandroidapp-HOwYSzVe_lxzrepOr7SF3w==/base.apk"],nativeLibraryDirectories=[/data/app/~~c2MipfsEQKx1DsrJ9xZv8w==/com.example.lockvpnandroidapp-HOwYSzVe_lxzrepOr7SF3w==/lib/arm64, /data/app/~~c2MipfsEQKx1DsrJ9xZv8w==/com.example.lockvpnandroidapp-HOwYSzVe_lxzrepOr7SF3w==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]] java_vm_ext.cc:591] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:259) java_vm_ext.cc:591] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379) java_vm_ext.cc:591] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) java_vm_ext.cc:591] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2) java_vm_ext.cc:591] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1126) java_vm_ext.cc:591] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1080) java_vm_ext.cc:591] at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1003) java_vm_ext.cc:591] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1661) java_vm_ext.cc:591] at void service.XrayVpnService.<clinit>() (XrayVpnService.kt:18) java_vm_ext.cc:591] at java.lang.Object java.lang.Class.newInstance() (Class.java:-2) java_vm_ext.cc:591] at android.app.Service android.app.AppComponentFactory.instantiateService(java.lang.ClassLoader, java.lang.String, android.content.Intent) (AppComponentFactory.java:129) java_vm_ext.cc:591] at android.app.Service androidx.core.app.CoreComponentFactory.instantiateService(java.lang.ClassLoader, java.lang.String, android.content.Intent) (CoreComponentFactory.java:74) java_vm_ext.cc:591] at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:4868) java_vm_ext.cc:591] at void android.app.ActivityThread.-$$Nest$mhandleCreateService(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:-1) java_vm_ext.cc:591] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2425) java_vm_ext.cc:591] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106) java_vm_ext.cc:591] at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:223) java_vm_ext.cc:591] at void android.os.Looper.loop() (Looper.java:324) java_vm_ext.cc:591] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8595) java_vm_ext.cc:591] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) java_vm_ext.cc:591] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:582) java_vm_ext.cc:591] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1061) java_vm_ext.cc:591] java_vm_ext.cc:591] in call to RegisterNatives java_vm_ext.cc:591] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)
If someone encounters the same problem, the service class should be called TProxyService and is located along this path hev.htproxy
You can override the package name in your project code.
https://github.com/heiher/sockstun/blob/master/app/src/main/jni/Application.mk#L19
Hi, I'm new to android, can I run your project on the android system as a process? When I run other libraries as a process, I get a log, but when I run your library, I don't see a log. Is such a launch possible and am I doing everything right? The code is attached. The library is built using ndk with the extension *.so.
` val config = arrayListOf(
"tunnel:",
" name: tun0",
" mtu: 1500",
" ipv4:",
" gateway: 10.14.1.1",
" address: 10.14.1.2",
" prefix: 24",
"socks5:",
" address: 127.0.0.1",
" port: 10808",
" udp: udp",
""
).joinToString("\n")