refactor(retention): 重构项目并添加新功能

- 更新包名从 com.example.studyapp 到 com.example.retention
- 添加 ArmCloudApiClient 类实现设备属性更新功能
- 更新所有相关类和文件以适应新的包名
This commit is contained in:
yjj38 2025-07-09 17:04:18 +08:00
parent 7cf941af6e
commit 2a7132d7b0
40 changed files with 341 additions and 201 deletions

View File

@ -3,7 +3,7 @@ plugins {
} }
android { android {
namespace 'com.example.studyapp' namespace 'com.example.retention'
compileSdk 35 compileSdk 35
signingConfigs { signingConfigs {

View File

@ -4,7 +4,7 @@
"type": "APK", "type": "APK",
"kind": "Directory" "kind": "Directory"
}, },
"applicationId": "com.example.studyapp", "applicationId": "com.example.retention",
"variantName": "release", "variantName": "release",
"elements": [ "elements": [
{ {

View File

@ -1,4 +1,4 @@
package com.example.studyapp; package com.example.retention;
import android.content.Context; import android.content.Context;
@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
public void useAppContext() { public void useAppContext() {
// Context of the app under test. // Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.example.studyapp", appContext.getPackageName()); assertEquals("com.example.retention", appContext.getPackageName());
} }
} }

View File

@ -45,7 +45,7 @@
android:theme="@style/Theme.StudyApp" android:theme="@style/Theme.StudyApp"
tools:targetApi="31"> tools:targetApi="31">
<activity <activity
android:name=".MainActivity" android:name="com.example.retention.MainActivity"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@ -1,16 +1,13 @@
package com.example.studyapp; package com.example.retention;
import static com.example.studyapp.task.TaskUtil.infoUpload; import static com.example.retention.task.TaskUtil.infoUpload;
import static com.example.studyapp.utils.Utils.isNetworkAvailable; import static com.example.retention.utils.Utils.isNetworkAvailable;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.net.Uri; import android.net.Uri;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
@ -30,20 +27,17 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.work.PeriodicWorkRequest; import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager; import androidx.work.WorkManager;
import com.example.studyapp.autoJS.AutoJsUtil; import com.example.retention.R;
import com.example.studyapp.device.ChangeDeviceInfoUtil; import com.example.retention.autoJS.AutoJsUtil;
import com.example.retention.device.ChangeDeviceInfoUtil;
import com.example.studyapp.proxy.ClashUtil; import com.example.retention.proxy.ClashUtil;
import com.example.studyapp.service.MyAccessibilityService; import com.example.retention.service.MyAccessibilityService;
import com.example.studyapp.task.TaskUtil; import com.example.retention.task.TaskUtil;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import com.example.studyapp.utils.ShellUtils; import com.example.retention.worker.CheckAccessibilityWorker;
import com.example.studyapp.utils.Utils; import com.example.retention.worker.LoadDeviceWorker;
import com.example.studyapp.utils.ZipUtils;
import com.example.studyapp.worker.CheckAccessibilityWorker;
import com.example.studyapp.worker.LoadDeviceWorker;
import java.io.File;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;

View File

@ -0,0 +1,4 @@
package com.example.retention
class ScriptRepository {
}

View File

@ -1,6 +1,6 @@
package com.example.studyapp.autoJS; package com.example.retention.autoJS;
import static com.example.studyapp.task.TaskUtil.downloadCodeFile; import static com.example.retention.task.TaskUtil.downloadCodeFile;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
@ -14,9 +14,9 @@ import android.widget.Toast;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.example.studyapp.MainActivity; import com.example.retention.MainActivity;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import com.example.studyapp.utils.ShellUtils; import com.example.retention.utils.ShellUtils;
import java.io.File; import java.io.File;

View File

@ -1,8 +1,8 @@
package com.example.studyapp.config; package com.example.retention.config;
import android.content.Context; import android.content.Context;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;

View File

@ -0,0 +1,248 @@
package com.example.retention.device;
import android.util.Log;
import com.example.retention.utils.LogFileUtil;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.OkHttpClient.Builder;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
* @Time: 2025-06-08 17:06
* @Creator: 初屿贤
* @File: ArmCloudApiClient
* @Project: study.App
* @Description:
*/
public class ArmCloudApiClient {
private final OkHttpClient client;
private final String baseUrl;
private final String accessKey;
private final String secretKey;
public ArmCloudApiClient(String baseUrl, String accessKey, String secretKey) {
this.client = new Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build();
this.baseUrl = baseUrl;
this.accessKey = accessKey;
this.secretKey = secretKey;
}
private static final String ALGORITHM = "HmacSHA256";
public static String calculateSignature(String timestamp, String path, String body, String secretKey) throws Exception {
String stringToSign = timestamp + path + (body != null ? body : "");
Mac hmacSha256 = Mac.getInstance(ALGORITHM);
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), ALGORITHM);
hmacSha256.init(secretKeySpec);
byte[] hash = hmacSha256.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
return bytesToHex(hash);
}
private static String bytesToHex(byte[] bytes) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
/**
* 修改实例安卓改机属性 静态设置安卓改机属性需要重启实例才能够生效一般用于修改设备信息 该接口与修改实例属性接口的区别在于生效时机该接口生效时间为每次开机初始化 设置实例属性后属性数据会持久化存储重启或重置实例无需再调用该接口
*
* @param padCode 实例 ID非空
* @param props 属性映射非空
* @param restart 是否自动重启
* @return 接口返回结果字符串
* @throws IOException 请求失败或网络错误
*/
public String updateAndroidModProperties(String padCode, Map<String, String> props, boolean restart) throws IOException {
// 参数校验
if (padCode == null || padCode.isEmpty()) {
throw new IllegalArgumentException("padCode 不能为空");
}
if (props == null) {
throw new IllegalArgumentException("props 不能为 null");
}
// 构造请求体
JSONObject json = new JSONObject();
try {
json.put("padCode", padCode);
json.put("props", new JSONObject(props));
json.put("restart", restart);
} catch (JSONException e) {
LogFileUtil.logAndWrite(Log.ERROR, "ArmCloudApiClient", "updateAndroidModProperties: JSON error", e);
}
String jsonBody = json.toString();
// 生成时间戳
String timestamp = String.valueOf(System.currentTimeMillis());
String API_PATH = "/openapi/open/pad/updatePadAndroidProp";
String signature = "";
try {
signature = calculateSignature(timestamp, API_PATH, jsonBody, secretKey);
} catch (Exception e) {
LogFileUtil.logAndWrite(Log.ERROR, "ArmCloudApiClient", "updateAndroidModProperties: Signature error", e);
}
RequestBody body = RequestBody.create(
MediaType.parse("application/json; charset=utf-8"),
jsonBody
);
Request request = new Request.Builder()
.url(baseUrl + API_PATH)
.addHeader("authver", "2.0")
.addHeader("x-ak", accessKey)
.addHeader("x-timestamp", timestamp)
.addHeader("x-sign", signature)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("请求失败: " + response);
}
ResponseBody responseBody = response.body();
if (responseBody == null) {
throw new IOException("响应体为空");
}
return responseBody.string();
}
}
/**
* 修改实例属性 动态修改实例的属性信息包括系统属性和设置 实例需要处于开机状态该接口为即时生效
* <p>
* 示例 String[] padCodes = new String[]{"AC21020010001"}; List<PropertyItem> systemProps = Arrays.asList( new PropertyItem("ro.build.id", "QQ3A.200805.001")
* ); List<PropertyItem> oaidProps = Arrays.asList( new PropertyItem("oaid", "001") );
* <p>
* String response = client.updateInstanceProperties( padCodes, null, // modemPersistProps null, // modemProps null, // systemPersistProps systemProps,
* null, // settingProps oaidProps );
*/
public String updateInstanceProperties(
String[] padCodes,
List<PropertyItem> modemPersistProps,
List<PropertyItem> modemProps,
List<PropertyItem> systemPersistProps,
List<PropertyItem> systemProps,
List<PropertyItem> settingProps,
List<PropertyItem> oaidProps
) throws IOException {
if (padCodes == null || padCodes.length == 0) {
throw new IllegalArgumentException("padCodes 不能为空");
}
JSONObject json = new JSONObject();
try {
json.put("padCodes", new JSONArray(padCodes));
putPropertyItems(json, "modemPersistPropertiesList", modemPersistProps);
putPropertyItems(json, "modemPropertiesList", modemProps);
putPropertyItems(json, "systemPersistPropertiesList", systemPersistProps);
putPropertyItems(json, "systemPropertiesList", systemProps);
putPropertyItems(json, "settingPropertiesList", settingProps);
putPropertyItems(json, "oaidPropertiesList", oaidProps);
} catch (JSONException e) {
LogFileUtil.logAndWrite(Log.ERROR, "ArmCloudApiClient", "updateInstanceProperties: JSON error", e);
}
String jsonBody = json.toString();
String timestamp = String.valueOf(System.currentTimeMillis());
String API_PATH = "/openapi/open/pad/updatePadProperties";
if (secretKey == null || secretKey.isEmpty()) {
throw new IllegalArgumentException("secretKey 不能为空");
}
String signature = null;
try {
signature = calculateSignature(timestamp, API_PATH, jsonBody, secretKey);
} catch (Exception e) {
LogFileUtil.logAndWrite(Log.ERROR, "ArmCloudApiClient", "updateInstanceProperties: calculateSignature error", e);
}
RequestBody body = RequestBody.create(
MediaType.parse("application/json; charset=utf-8"),
jsonBody
);
Request request = new Request.Builder()
.url(baseUrl + API_PATH)
.addHeader("authver", "2.0")
.addHeader("x-ak", accessKey)
.addHeader("x-timestamp", timestamp)
.addHeader("x-sign", signature)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("请求失败: " + response);
}
try (ResponseBody responseBody = response.body()) {
return responseBody != null ? responseBody.string() : "";
}
}
}
private void putPropertyItems(JSONObject json, String key, List<PropertyItem> items) throws JSONException {
if (items != null && !items.isEmpty()) {
JSONArray array = new JSONArray();
for (PropertyItem item : items) {
array.put(item.toJson());
}
json.put(key, array);
}
}
public static class PropertyItem {
private String propertiesName;
private String propertiesValue;
public PropertyItem(String name, String value) {
this.propertiesName = name;
this.propertiesValue = value;
}
public JSONObject toJson() throws JSONException {
JSONObject json = new JSONObject();
json.put("propertiesName", propertiesName);
json.put("propertiesValue", propertiesValue);
return json;
}
}
}

