Commit Graph

53 Commits

Author SHA1 Message Date
yjj38 84db43d571 feat(proxy): 新增国家代码切换功能并引入OkHttp依赖
- 新增 `CountryCode` 类,用于管理和切换国家代码(目前支持US和RU)。
- 在 `LoadDeviceWorker` 和 `MainActivity` 中引入 `CountryCode` 以实现国家切换。
- `MainActivity` 中的 `startProxyVpn` 方法现在使用 `CountryCode.switchCountry()` 来获取当前国家代码。
- `ClashUtil` 中引入 `okhttp3.logging.HttpLoggingInterceptor`。
- 在 `app/build.gradle` 中添加 `okhttp` 和 `logging-interceptor` 依赖。
- 修改了 `MainActivity` 中 `startProxyVpn` 失败时的日志记录标签。
2025-07-09 21:15:17 +08:00
yjj38 d35aa11cdd refactor(proxy): 添加按端口切换代理功能并优化日志记录
- 新增 `getProxyPort` 方法,用于从 `ip.port.json` 文件中读取代理端口。
- 新增 `switchProxyWithPort` 方法,用于根据国家和端口号调用服务器接口切换代理。
- `switchProxyGroup` 方法中的网络请求改为同步执行,并增加了对响应体是否为空的判断。
- 优化了 OkHttpClient 实例的创建,使用共享的 `sharedClient` 并添加了连接和读取超时以及日志拦截器。
- `LoadDeviceWorker` 中 `startProxyVpn` 方法的日志标签从 `TAG` 改为 `MainActivity`。
2025-07-09 21:06:41 +08:00
yjj38 2b60f10351 refactor(proxy): 切换代理逻辑调整
- 将 `ClashUtil.switchProxyGroup` 调用替换为 `ClashUtil.switchProxyWithPort(CountryCode.switchCountry())`
- 移除了 `MainActivity` 中的 `executeSingleLogic` 方法,相关逻辑已在 `LoadDeviceWorker` 中处理
- 在 `LoadDeviceWorker` 和 `MainActivity` 的 `startProxyVpn` 方法中,使用 `TAG` 记录日志,并更新了代理切换逻辑。
2025-07-09 21:04:28 +08:00
yjj38 20eaac8e12 Refactor: 更新实例属性时获取更多设备码
将 `client.getDeviceCodes` 方法中获取设备码的数量从 1 调整为 100,以便在更新实例属性时有更多可用的设备码。
2025-07-09 20:50:32 +08:00
yjj38 c1cdbfeffc refactor(device): 重构设备信息修改和ARM云API客户端逻辑
- `ArmCloudApiClient`:移除构造函数中的 `baseUrl`、`accessKey` 和 `secretKey` 参数,将这些值硬编码到类中。
- `ChangeDeviceInfoUtil`:
    - `changeDeviceInfo` 方法:移除 `padCodes` 参数,改为在方法内部通过 `armClient.getDeviceCodes` 获取。
- `LoadDeviceWorker`:
    - `executeSingleLogic` 方法:在调用 `ChangeDeviceInfoUtil.changeDeviceInfo` 时传递 `MainActivity.armClient`。
- `MainActivity`:
    - 新增 `armClient` 静态成员变量,并在 `onCreate` 中初始化 `ArmCloudApiClient` 实例。
    - 修改 `modifyDeviceInfoButton` 的点击事件,在调用 `ChangeDeviceInfoUtil.changeDeviceInfo` 时传递 `armClient`。
    - `executeSingleLogic` 方法:在调用 `ChangeDeviceInfoUtil.changeDeviceInfo` 时传递 `armClient`。
    - 移除了 `getAndroidId(Context context)` 方法中未使用的代码。
    - 简化了 `onCreate` 方法中的按钮初始化逻辑,引入了 `setupButton` 辅助方法。
    - 引入了 `logInfo`, `logError`, `logWarn`, `showToast` 等辅助方法以简化日志记录和UI提示。
    - 移除了未使用的 `instance` 静态成员变量和 `getInstance()` 方法。
    - 移除了 `executeLogic` 方法和相关的 `isRunning`、`taskLock` 成员变量,相关逻辑已移至 `LoadDeviceWorker`。
    - 调整了 `onDestroy` 方法的逻辑。
