diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 380e539..e65d736 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,6 +29,7 @@ cls = Class.forName(""com.appsflyer.AppsFlyerLib""); + Object invoke = cls.getMethod(""getAppsFlyerUID"", Context.class).invoke(cls.getMethod(""getInstance"", new Class[0]).invoke(null, new Object[0]), context); + if (invoke instanceof String) { + a = (String) invoke; + } + } catch (Exception unused) { + b = false; + } + return a; + } +" """""" +cpu_core_num ȡcpu " public static int a() { + if (a) { + return c; + } + int a2 = sg.bigo.ads.common.x.a.a(); + c = a2; + if (a2 != 0) { + a = true; + return a2; + } + try { + c = new File(""/sys/devices/system/cpu/"").listFiles(new C0058a()).length; + } catch (Throwable unused) { + } + if (c <= 1) { + c = Runtime.getRuntime().availableProcessors(); + } + a = true; + sg.bigo.ads.common.x.a.a(c); + return c; + } + +" 4 +cpu_clock_speed ȡcpuƵ """/sys/devices/system/cpu/cpu"" + i3 + ""/cpufreq/cpuinfo_max_freq""" 2150 +total_memory ȡϵͳڴС " + public static long b(Context context) { + ActivityManager.MemoryInfo d2 = d(context); + if (d2 == null) { + return 0L; + } + return f.a(d2.totalMem, 3); + } +" 3765 +free_memory ȡϵͳڴС " public static long a(Context context) { + ActivityManager.MemoryInfo d2 = d(context); + if (d2 == null) { + return 0L; + } + return f.a(d2.availMem, 3); + } + +" 1268 +rom_free_in ȡڲ洢ռĿÿռС " private static long f() { + StatFs statFs = new StatFs(Environment.getDataDirectory().getPath()); + return statFs.getBlockSizeLong() * statFs.getAvailableBlocksLong(); + } +" 16734564352 +rom_free_ext ȡⲿ洢ռĿÿռС " StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getPath()); + return statFs.getBlockSizeLong() * statFs.getAvailableBlocksLong(); +" 16734556160 +sim_country "ȡ豸ǰĹ/ +ҴΪգȡSIMĹҴ +ҪREAD_PHONE_STATEȨ" " public static String e(Context context) { + if (context == null) { + return """"; + } + if (""-1"".equals(e)) { + e = """"; + if (!sg.bigo.ads.common.utils.c.a(context, ""android.permission.READ_PHONE_STATE"")) { + return e; + } + try { + TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(""phone""); + String networkCountryIso = telephonyManager.getNetworkCountryIso(); + e = networkCountryIso; + if (TextUtils.isEmpty(networkCountryIso)) { + e = telephonyManager.getSimCountryIso(); + } + } catch (Exception unused) { + } + } + return e; + } +" """""" +system_country Ҵ locale.getCountry() cn +bat_stat "ȡ豸ĵ״̬ +BatteryManager.BATTERY_STATUS_UNKNOWN1δ֪״̬ +BatteryManager.BATTERY_STATUS_CHARGING2ڳ +BatteryManager.BATTERY_STATUS_DISCHARGING3ڷŵ +BatteryManager.BATTERY_STATUS_NOT_CHARGING4δ +BatteryManager.BATTERY_STATUS_FULL5ѳ" " registerReceiver = context.registerReceiver(null, new IntentFilter(""android.intent.action.BATTERY_CHANGED"")); +registerReceiver.getIntExtra(""status"", -1)" 2 +bat_num ȡ豸ĵصٷֱ0~100 " registerReceiver = context.registerReceiver(null, new IntentFilter(""android.intent.action.BATTERY_CHANGED"")); +registerReceiver.getIntExtra(""level"", -1)" 76 +bat_scale ȡص̶ " registerReceiver = context.registerReceiver(null, new IntentFilter(""android.intent.action.BATTERY_CHANGED"")); +registerReceiver.getIntExtra(""scale"", -1)" 100 +lat_enable ǷgaidĻȡ ȡgaidĴһ 0 +hw_lat_enable Ƿhw_idĻȡ 1 +fire_lat_enable Ƿfire_idĻȡ 1 diff --git a/app/src/main/java/com/example/studyapp/utils/V2rayUtil.java b/app/src/main/java/com/example/studyapp/utils/V2rayUtil.java index 67abe06..f7136c8 100644 --- a/app/src/main/java/com/example/studyapp/utils/V2rayUtil.java +++ b/app/src/main/java/com/example/studyapp/utils/V2rayUtil.java @@ -12,7 +12,7 @@ import java.io.InputStream; import java.io.InputStreamReader; public class V2rayUtil { - private static File v2rayConfig,v2rayBinary; + private static File v2rayConfig, v2rayBinary; public static void startV2Ray(Context context) { try { @@ -78,9 +78,13 @@ public class V2rayUtil { } // 检查并复制 config.json 文件 + v2rayConfig = new File("/data/v2ray/config.json"); - - v2rayConfig = new File("/data/v2ray/config.json"); + File v2rayDirectory = v2rayConfig.getParentFile(); + if (v2rayDirectory != null && !v2rayDirectory.exists()) { + Log.e("V2rayUtil", "Failed to find directory: " + v2rayDirectory.getAbsolutePath()); + return false; // 无法创建目录时直接返回 + } if (!v2rayConfig.exists()) { InputStream configInputStream = context.getAssets().open("v2ray/" + abi + "/config.json"); diff --git a/err.log b/err.log index 8d8caad..1592308 100644 --- a/err.log +++ b/err.log @@ -1,102 +1,2 @@ -2025-05-30 11:18:50.925 54389-54744 CustomVpnService com.example.studyapp W VPN is not active. Skipping packet processing. -2025-05-30 11:18:50.929 300-315 ActivityManager system_server W Bringing down service while still waiting for start foreground: ServiceRecord{710855b u0 com.example.studyapp/.proxy.CustomVpnService} ----------------------------- PROCESS ENDED (54389) for package com.example.studyapp ---------------------------- -2025-05-30 11:18:50.965 54389-54389 CustomVpnService com.example.studyapp I VPN 服务已停止 -2025-05-30 11:18:50.965 54389-54389 stopProxy com.example.studyapp D 服务已成功停止 -2025-05-30 11:18:50.966 54389-54389 Choreographer com.example.studyapp I Skipped 53 frames! The application may be doing too much work on its main thread. -2025-05-30 11:18:50.970 54389-54389 CustomVpnService com.example.studyapp I VPN 服务已销毁 -2025-05-30 11:18:50.970 54389-54389 AndroidRuntime com.example.studyapp D Shutting down VM -2025-05-30 11:18:50.971 54389-54389 AndroidRuntime com.example.studyapp E FATAL EXCEPTION: main (Ask Gemini) - Process: com.example.studyapp, PID: 54389 - android.app.RemoteServiceException$ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{710855b u0 com.example.studyapp/.proxy.CustomVpnService} - at android.app.ActivityThread.generateForegroundServiceDidNotStartInTimeException(ActivityThread.java:2005) - at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1979) - at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException(Unknown Source:0) - at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2241) - at android.os.Handler.dispatchMessage(Handler.java:106) - at android.os.Looper.loopOnce(Looper.java:201) - at android.os.Looper.loop(Looper.java:288) - at android.app.ActivityThread.main(ActivityThread.java:7930) - at java.lang.reflect.Method.invoke(Native Method) - at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) - at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) - Caused by: android.app.StackTrace: Last startServiceCommon() call for this service was made here - at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1915) - at android.app.ContextImpl.startForegroundService(ContextImpl.java:1870) - at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:822) - at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:822) - at com.example.studyapp.MainActivity.handleVpnPermissionResult(MainActivity.java:241) - at com.example.studyapp.MainActivity.onActivityResult(MainActivity.java:175) - at com.example.studyapp.MainActivity.startProxyServer(MainActivity.java:143) - at com.example.studyapp.MainActivity.startProxyVpn(MainActivity.java:127) - at com.example.studyapp.MainActivity.lambda$onCreate$1$com-example-studyapp-MainActivity(MainActivity.java:86) - at com.example.studyapp.MainActivity$$ExternalSyntheticLambda5.onClick(D8$$SyntheticClass:0) - at android.view.View.performClick(View.java:7542) - at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1218) - at android.view.View.performClickInternal(View.java:7519) - at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) - at android.view.View$PerformClick.run(View.java:29476) - at android.os.Handler.handleCallback(Handler.java:942) - at android.os.Handler.dispatchMessage(Handler.java:99) - at android.os.Looper.loopOnce(Looper.java:201)  - at android.os.Looper.loop(Looper.java:288)  - at android.app.ActivityThread.main(ActivityThread.java:7930)  - at java.lang.reflect.Method.invoke(Native Method)  - at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)  - at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)  -2025-05-30 11:18:50.973 300-4987 ActivityTaskManager system_server W Force finishing activity com.example.studyapp/.MainActivity -2025-05-30 11:18:50.986 54389-54389 Process com.example.studyapp I Sending signal. PID: 54389 SIG: 9 -2025-05-30 11:18:51.022 300-10818 ActivityManager system_server I app.info.packageName:com.example.studyapp app.setKilled(true) -2025-05-30 11:18:51.022 300-10818 ActivityManager system_server I Process com.example.studyapp (pid 54389) has died: fg TOP -2025-05-30 11:18:51.022 300-986 WindowManager system_server I WIN DEATH: Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity} -2025-05-30 11:18:51.022 300-986 InputManager-JNI system_server W Input channel object 'ce188c0 com.example.studyapp/com.example.studyapp.MainActivity (client)' was disposed without first being removed with the input manager! -2025-05-30 11:18:51.054 300-319 WindowManager system_server W Failed to deliver inset state change to w=Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity EXITING} (Ask Gemini) - android.os.DeadObjectException - at android.os.BinderProxy.transactNative(Native Method) - at android.os.BinderProxy.transact(BinderProxy.java:584) - at android.view.IWindow$Stub$Proxy.insetsControlChanged(IWindow.java:473) - at com.android.server.wm.WindowState.notifyInsetsControlChanged(WindowState.java:4015) - at com.android.server.wm.InsetsStateController.lambda$notifyPendingInsetsControlChanged$4$com-android-server-wm-InsetsStateController(InsetsStateController.java:351) - at com.android.server.wm.InsetsStateController$$ExternalSyntheticLambda2.run(Unknown Source:2) - at com.android.server.wm.WindowAnimator.executeAfterPrepareSurfacesRunnables(WindowAnimator.java:345) - at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:832) - at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115) - at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57) - at android.os.Handler.handleCallback(Handler.java:942) - at android.os.Handler.dispatchMessage(Handler.java:99) - at android.os.Looper.loopOnce(Looper.java:201) - at android.os.Looper.loop(Looper.java:288) - at android.os.HandlerThread.run(HandlerThread.java:67) - at com.android.server.ServiceThread.run(ServiceThread.java:44) -2025-05-30 11:18:51.054 300-319 WindowManager system_server W Exception thrown during dispatchAppVisibility Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity EXITING} (Ask Gemini) - android.os.DeadObjectException - at android.os.BinderProxy.transactNative(Native Method) - at android.os.BinderProxy.transact(BinderProxy.java:584) - at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536) - at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478) - at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234) - at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392) - at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6865) - at com.android.server.wm.ActivityRecord.onAnimationFinished(ActivityRecord.java:7687) - at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5512) - at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472) - at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5476) - at com.android.server.wm.AppTransitionController.handleClosingApps(AppTransitionController.java:1194) - at com.android.server.wm.AppTransitionController.handleAppTransitionReady(AppTransitionController.java:304) - at com.android.server.wm.RootWindowContainer.checkAppTransitionReady(RootWindowContainer.java:970) - at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:834) - at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126) - at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115) - at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57) - at android.os.Handler.handleCallback(Handler.java:942) - at android.os.Handler.dispatchMessage(Handler.java:99) - at android.os.Looper.loopOnce(Looper.java:201) - at android.os.Looper.loop(Looper.java:288) - at android.os.HandlerThread.run(HandlerThread.java:67) - at com.android.server.ServiceThread.run(ServiceThread.java:44) -2025-05-30 11:18:51.473 300-318 ActivityTaskManager system_server W Activity top resumed state loss timeout for ActivityRecord{86432f9 u0 com.example.studyapp/.MainActivity} t-1 f}} +2025-05-30 15:22:09.569 18506-18506 V2rayUtil com.example.studyapp E Failed to create directory: /data/v2ray +2025-05-30 15:22:09.569 18506-18506 V2Ray com.example.studyapp E V2Ray files are missing, cannot start. \ No newline at end of file