refactor(retention): 重构项目并添加新功能
- 更新包名从 com.example.studyapp 到 com.example.retention - 添加 ArmCloudApiClient 类实现设备属性更新功能 - 更新所有相关类和文件以适应新的包名
This commit is contained in:
parent
7cf941af6e
commit
2a7132d7b0
|
@ -3,7 +3,7 @@ plugins {
|
|||
}
|
||||
|
||||
android {
|
||||
namespace 'com.example.studyapp'
|
||||
namespace 'com.example.retention'
|
||||
compileSdk 35
|
||||
|
||||
signingConfigs {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.example.studyapp",
|
||||
"applicationId": "com.example.retention",
|
||||
"variantName": "release",
|
||||
"elements": [
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp;
|
||||
package com.example.retention;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
|
@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
|
|||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("com.example.studyapp", appContext.getPackageName());
|
||||
assertEquals("com.example.retention", appContext.getPackageName());
|
||||
}
|
||||
}
|
|
@ -45,7 +45,7 @@
|
|||
android:theme="@style/Theme.StudyApp"
|
||||
tools:targetApi="31">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:name="com.example.retention.MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
package com.example.studyapp;
|
||||
package com.example.retention;
|
||||
|
||||
import static com.example.studyapp.task.TaskUtil.infoUpload;
|
||||
import static com.example.studyapp.utils.Utils.isNetworkAvailable;
|
||||
import static com.example.retention.task.TaskUtil.infoUpload;
|
||||
import static com.example.retention.utils.Utils.isNetworkAvailable;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.net.Uri;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
|
@ -30,20 +27,17 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import androidx.work.PeriodicWorkRequest;
|
||||
import androidx.work.WorkManager;
|
||||
|
||||
import com.example.studyapp.autoJS.AutoJsUtil;
|
||||
import com.example.studyapp.device.ChangeDeviceInfoUtil;
|
||||
import com.example.retention.R;
|
||||
import com.example.retention.autoJS.AutoJsUtil;
|
||||
import com.example.retention.device.ChangeDeviceInfoUtil;
|
||||
|
||||
import com.example.studyapp.proxy.ClashUtil;
|
||||
import com.example.studyapp.service.MyAccessibilityService;
|
||||
import com.example.studyapp.task.TaskUtil;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.studyapp.utils.ShellUtils;
|
||||
import com.example.studyapp.utils.Utils;
|
||||
import com.example.studyapp.utils.ZipUtils;
|
||||
import com.example.studyapp.worker.CheckAccessibilityWorker;
|
||||
import com.example.studyapp.worker.LoadDeviceWorker;
|
||||
import com.example.retention.proxy.ClashUtil;
|
||||
import com.example.retention.service.MyAccessibilityService;
|
||||
import com.example.retention.task.TaskUtil;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import com.example.retention.worker.CheckAccessibilityWorker;
|
||||
import com.example.retention.worker.LoadDeviceWorker;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
|
@ -0,0 +1,4 @@
|
|||
package com.example.retention
|
||||
|
||||
class ScriptRepository {
|
||||
}
|
|
@ -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.Context;
|
||||
|
@ -14,9 +14,9 @@ import android.widget.Toast;
|
|||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.example.studyapp.MainActivity;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.studyapp.utils.ShellUtils;
|
||||
import com.example.retention.MainActivity;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import com.example.retention.utils.ShellUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package com.example.studyapp.config;
|
||||
package com.example.retention.config;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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.studyapp.utils.LogFileUtil.logAndWrite;
|
||||
import static com.example.retention.autoJS.AutoJsUtil.isAppInstalled;
|
||||
import static com.example.retention.utils.LogFileUtil.logAndWrite;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.util.Log;
|
||||
|
||||
import com.example.studyapp.task.AfInfo;
|
||||
import com.example.studyapp.task.BigoInfo;
|
||||
import com.example.studyapp.task.DeviceInfo;
|
||||
import com.example.studyapp.task.TaskUtil;
|
||||
import com.example.studyapp.utils.ApkInstaller;
|
||||
import com.example.studyapp.utils.HttpUtil;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.studyapp.utils.ShellUtils;
|
||||
import com.example.studyapp.utils.ZipUtils;
|
||||
import com.example.retention.task.AfInfo;
|
||||
import com.example.retention.task.BigoInfo;
|
||||
import com.example.retention.task.DeviceInfo;
|
||||
import com.example.retention.task.TaskUtil;
|
||||
import com.example.retention.utils.ApkInstaller;
|
||||
import com.example.retention.utils.HttpUtil;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import com.example.retention.utils.ShellUtils;
|
||||
import com.example.retention.utils.ZipUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.device;
|
||||
package com.example.retention.device;
|
||||
|
||||
public class Native {
|
||||
static {
|
|
@ -1,24 +1,20 @@
|
|||
package com.example.studyapp.proxy;
|
||||
package com.example.retention.proxy;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.util.Log;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.request;
|
||||
package com.example.retention.request;
|
||||
|
||||
// 这是发送到服务端的请求体(JSON 格式)
|
||||
public class ScriptResultRequest {
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.service;
|
||||
package com.example.retention.service;
|
||||
|
||||
import android.Manifest;
|
||||
import android.accessibilityservice.AccessibilityService;
|
||||
|
@ -6,19 +6,17 @@ import android.app.Notification;
|
|||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.Service;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.widget.Toast;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.example.studyapp.MainActivity;
|
||||
import com.example.studyapp.R;
|
||||
import com.example.retention.MainActivity;
|
||||
import com.example.retention.R;
|
||||
|
||||
public class MyAccessibilityService extends AccessibilityService {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.task;
|
||||
package com.example.retention.task;
|
||||
|
||||
public class AfInfo {
|
||||
public String advertiserId;
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.task;
|
||||
package com.example.retention.task;
|
||||
|
||||
// 使用 JSON 库动态生成 JSON 请求体 (使用 Gson 示例)
|
||||
public class BigoInfo {
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.task;
|
||||
package com.example.retention.task;
|
||||
|
||||
public class DeviceInfo {
|
||||
|
|
@ -1,15 +1,9 @@
|
|||
package com.example.studyapp.task;
|
||||
|
||||
import static androidx.core.content.PackageManagerCompat.LOG_TAG;
|
||||
package com.example.retention.task;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Environment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.studyapp.utils.ShellUtils;
|
||||
import com.google.android.gms.common.util.CollectionUtils;
|
||||
import com.google.android.gms.common.util.MapUtils;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import com.example.retention.utils.ShellUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
@ -18,14 +12,10 @@ import java.io.FileInputStream;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
|
@ -34,7 +24,6 @@ import okhttp3.Request;
|
|||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
|
@ -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.widget.Toast;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import android.util.Log;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
|
@ -7,7 +7,6 @@ import java.net.UnknownHostException;
|
|||
import org.json.JSONObject;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class IpUtil {
|
||||
public static boolean isValidIPAddress(String ipAddress) {
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
|
@ -14,7 +14,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import java.lang.reflect.AccessibleObject;
|
||||
import java.lang.reflect.Member;
|
|
@ -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.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
|
@ -1,6 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
|
||||
import static java.security.AccessController.getContext;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.BufferedReader;
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.utils;
|
||||
package com.example.retention.utils;
|
||||
|
||||
import android.util.Log;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp.worker;
|
||||
package com.example.retention.worker;
|
||||
|
||||
import android.accessibilityservice.AccessibilityService;
|
||||
import android.content.ComponentName;
|
||||
|
@ -10,7 +10,7 @@ import android.text.TextUtils;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.work.CoroutineWorker;
|
||||
import androidx.work.WorkerParameters;
|
||||
import com.example.studyapp.service.MyAccessibilityService;
|
||||
import com.example.retention.service.MyAccessibilityService;
|
||||
import kotlin.coroutines.Continuation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
|
@ -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.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
@ -15,23 +11,15 @@ import androidx.annotation.NonNull;
|
|||
import androidx.work.CoroutineWorker;
|
||||
import androidx.work.WorkerParameters;
|
||||
|
||||
import com.example.studyapp.autoJS.AutoJsUtil;
|
||||
import com.example.studyapp.device.ChangeDeviceInfoUtil;
|
||||
import com.example.studyapp.proxy.ClashUtil;
|
||||
import com.example.studyapp.task.TaskUtil;
|
||||
import com.example.studyapp.utils.LogFileUtil;
|
||||
import com.example.studyapp.utils.Utils;
|
||||
import com.example.retention.autoJS.AutoJsUtil;
|
||||
import com.example.retention.device.ChangeDeviceInfoUtil;
|
||||
import com.example.retention.proxy.ClashUtil;
|
||||
import com.example.retention.utils.LogFileUtil;
|
||||
import com.example.retention.utils.Utils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
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 kotlin.coroutines.Continuation;
|
|
@ -1,4 +0,0 @@
|
|||
package com.example.studyapp
|
||||
|
||||
class ScriptRepository {
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -4,7 +4,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="16dp"
|
||||
tools:context=".MainActivity">
|
||||
tools:context="com.example.retention.MainActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.studyapp;
|
||||
package com.example.retention;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
|
|
|
@ -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.assertNotNull;
|
||||
|
@ -131,7 +131,7 @@ public class TaskUtilTest {
|
|||
|
||||
// 运行上传方法
|
||||
String taskId = "asddasdasd";
|
||||
TaskUtil.postDeviceInfo("b3d893cf9de3a85a", taskId, "com.example.studyapp");
|
||||
TaskUtil.postDeviceInfo("b3d893cf9de3a85a", taskId, "com.example.retention");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
2
cmd
2
cmd
|
@ -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
|
||||
-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
|
||||
|
|
30
err.log
30
err.log
|
@ -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.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: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: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: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.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.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.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: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: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.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.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.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: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:12.071 51143-51376 isAppInstalled com.example.studyapp 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.120 51143-51376 ShellUtils com.example.studyapp 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: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.retention D Checking if app is installed: 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.retention D Shell Output: package: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.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
|
||||
|
@ -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.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.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.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
|
||||
|
@ -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 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.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.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.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.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.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
|
||||
|
@ -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: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: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 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.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)]
|
||||
|
|
Loading…
Reference in New Issue