2025-07-09 20:27:48 +08:00
yjj38 f0339e7251 feat(ArmCloudApiClient): 新增设备列表查询功能并优化属性更新接口
- 新增 `getDeviceCodes` 方法,用于分页查询ARM设备列表并提取 `deviceCode`。该方法支持多种筛选条件,如实例分配状态、物理机状态、服务器编码等。
- 优化 `updateInstanceProperties` 方法:
    - 增加对 `padCodes` 参数重复项的校验。
    - 将 `padCodes` 的类型从 `JSONArray` 更改为 `new JSONArray(Arrays.asList(padCodes))`,以正确处理数组。
    - 完善了错误处理逻辑,对JSON构建、签名计算、接口返回错误码和响应解析失败等情况进行了更详细的日志记录和异常抛出。
    - 在接口请求成功后,增加了对响应体中 `code` 字段的校验,确保接口调用成功。
    - 将 `baseUrl` 设置为常量。
2025-07-09 19:38:31 +08:00
yjj38 6b507223b3 refactor(device): 重构设备信息修改逻辑并集成ArmCloud API
- 将设备信息修改的硬编码字符串替换为常量。
- `changeDeviceInfo` 方法现在接收 `ArmCloudApiClient` 和 `padCodes` 作为参数。
- 优化了Bigo和AF设备信息的处理逻辑,当对应的 `bigoDeviceObject` 或 `afDeviceObject` 为空时,会跳过相关设置并记录警告。
- 对于AF设备信息的系统属性修改,现在使用 `ArmCloudApiClient` 的 `updateInstanceProperties` 方法进行更新,替代了原有的 `ShellUtils.execRootCmd` 调用。
- 新增 `addProperty` 辅助方法,用于向 `List<PropertyItem>` 中添加非空属性。
- 新增 `execRootCmdIfNotEmpty` 辅助方法,用于执行非空的Shell命令并记录结果。
- 移除了直接通过 `ShellUtils.execRootCmd` 修改系统属性的代码,例如 `setprop ro.product.brand` 等。
- 确保在发生错误时抛出原始异常类型,而不是统一包装成 `RuntimeException`。
2025-07-09 18:36:26 +08:00
yjj38 2a7132d7b0 refactor(retention): 重构项目并添加新功能
- 更新包名从 com.example.studyapp 到 com.example.retention
- 添加 ArmCloudApiClient 类实现设备属性更新功能
- 更新所有相关类和文件以适应新的包名
2025-07-09 17:04:18 +08:00
yjj38 7cf941af6e feat(release): 新增签名配置并更新构建类型
- 新增 release 签名配置,使用 agent_retention.jks 密钥库
- 更新 release 构建类型,启用签名配置和代码混淆
- 移除旧的密钥库文件 (agentkey.jks, new-release-key.jks, your-release-key.jks)
- 更新 .idea/misc.xml 文件
2025-07-04 11:17:03 +08:00
yjj38 c999ee6f69 refactor(proxy): 移除代理检查国家功能并优化 VPN 启动逻辑
- 删除了 ClashUtil 类中的 checkCountryIsUS 方法,移除了检查国家是否为美国的功能
- 修改了 LoadDeviceWorker 类中的 startProxyVpn 方法,去除了返回值,简化了逻辑- 优化了 executeSingleLogic 方法的流程,移除了与代理检查国家相关的代码
2025-07-03 17:25:34 +08:00
yjj38 431267228f JDK升级到21,优化ClashUtil的代理切换和网络检查逻辑
- 项目的JDK版本从17升级到21。
- ClashUtil的`switchProxyGroup`方法改为同步执行,并增加了对HTTP响应状态码的检查。
- 新增`checkCountryIsUS`方法,用于通过ipinfo.io判断当前IP是否在美国,并在VPN启动后调用此方法进行验证。
- `LoadDeviceWorker`中的`startProxyVpn`方法现在会根据`checkCountryIsUS`的结果来决定是否继续执行后续操作。
- AutoJs脚本 (`main.js`) 更新,使用Promise和async/await来处理并行的HTTP请求,并分别调用ipv4.geojs.io的接口获取国家代码和详细地理位置信息。
2025-07-03 13:17:14 +08:00
Administrator 619e39cdc6 打包配置 2025-06-28 14:50:24 +08:00
Administrator d8dd6e740a 添加取消定时任务的方法 2025-06-26 18:18:37 +08:00
Administrator 203fccea87 下载安装 2025-06-26 16:51:31 +08:00
Administrator e619d85361 2025-06-26 14:02:58 +08:00
Administrator 6fa7c334ea 2025-06-25 19:06:03 +08:00
Administrator 951f6697e8 2025-06-25 19:02:51 +08:00
Administrator 4642f6e459 . 2025-06-25 18:09:58 +08:00
Administrator d21136edf5 . 2025-06-25 15:21:03 +08:00
Administrator a6c58716ec . 2025-06-25 13:59:07 +08:00
Administrator 1652482e79 refactor(ChangeDeviceInfoUtil, MainActivity): enhance package processing null-check, cleanup unused variables
- Introduced null-checks for `packageInfo` in `ChangeDeviceInfoUtil` package processing to improve error handling.
- Removed redundant `scriptResult` assignment in `MainActivity` for cleaner execution logic.
- Updated APK and baseline profile files for release configuration.
2025-06-25 10:56:53 +08:00
yjj38 cd09538426 refactor(ChangeDeviceInfoUtil, MainActivity): enhance package processing null-check, cleanup unused variables
- Introduced null-checks for `packageInfo` in `ChangeDeviceInfoUtil` package processing to improve error handling.
- Removed redundant `scriptResult` assignment in `MainActivity` for cleaner execution logic.
- Updated APK and baseline profile files for release configuration.
2025-06-21 16:13:55 +08:00
yjj38 ee67543b0a `refactor(TaskUtil): add taskId support, improved file/directory handling, and introduce compression/unzip utilities` 2025-06-21 14:39:57 +08:00
yjj38 7ce7a3d72e refactor(ShellUtils, TaskUtil): enhance shell execution and streamline file management
- Improved `ShellUtils` with enhanced logging, thread-management, and safety checks for shell command execution.
- Streamlined `TaskUtil`'s file operations with safer and more robust shell commands for deletion, copying, and compression.
- Replaced Java I/O-based file management in `TaskUtil` with shell-based operations for better performance and security.
- Added new helper methods like `delFileSh`, `copyFolderSh`, and `clearUpFileInDst` in `TaskUtil`.
2025-06-20 16:37:36 +08:00
yjj38 30985a0fa0 refactor(app): 重构应用主界面和功能代码
- 更新 activity_main.xml 布局,优化界面结构
- 重构 AutoJsUtil 类,提高代码可读性和维护性
- 改进 ChangeDeviceInfoUtil 类,增强设备信息修改功能
- 更新 build.gradle 配置,提升项目构建兼容性
2025-06-19 22:12:21 +08:00
yjj38 222a2002f9 Add `TaskUtil` for device and file operations; update `MainActivity` for Android ID handling and permissions
Introduced new `TaskUtil` utility class for device info upload, file compression, and remote operations. Updated `MainActivity` to dynamically fetch and utilize Android ID, added Android 13+ permission handling for `FOREGROUND_SERVICE`. Included Mockito dependencies for unit testing, implemented `TaskUtilTest` for API interaction validation. Adjusted `ChangeDeviceInfoUtil` initialization and fetched properties dynamically. Updated `minSdk` and network security configuration.
2025-06-18 14:31:11 +08:00
yjj38 984328b7eb Add release key, metadata, AF parameters, and APK for release configuration
Integrated the release keystore file, generated necessary metadata (`output-metadata.json`), and included detailed AF parameter configurations (`AF设备参数.txt`). Added the release APK and baseline profile files for optimized app deployment.
2025-06-16 16:38:13 +08:00
yjj38 2c9ca8ec44 Refactor `AutoJsUtil` and `MainActivity` to improve script execution and synchronization
Enhanced script execution flow with dedicated `broadcastLock` and `taskLock` for better synchronization. Improved logging, broadcast receiver management, and error handling in `AutoJsUtil`. Removed unused methods and redundant synchronization. Added counter for script runs and optimized lifecycle management for stability.
2025-06-13 19:02:53 +08:00
yjj38 c8650a2fac Enhance `ChangeDeviceInfoUtil` with `TextUtils` for null/empty checks and update deployment target configuration 2025-06-13 14:26:30 +08:00
yjj38 dc2fdd615e Refactor `AutoJsUtil` and `MainActivity` for enhanced script handling and synchronization
Introduced synchronized locking for script execution flow in `MainActivity` and added a robust broadcast receiver registration process in `AutoJsUtil`. Enhanced logging, error handling, and script management utilities. Updated `AutoJsUtil` with better file validation and context-aware lifecycle methods for improved stability and clarity.
2025-06-12 22:55:55 +08:00
yjj38 b6e312cf9e Enhance `ChangeDeviceInfoUtil` and `HttpUtil` for dynamic property updates and robust utilities
Refactored `ChangeDeviceInfoUtil` to dynamically fetch and apply device properties from JSON inputs. Added flexible handling of runtime values, improved error handling, and introduced `HttpUtil` methods for URL placeholders and retrieving the local IP address. Updated `MainActivity` and scripts for streamlined execution flow and better integration.
2025-06-12 11:31:46 +08:00
yjj38 657bb2c2c1 Dynamically fetch and apply device properties from API responses
Implemented dynamic retrieval of device properties from external APIs, parsing JSON responses, and replacing statically hardcoded values. Enhanced flexibility for device information management. Added error handling for JSON parsing and root access validation.
2025-06-10 19:54:32 +08:00
yjj38 c746633baf Dynamically fetch and apply device properties from API responses
Implemented dynamic retrieval of device properties from external APIs, parsing JSON responses, and replacing statically hardcoded values. Enhanced flexibility for device information management. Added error handling for JSON parsing and root access validation.
2025-06-10 11:45:44 +08:00
yjj38 d2661f8fdb Enhance `ChangeDeviceInfoUtil` to collect extensive device and environment data
Added detailed data collection including network type, language, country, advertiser ID, AppsFlyer parameters, device information, sensor data, battery status, and timestamps. Improved network type detection with `NetworkCapabilities` for accuracy. Integrated mock values for testing.
2025-06-09 22:05:48 +08:00
yjj38 6b4e8e4f9e Enhance `ChangeDeviceInfoUtil` to collect extensive device and environment data
Added detailed data collection including network type, language, country, advertiser ID, AppsFlyer parameters, device information, sensor data, battery status, and timestamps. Improved network type detection with `NetworkCapabilities` for accuracy. Integrated mock values for testing.
2025-06-09 21:37:39 +08:00
yjj38 74e77acdd0 Add input handling and execution flow for proxy automation
Introduced input field and button in `MainActivity` and updated layout to enable dynamic iteration of proxy operations based on user input. Implemented logic to handle input validation and sequential proxy processing using predefined proxy names.
2025-06-09 21:08:51 +08:00
yjj38 c27ca64a8d Collect detailed device and environment info for VCloud
Added system-level data collection for properties like User-Agent, OS version, language, DPI, time zone, network type, ISP, country, and Google Advertising ID (GAID). Integrated `play-services-ads-identifier` dependency for retrieving GAID. Updated `build.gradle` and `libs.versions.toml` accordingly.
2025-06-09 16:50:33 +08:00
yjj38 23e9b730bf Collect detailed device and environment info for VCloud
Added system-level data collection for properties like User-Agent, OS version, language, DPI, time zone, network type, ISP, country, and Google Advertising ID (GAID). Integrated `play-services-ads-identifier` dependency for retrieving GAID. Updated `build.gradle` and `libs.versions.toml` accordingly.
2025-06-09 16:45:29 +08:00
yjj38 3bde5cadb7 gffhfth 2025-06-09 16:17:53 +08:00
yjj38 c20f4cb515 Integrate WorkManager for periodic accessibility service checks
Added `CheckAccessibilityWorker` with WorkManager to periodically validate and prompt accessibility service activation. Registered new `MyAccessibilityService` in manifest and set configurations. Introduced native `Singbox` methods for VPN operations and added compatibility fixes, including JNI library path initialization. Updated dependency `androidx.work:work-runtime:2.9.0`.
2025-06-07 09:52:33 +08:00
yjj38 be91f9ea3b **Commit message:**
Replace SingBoxLauncher with SingboxUtil for VPN management