View File

@ -1,27 +1,26 @@
package com.example.studyapp.device; package com.example.retention.device;
import static com.example.studyapp.autoJS.AutoJsUtil.isAppInstalled; import static com.example.retention.autoJS.AutoJsUtil.isAppInstalled;
import static com.example.studyapp.utils.LogFileUtil.logAndWrite; import static com.example.retention.utils.LogFileUtil.logAndWrite;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.util.Log; import android.util.Log;
import com.example.studyapp.task.AfInfo; import com.example.retention.task.AfInfo;
import com.example.studyapp.task.BigoInfo; import com.example.retention.task.BigoInfo;
import com.example.studyapp.task.DeviceInfo; import com.example.retention.task.DeviceInfo;
import com.example.studyapp.task.TaskUtil; import com.example.retention.task.TaskUtil;
import com.example.studyapp.utils.ApkInstaller; import com.example.retention.utils.ApkInstaller;
import com.example.studyapp.utils.HttpUtil; import com.example.retention.utils.HttpUtil;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import com.example.studyapp.utils.ShellUtils; import com.example.retention.utils.ShellUtils;
import com.example.studyapp.utils.ZipUtils; import com.example.retention.utils.ZipUtils;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.device; package com.example.retention.device;
public class Native { public class Native {
static { static {

View File

@ -1,24 +1,20 @@
package com.example.studyapp.proxy; package com.example.retention.proxy;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import okhttp3.Response; import okhttp3.Response;
import okhttp3.ResponseBody;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.request; package com.example.retention.request;
// 这是发送到服务端的请求体JSON 格式 // 这是发送到服务端的请求体JSON 格式
public class ScriptResultRequest { public class ScriptResultRequest {

View File

@ -1,4 +1,4 @@
package com.example.studyapp.service; package com.example.retention.service;
import android.Manifest; import android.Manifest;
import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityService;
@ -6,19 +6,17 @@ import android.app.Notification;
import android.app.NotificationChannel; import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.os.Build; import android.os.Build;
import android.os.IBinder;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import android.widget.Toast; import android.widget.Toast;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.example.studyapp.MainActivity; import com.example.retention.MainActivity;
import com.example.studyapp.R; import com.example.retention.R;
public class MyAccessibilityService extends AccessibilityService { public class MyAccessibilityService extends AccessibilityService {

View File

@ -1,4 +1,4 @@
package com.example.studyapp.task; package com.example.retention.task;
public class AfInfo { public class AfInfo {
public String advertiserId; public String advertiserId;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.task; package com.example.retention.task;
// 使用 JSON 库动态生成 JSON 请求体 (使用 Gson 示例) // 使用 JSON 库动态生成 JSON 请求体 (使用 Gson 示例)
public class BigoInfo { public class BigoInfo {

View File

@ -1,4 +1,4 @@
package com.example.studyapp.task; package com.example.retention.task;
public class DeviceInfo { public class DeviceInfo {

View File

@ -1,15 +1,9 @@
package com.example.studyapp.task; package com.example.retention.task;
import static androidx.core.content.PackageManagerCompat.LOG_TAG;
import android.content.Context; import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.LogFileUtil;
import com.example.studyapp.utils.ShellUtils; import com.example.retention.utils.ShellUtils;
import com.google.android.gms.common.util.CollectionUtils;
import com.google.android.gms.common.util.MapUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@ -18,14 +12,10 @@ import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.MultipartBody; import okhttp3.MultipartBody;
@ -34,7 +24,6 @@ import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import okhttp3.Response; import okhttp3.Response;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import org.jetbrains.annotations.NotNull;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;

View File

@ -1,14 +1,10 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import static com.example.studyapp.utils.ZipUtils.getAllApkFiles; import static com.example.retention.utils.ZipUtils.getAllApkFiles;
import android.content.Context;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import java.io.DataOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.example.studyapp.utils; package com.example.retention.utils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.util.Log; import android.util.Log;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.text.TextUtils; import android.text.TextUtils;
@ -7,7 +7,6 @@ import java.net.UnknownHostException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern;
public class IpUtil { public class IpUtil {
public static boolean isValidIPAddress(String ipAddress) { public static boolean isValidIPAddress(String ipAddress) {

View File

@ -1,4 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.example.studyapp.utils; package com.example.retention.utils;
import java.lang.reflect.AccessibleObject; import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Member; import java.lang.reflect.Member;

View File

@ -1,8 +1,6 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.util.Log;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;

View File

@ -1,6 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import static java.security.AccessController.getContext;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.BufferedReader; import java.io.BufferedReader;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.utils; package com.example.retention.utils;
import android.util.Log; import android.util.Log;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.worker; package com.example.retention.worker;
import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityService;
import android.content.ComponentName; import android.content.ComponentName;
@ -10,7 +10,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.work.CoroutineWorker; import androidx.work.CoroutineWorker;
import androidx.work.WorkerParameters; import androidx.work.WorkerParameters;
import com.example.studyapp.service.MyAccessibilityService; import com.example.retention.service.MyAccessibilityService;
import kotlin.coroutines.Continuation; import kotlin.coroutines.Continuation;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -1,12 +1,8 @@
package com.example.studyapp.worker; package com.example.retention.worker;
import static com.example.studyapp.utils.Utils.isNetworkAvailable; import static com.example.retention.utils.Utils.isNetworkAvailable;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
@ -15,23 +11,15 @@ import androidx.annotation.NonNull;
import androidx.work.CoroutineWorker; import androidx.work.CoroutineWorker;
import androidx.work.WorkerParameters; import androidx.work.WorkerParameters;
import com.example.studyapp.autoJS.AutoJsUtil; import com.example.retention.autoJS.AutoJsUtil;
import com.example.studyapp.device.ChangeDeviceInfoUtil; import com.example.retention.device.ChangeDeviceInfoUtil;
import com.example.studyapp.proxy.ClashUtil; import com.example.retention.proxy.ClashUtil;
import com.example.studyapp.task.TaskUtil; import com.example.retention.utils.LogFileUtil;
import com.example.studyapp.utils.LogFileUtil; import com.example.retention.utils.Utils;
import com.example.studyapp.utils.Utils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
import kotlin.coroutines.Continuation; import kotlin.coroutines.Continuation;

View File

@ -1,4 +0,0 @@
package com.example.studyapp
class ScriptRepository {
}

View File

@ -1,63 +0,0 @@
{
"cpuClockSpeed": "cpu_clock_speed_value",
"gaid": "gaid_value",
"userAgent": "User-Agent_value",
"osLang": "os_lang_value",
"osVer": "os_ver_value",
"tz": "tz_value",
"systemCountry": "system_country_value",
"simCountry": "sim_country_value",
"romFreeIn": "rom_free_in_value",
"resolution": "resolution_value",
"vendor": "vendor_value",
"batteryScale": "bat_scale_value",
"net": "net_value",
"dpi": "dpi_value",
"romFreeExt": "rom_free_ext_value",
"dpiF": "dpi_f_value",
"cpuCoreNum": "cpu_core_num_value",
"afDeviceObject": {
"advertiserId": "advertiserId_value",
"model": "model_value",
"brand": "brand_value",
"androidId": "android_id_value",
"xPixels": "x_px_value",
"yPixels": "y_px_value",
"densityDpi": "density_dpi_value",
"country": "country_value",
"batteryLevel": "batteryLevel_value",
"stackInfo": "stack_info_value",
"product": "product_value",
"network": "network_value",
"langCode": "lang_code_value",
"cpuAbi": "cpu_abi_value",
"yDp": "ydp_value",
"lang": "lang_value",
"roProductDetails": {
"brand": "ro_product_brand_value",
"model": "ro_product_model_value",
"manufacturer": "ro_product_manufacturer_value",
"device": "ro_product_device_value",
"name": "ro_product_name_value"
},
"roBuildDetails": {
"versionIncremental": "ro_build_version_incremental_value",
"fingerprint": "ro_build_fingerprint_value",
"productBuildFingerprint": "ro_product_build_fingerprint_value",
"systemBuildFingerprint": "ro_system_build_fingerprint_value",
"systemExtBuildFingerprint": "ro_system_ext_build_fingerprint_value",
"vendorBuildFingerprint": "ro_vendor_build_fingerprint_value"
},
"cloudProperties": {
"gpuProperties": {
"glVendor": "persist_sys_cloud_gpu_gl_vendor_value",
"glRenderer": "persist_sys_cloud_gpu_gl_renderer_value",
"glVersion": "persist_sys_cloud_gpu_gl_version_value",
"eglVendor": "persist_sys_cloud_gpu_egl_vendor_value",
"eglVersion": "persist_sys_cloud_gpu_egl_version_value"
},
"drmId": "persist_sys_cloud_drm_id_value",
"batteryCapacity": "persist_sys_cloud_battery_capacity_value"
}
}
}

View File

@ -4,7 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="16dp" android:padding="16dp"
tools:context=".MainActivity"> tools:context="com.example.retention.MainActivity">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -1,4 +1,4 @@
package com.example.studyapp; package com.example.retention;
import org.junit.Test; import org.junit.Test;

View File

@ -1,4 +1,4 @@
package com.example.studyapp.task; package com.example.retention.task;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
@ -131,7 +131,7 @@ public class TaskUtilTest {
// 运行上传方法 // 运行上传方法
String taskId = "asddasdasd"; String taskId = "asddasdasd";
TaskUtil.postDeviceInfo("b3d893cf9de3a85a", taskId, "com.example.studyapp"); TaskUtil.postDeviceInfo("b3d893cf9de3a85a", taskId, "com.example.retention");
} }
@Test @Test

2
cmd
View File

@ -1,4 +1,4 @@
V2243A:/ # ls -l /data/user/0/com.example.studyapp/files/ V2243A:/ # ls -l /data/user/0/com.example.retention/files/
total 37516 total 37516
-rw-rw-rw- 1 u0_a135 u0_a135 2398 2025-05-27 10:43 config.json -rw-rw-rw- 1 u0_a135 u0_a135 2398 2025-05-27 10:43 config.json
-rw------- 1 u0_a135 u0_a135 24 2025-05-27 10:42 profileInstalled -rw------- 1 u0_a135 u0_a135 24 2025-05-27 10:42 profileInstalled

30
err.log
View File

@ -2,26 +2,26 @@
2025-06-23 17:01:42.320 297-462 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0 2025-06-23 17:01:42.320 297-462 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0
2025-06-23 17:01:42.569 297-3144 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0 2025-06-23 17:01:42.569 297-3144 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0
2025-06-23 17:01:43.415 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.SubSettings com.android.settings/com.android.settings.SubSettings 2025-06-23 17:01:43.415 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.SubSettings com.android.settings/com.android.settings.SubSettings
2025-06-23 17:01:44.188 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6066, ts=1750669303948, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6066, ts=1750669303948, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6066, ts=1750669303948, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=209, time=9, total=6066, ts=1750669303948, pr=20, ni=0, virt=14336, shr=111, s=S, cpu=36.0, mem=6.3, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=307, time=374, total=6066, ts=1750669303948, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6066, ts=1750669303948, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:01:44.188 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6066, ts=1750669303948, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6066, ts=1750669303948, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6066, ts=1750669303948, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=209, time=9, total=6066, ts=1750669303948, pr=20, ni=0, virt=14336, shr=111, s=S, cpu=36.0, mem=6.3, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=307, time=374, total=6066, ts=1750669303948, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6066, ts=1750669303948, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]
2025-06-23 17:01:45.397 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/androidx.appcompat.app.AlertDialog com.android.settings/androidx.appcompat.app.AlertDialog 2025-06-23 17:01:45.397 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/androidx.appcompat.app.AlertDialog com.android.settings/androidx.appcompat.app.AlertDialog
2025-06-23 17:01:47.565 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/androidx.appcompat.app.AlertDialog com.android.settings/androidx.appcompat.app.AlertDialog 2025-06-23 17:01:47.565 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/androidx.appcompat.app.AlertDialog com.android.settings/androidx.appcompat.app.AlertDialog
2025-06-23 17:01:51.409 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.SubSettings com.android.settings/com.android.settings.SubSettings 2025-06-23 17:01:51.409 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.SubSettings com.android.settings/com.android.settings.SubSettings
2025-06-23 17:01:54.631 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity 2025-06-23 17:01:54.631 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity
2025-06-23 17:01:54.661 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity 2025-06-23 17:01:54.661 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity com.android.settings/com.android.settings.Settings$AccessibilitySettingsActivity
2025-06-23 17:01:54.733 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6066, ts=1750669314510, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6066, ts=1750669314510, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6066, ts=1750669314510, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=203, time=13, total=6066, ts=1750669314510, pr=20, ni=0, virt=14336, shr=111, s=S, cpu=3.8, mem=6.1, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=307, time=374, total=6066, ts=1750669314510, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6066, ts=1750669314510, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:01:54.733 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6066, ts=1750669314510, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6066, ts=1750669314510, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6066, ts=1750669314510, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=203, time=13, total=6066, ts=1750669314510, pr=20, ni=0, virt=14336, shr=111, s=S, cpu=3.8, mem=6.1, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=307, time=374, total=6066, ts=1750669314510, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6066, ts=1750669314510, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]
2025-06-23 17:01:56.366 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity 2025-06-23 17:01:56.366 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity
2025-06-23 17:01:56.413 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity 2025-06-23 17:01:56.413 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity com.android.settings/com.android.settings.Settings$AppManageExternalStorageActivity
2025-06-23 17:01:59.870 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [Storage Permissions granted]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870589469; PackageName: com.example.studyapp; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [Storage Permissions granted]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0 2025-06-23 17:01:59.870 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [Storage Permissions granted]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870589469; PackageName: com.example.retention; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [Storage Permissions granted]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0
2025-06-23 17:01:59.924 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.studyapp/com.example.studyapp.MainActivity com.example.studyapp/com.example.studyapp.MainActivity 2025-06-23 17:01:59.924 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.retention/com.example.retention.MainActivity com.example.retention/com.example.retention.MainActivity
2025-06-23 17:02:05.235 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6058, ts=1750669325040, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6058, ts=1750669325040, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6058, ts=1750669325040, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=206, time=19, total=6058, ts=1750669325040, pr=10, ni=-10, virt=14336, shr=114, s=S, cpu=104.0, mem=6.2, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=308, time=374, total=6058, ts=1750669325040, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6058, ts=1750669325040, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:02:05.235 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6058, ts=1750669325040, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6058, ts=1750669325040, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6058, ts=1750669325040, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=206, time=19, total=6058, ts=1750669325040, pr=10, ni=-10, virt=14336, shr=114, s=S, cpu=104.0, mem=6.2, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=308, time=374, total=6058, ts=1750669325040, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.3, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6058, ts=1750669325040, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]
2025-06-23 17:02:08.114 297-16062 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0 2025-06-23 17:02:08.114 297-16062 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0
2025-06-23 17:02:08.119 297-462 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0 2025-06-23 17:02:08.119 297-462 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0
2025-06-23 17:02:08.365 297-11816 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0 2025-06-23 17:02:08.365 297-11816 ClipboardService system_server E Denying clipboard access to org.autojs.autojs6, application is not in focus nor is it a system service for user 0
2025-06-23 17:02:09.928 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [任务正在执行]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870599525; PackageName: com.example.studyapp; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [任务正在执行]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0 2025-06-23 17:02:09.928 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [任务正在执行]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870599525; PackageName: com.example.retention; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [任务正在执行]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0
2025-06-23 17:02:12.071 51143-51376 isAppInstalled com.example.studyapp D Checking if app is installed: org.autojs.autojs6 2025-06-23 17:02:12.071 51143-51376 isAppInstalled com.example.retention D Checking if app is installed: org.autojs.autojs6
2025-06-23 17:02:12.075 51143-51376 ShellUtils com.example.studyapp D execRootCmdAndGetResult - Started execution for command: pm list packages | grep org.autojs.autojs6 2025-06-23 17:02:12.075 51143-51376 ShellUtils com.example.retention D execRootCmdAndGetResult - Started execution for command: pm list packages | grep org.autojs.autojs6
2025-06-23 17:02:12.120 51143-51376 ShellUtils com.example.studyapp D Shell Output: package:org.autojs.autojs6 2025-06-23 17:02:12.120 51143-51376 ShellUtils com.example.retention D Shell Output: package:org.autojs.autojs6
2025-06-23 17:02:12.223 51143-51376 isAppInstalled com.example.studyapp D App is installed: org.autojs.autojs6 2025-06-23 17:02:12.223 51143-51376 isAppInstalled com.example.retention D App is installed: org.autojs.autojs6
2025-06-23 17:02:12.225 297-3145 ActivityTaskManager system_server I START u0 {flg=0x10000000 cmp=org.autojs.autojs6/org.autojs.autojs.external.open.RunIntentActivity (has extras)} from uid 10234 2025-06-23 17:02:12.225 297-3145 ActivityTaskManager system_server I START u0 {flg=0x10000000 cmp=org.autojs.autojs6/org.autojs.autojs.external.open.RunIntentActivity (has extras)} from uid 10234
2025-06-23 17:02:12.240 1532-1532 App org.autojs.autojs6 D setCurrentActivity: org.autojs.autojs.external.open.RunIntentActivity@aad3ba2 2025-06-23 17:02:12.240 1532-1532 App org.autojs.autojs6 D setCurrentActivity: org.autojs.autojs.external.open.RunIntentActivity@aad3ba2
2025-06-23 17:02:12.243 1532-1532 ScriptEngineService org.autojs.autojs6 D JavaScriptSource: true 2025-06-23 17:02:12.243 1532-1532 ScriptEngineService org.autojs.autojs6 D JavaScriptSource: true
@ -31,7 +31,7 @@
2025-06-23 17:02:12.250 1532-51468 ContextFactory org.autojs.autojs6 D onContextCreated: count = 1 2025-06-23 17:02:12.250 1532-51468 ContextFactory org.autojs.autojs6 D onContextCreated: count = 1
2025-06-23 17:02:12.294 1532-51468 ScriptEngineService org.autojs.autojs6 D onStart 2025-06-23 17:02:12.294 1532-51468 ScriptEngineService org.autojs.autojs6 D onStart
2025-06-23 17:02:12.299 1532-51468 GlobalConsole org.autojs.autojs6 D 09:02:12.299/V: Running [$sdcard/script/main.js]. 2025-06-23 17:02:12.299 1532-51468 GlobalConsole org.autojs.autojs6 D 09:02:12.299/V: Running [$sdcard/script/main.js].
2025-06-23 17:02:12.307 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.studyapp/com.example.studyapp.MainActivity com.example.studyapp/com.example.studyapp.MainActivity 2025-06-23 17:02:12.307 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.retention/com.example.retention.MainActivity com.example.retention/com.example.retention.MainActivity
2025-06-23 17:02:12.307 1532-51469 AndroidContextFactory org.autojs.autojs6 D onContextCreated: count = 2 2025-06-23 17:02:12.307 1532-51469 AndroidContextFactory org.autojs.autojs6 D onContextCreated: count = 2
2025-06-23 17:02:12.308 1532-51470 AndroidContextFactory org.autojs.autojs6 D onContextCreated: count = 3 2025-06-23 17:02:12.308 1532-51470 AndroidContextFactory org.autojs.autojs6 D onContextCreated: count = 3
2025-06-23 17:02:12.308 1532-51470 ContextFactory org.autojs.autojs6 D onContextCreated: count = 3 2025-06-23 17:02:12.308 1532-51470 ContextFactory org.autojs.autojs6 D onContextCreated: count = 3
@ -182,14 +182,14 @@
2025-06-23 17:02:14.093 1532-51468 AndroidContextFactory org.autojs.autojs6 D onContextReleased: count = 0 2025-06-23 17:02:14.093 1532-51468 AndroidContextFactory org.autojs.autojs6 D onContextReleased: count = 0
2025-06-23 17:02:14.093 1532-51468 ContextFactory org.autojs.autojs6 D onContextReleased: count = 0 2025-06-23 17:02:14.093 1532-51468 ContextFactory org.autojs.autojs6 D onContextReleased: count = 0
2025-06-23 17:02:14.093 1532-5003 BufferQueueProducer org.autojs.autojs6 E [ImageReader-1080x1920f1m3-1532-8](id:5fc00000021,api:1,p:52,c:1532) dequeueBuffer: BufferQueue has been abandoned 2025-06-23 17:02:14.093 1532-5003 BufferQueueProducer org.autojs.autojs6 E [ImageReader-1080x1920f1m3-1532-8](id:5fc00000021,api:1,p:52,c:1532) dequeueBuffer: BufferQueue has been abandoned
2025-06-23 17:02:14.099 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.studyapp/com.example.studyapp.MainActivity com.example.studyapp/com.example.studyapp.MainActivity 2025-06-23 17:02:14.099 1532-1532 ActivityInfoProvider org.autojs.autojs6 D setLatestComponent: com.example.retention/com.example.retention.MainActivity com.example.retention/com.example.retention.MainActivity
2025-06-23 17:02:14.102 1532-5003 BpBinder org.autojs.autojs6 I onLastStrongRef automatically unlinking death recipients: <uncached descriptor> 2025-06-23 17:02:14.102 1532-5003 BpBinder org.autojs.autojs6 I onLastStrongRef automatically unlinking death recipients: <uncached descriptor>
2025-06-23 17:02:14.103 297-6815 CoreBackPreview system_server D Window{e9771a6 u0 org.autojs.autojs6/org.autojs.autojs.core.activity.StartForResultActivity}: Setting back callback null 2025-06-23 17:02:14.103 297-6815 CoreBackPreview system_server D Window{e9771a6 u0 org.autojs.autojs6/org.autojs.autojs.core.activity.StartForResultActivity}: Setting back callback null
2025-06-23 17:02:14.104 297-6815 InputManager-JNI system_server W Input channel object 'e9771a6 org.autojs.autojs6/org.autojs.autojs.core.activity.StartForResultActivity (client)' was disposed without first being removed with the input manager! 2025-06-23 17:02:14.104 297-6815 InputManager-JNI system_server W Input channel object 'e9771a6 org.autojs.autojs6/org.autojs.autojs.core.activity.StartForResultActivity (client)' was disposed without first being removed with the input manager!
2025-06-23 17:02:14.251 297-297 NotificationService system_server I Cannot find enqueued record for key: 0|org.autojs.autojs6|207|null|10100 2025-06-23 17:02:14.251 297-297 NotificationService system_server I Cannot find enqueued record for key: 0|org.autojs.autojs6|207|null|10100
2025-06-23 17:02:15.923 297-3145 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@fb6cbea 2025-06-23 17:02:15.923 297-3145 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@fb6cbea
2025-06-23 17:02:15.934 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [首次 Threds errorFailed to invoke method app.viewFile. Cannot view /sdcard/script/launcher-release.apk as it doesn't exist (/storage/emulated/0/script/main.js#647), AutoJs6]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870605533; PackageName: org.autojs.autojs6; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [首次 Threds errorFailed to invoke method app.viewFile. Cannot view /sdcard/script/launcher-release.apk as it doesn't exist (/storage/emulated/0/script/main.js#647), AutoJs6]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0 2025-06-23 17:02:15.934 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [首次 Threds errorFailed to invoke method app.viewFile. Cannot view /sdcard/script/launcher-release.apk as it doesn't exist (/storage/emulated/0/script/main.js#647), AutoJs6]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870605533; PackageName: org.autojs.autojs6; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [首次 Threds errorFailed to invoke method app.viewFile. Cannot view /sdcard/script/launcher-release.apk as it doesn't exist (/storage/emulated/0/script/main.js#647), AutoJs6]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0
2025-06-23 17:02:16.164 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=5956, ts=1750669335563, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=5956, ts=1750669335563, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=5956, ts=1750669335563, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=212, time=22, total=5956, ts=1750669335563, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=314, time=374, total=5956, ts=1750669335563, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.5, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=5956, ts=1750669335563, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:02:16.164 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=5956, ts=1750669335563, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=5956, ts=1750669335563, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=5956, ts=1750669335563, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=212, time=22, total=5956, ts=1750669335563, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=314, time=374, total=5956, ts=1750669335563, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.5, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=5956, ts=1750669335563, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]
2025-06-23 17:02:18.505 297-3143 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@c258390 2025-06-23 17:02:18.505 297-3143 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@c258390
2025-06-23 17:02:18.517 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [首次 脚本线程 脚本catch结束, AutoJs6]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870608116; PackageName: org.autojs.autojs6; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [首次 脚本线程 脚本catch结束, AutoJs6]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0 2025-06-23 17:02:18.517 1532-1532 NotificationObserver org.autojs.autojs6 D onNotification: [首次 脚本线程 脚本catch结束, AutoJs6]; EventType: TYPE_NOTIFICATION_STATE_CHANGED; EventTime: 870608116; PackageName: org.autojs.autojs6; MovementGranularity: 0; Action: 0; ContentChangeTypes: []; WindowChangeTypes: [] [ ClassName: android.widget.Toast; Text: [首次 脚本线程 脚本catch结束, AutoJs6]; ContentDescription: null; ItemCount: -1; CurrentItemIndex: -1; Enabled: false; Password: false; Checked: false; FullScreen: false; Scrollable: false; BeforeText: null; FromIndex: -1; ToIndex: -1; ScrollX: 0; ScrollY: 0; MaxScrollX: 0; MaxScrollY: 0; ScrollDeltaX: -1; ScrollDeltaY: -1; AddedCount: -1; RemovedCount: -1; ParcelableData: null ]; recordCount: 0
2025-06-23 17:02:21.098 297-3143 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@afcbf66 2025-06-23 17:02:21.098 297-3143 NotificationService system_server W Toast already killed. pkg=org.autojs.autojs6 token=android.os.BinderProxy@afcbf66
@ -197,9 +197,9 @@
2025-06-23 17:02:23.095 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9 2025-06-23 17:02:23.095 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9
2025-06-23 17:02:24.589 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1 2025-06-23 17:02:24.589 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1
2025-06-23 17:02:24.589 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9 2025-06-23 17:02:24.589 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9
2025-06-23 17:02:26.771 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6027, ts=1750669346510, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6027, ts=1750669346510, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6027, ts=1750669346510, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=212, time=22, total=6027, ts=1750669346510, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=315, time=374, total=6027, ts=1750669346510, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.6, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6027, ts=1750669346510, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:02:26.771 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6027, ts=1750669346510, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6027, ts=1750669346510, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6027, ts=1750669346510, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=212, time=22, total=6027, ts=1750669346510, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=315, time=374, total=6027, ts=1750669346510, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.6, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6027, ts=1750669346510, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]
2025-06-23 17:02:35.613 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1 2025-06-23 17:02:35.613 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1
2025-06-23 17:02:35.613 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9 2025-06-23 17:02:35.613 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9
2025-06-23 17:02:36.534 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1 2025-06-23 17:02:36.534 1532-51478 TrafficStats org.autojs.autojs6 D tagSocket(92) with statsTag=0x4d2, statsUid=-1
2025-06-23 17:02:36.535 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9 2025-06-23 17:02:36.535 1532-51478 TrafficStats org.autojs.autojs6 I tagSocketFd(92, 1234, -1) failed with errno-9
2025-06-23 17:02:37.413 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6034, ts=1750669357102, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6034, ts=1750669357102, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6034, ts=1750669357102, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.studyapp, res=212, time=22, total=6034, ts=1750669357102, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.studyapp), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=315, time=374, total=6034, ts=1750669357102, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.6, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6034, ts=1750669357102, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)] 2025-06-23 17:02:37.413 2002-2092 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=35830, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=139, time=2, total=6034, ts=1750669357102, pr=20, ni=0, virt=1228, shr=84, s=S, cpu=0.0, mem=4.2, args=com.github.kr328.clash), MemEntity(id=null, pid=63204, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=123, time=92, total=6034, ts=1750669357102, pr=20, ni=0, virt=1126, shr=38, s=S, cpu=0.0, mem=3.7, args=com.github.kr328.clash:core), MemEntity(id=null, pid=63228, user=u0_a104, name=Clash for Android, pkg=com.github.kr328.clash, res=25, time=259, total=6034, ts=1750669357102, pr=20, ni=0, virt=704, shr=10, s=S, cpu=0.0, mem=0.7, args=libclash.so), MemEntity(id=null, pid=51143, user=u0_a234, name=Script helper, pkg=com.example.retention, res=212, time=22, total=6034, ts=1750669357102, pr=10, ni=-10, virt=14336, shr=115, s=S, cpu=0.0, mem=6.4, args=com.example.retention), MemEntity(id=null, pid=1532, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=315, time=374, total=6034, ts=1750669357102, pr=20, ni=0, virt=33792, shr=179, s=S, cpu=0.0, mem=9.6, args=org.autojs.autojs6), MemEntity(id=null, pid=56880, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=0, time=0, total=6034, ts=1750669357102, pr=20, ni=0, virt=10240, shr=0, s=S, cpu=0.0, mem=0.0, args=sh)]