Removed the deprecated `SingBoxLauncher` class and introduced `SingboxUtil` for streamlined VPN service management. Simplified the VPN initialization process and improved compatibility with the new Singbox API.
2025-06-01 10:56:49 +08:00
yjj38 eda9b1013f Fix V2Ray startup issues and add legacy storage support
Addressed directory creation failure and missing V2Ray files to prevent app crashes during VPN initialization. Enabled `requestLegacyExternalStorage` to ensure compatibility with file handling on newer Android versions.
2025-05-30 15:49:23 +08:00
yjj38 8b079e8115 Add configuration files and remove redundant code
Added IntelliJ IDEA project configuration, lint baseline, and inspection profiles for consistency and static analysis. Removed redundant null-check for intent in `MainActivity` to simplify logic and improve readability.
2025-05-30 12:24:32 +08:00
yjj38 1d65b8c5aa Fix VPN service crash due to unhandled foreground start
Addressed issue where `CustomVpnService` fails to properly start in foreground, leading to a `ForegroundServiceDidNotStartInTimeException`. Added handling for service termination and cleanup to prevent abrupt failure.
2025-05-30 11:33:35 +08:00
yjj38 3f3273e557 Remove unused DeviceUtils and disable command safety checks
Deleted `DeviceUtils.java` as it is no longer used and removed redundant native method calls. Disabled safety checks for shell commands in `ShellUtils.java` for enhanced flexibility, ensuring they won't interrupt execution. Updated JNI method paths in `infoct.cpp` to align with updated package structure.
2025-05-30 11:04:26 +08:00
yjj38 b2ec85ddb9 Add native methods to manipulate system and device info
This commit introduces multiple native methods, written in C++, to interact with system and device info such as RAM, CPU, disk, and uptime. It also includes mechanisms to modify or reset system properties, bypass anti-debugging, and handle file path redirection. Additionally, ensures proper JNI bindings to avoid runtime errors like `UnsatisfiedLinkError`.
2025-05-29 22:05:49 +08:00
yjj38 931944167e Refactor and enhance ShellUtils; add ClassUtils utility.
Refactored ShellUtils to improve safety, error handling, and modularity, including checks for command safety, better error logging, and execution timeout handling. Introduced a new ClassUtils utility for operations on classes, such as retrieving short class names, converting between primitive and wrapper types, and handling interfaces and superclasses.
2025-05-29 16:49:38 +08:00
yjj38 208e977d2f Refactor VPN service to dynamically load tunnel address.
Replaced hardcoded TUN address with a dynamic loader using `ConfigLoader`. Introduced `ConfigLoader` to parse `tun_address` from the configuration file or fallback to a default value. Improved file handling in `V2rayUtil` for better readability and maintainability.
2025-05-28 14:18:25 +08:00
yjj38 c852142262 ```
Improve VPN service stability and update V2Ray assets

Enhanced the VPN service by refining error handling, adding retry logic, and improving resource cleanup. Consolidated V2Ray asset management logic, ensured compatibility with device architectures, and adjusted permissions handling for newer Android versions. Renamed and reorganized V2Ray assets for better structure.
```
2025-05-27 19:25:48 +08:00
yjj38 b46404bb1e Refactor VPN setup and V2Ray initialization logic
Simplified VPN configuration, enhanced permission handling, and improved V2Ray file checks to ensure smoother setup. Updated assets and JSON configs to align with new network requirements and reduced redundancy in logging and error handling.
2025-05-26 16:01:40 +08:00