xiongzhu 1 jaar geleden
bovenliggende
commit
c511bc61a4

+ 1 - 1
app/build.gradle

@@ -24,7 +24,7 @@ android {
         applicationId "com.example.modifier"
         minSdk 29
         targetSdk 34
-        versionCode 160
+        versionCode 161
         versionName "1.0.1"
         archivesBaseName = "modifier-${versionCode}"
 

+ 2 - 0
app/src/main/java/com/example/modifier/service/ModifierService.kt

@@ -33,6 +33,7 @@ import com.example.modifier.repo.AppStateRepo
 import com.example.modifier.repo.BackupRepository
 import com.example.modifier.repo.GmsgStateRepo
 import com.example.modifier.repo.SpoofedSimInfoRepo
+import com.example.modifier.service.TaskRunner.Companion
 import com.example.modifier.utils.checkPif
 import com.example.modifier.utils.clearConv
 import com.example.modifier.utils.hasRootAccess
@@ -41,6 +42,7 @@ import com.example.modifier.utils.killPhoneProcess
 import com.example.modifier.utils.optimize
 import com.example.modifier.utils.restartSelf
 import com.example.modifier.utils.setBatteryLevel
+import com.example.modifier.utils.smsIntent
 import com.example.modifier.utils.syncTime
 import com.google.android.material.color.DynamicColors
 import kotlinx.coroutines.CoroutineScope

+ 12 - 4
app/src/main/java/com/example/modifier/service/ScreenInspector.kt

@@ -32,7 +32,7 @@ class ScreenInspector(val context: AccessibilityService) {
         val desc = node.contentDescription?.toString() ?: ""
 
         if (log) {
-            Log.d(TAG, "Node: class=$className, text=$text, dec=$desc, name=$name, id=$id")
+            Log.d(TAG, "Node: class=$className, text=$text, desc=$desc, name=$name, id=$id")
         }
 
         if ("Compose:Draft:Send" == name) {
@@ -47,8 +47,16 @@ class ScreenInspector(val context: AccessibilityService) {
             result.isRcsCapable = true
         }
 
-        if ("com.google.android.apps.messaging:id/tombstone_message" == id) {
-            result.isRcsCapable = text.contains("聊天") || text.contains("Chatting with")
+        if ("com.google.android.apps.messaging:id/tombstone_message" == id &&
+            (text.contains("聊天") || text.contains("Chatting with"))
+        ) {
+            result.isRcsCapable = true
+        }
+
+        if ("com.google.android.apps.messaging:id/compose_message_text" == id &&
+            (text.contains("RCS 消息") || text.contains("RCS message"))
+        ) {
+            result.isRcsCapable = true
         }
 
         if (text.contains("Turn on RCS chats")
@@ -85,7 +93,7 @@ class ScreenInspector(val context: AccessibilityService) {
             }
         }
 
-        if (text.contains("Send Message") || desc.contains("发送信息")) {
+        if (desc.contains("Send message") || desc.contains("发送信息")) {
             result.isRcsCapable = true
         }
 

+ 11 - 5
app/src/main/java/com/example/modifier/service/TaskRunner.kt

@@ -3,10 +3,12 @@ package com.example.modifier.service
 import android.content.Context
 import android.util.Log
 import android.view.accessibility.AccessibilityNodeInfo
+import androidx.core.content.ContextCompat
 import coil3.ImageLoader
 import coil3.request.crossfade
 import com.example.modifier.baseTag
 import com.example.modifier.TraverseResult
+import com.example.modifier.Utils
 import com.example.modifier.constants.CMD_BACK
 import com.example.modifier.constants.CMD_CONVERSATION_LIST_ACTIVITY
 import com.example.modifier.constants.CMD_MESSAGING_APP
@@ -41,6 +43,7 @@ import com.example.modifier.utils.clearConv
 import com.example.modifier.utils.genICCID
 import com.example.modifier.utils.genIMEI
 import com.example.modifier.utils.genIMSI
+import com.example.modifier.utils.getContext
 import com.example.modifier.utils.isOldVersion
 import com.example.modifier.utils.resetAll
 import com.example.modifier.utils.shellRun
@@ -219,7 +222,7 @@ class TaskRunner(
                 }
             }
             shellRun(CMD_BACK)
-            delay(10000)
+            delay(5000)
             onSuccess(results)
             if (taskConfig.requestNumberInterval in 1..appStateRepo.appState.value.successNum) {
                 delay(3000)
@@ -250,6 +253,11 @@ class TaskRunner(
     }
 
     suspend fun reset() {
+        val context = getContext()
+        val dir = ContextCompat.getExternalCacheDirs(context)[0]
+        val pifPath = File(dir, "pif1.json").path
+        Utils.copyAsset(context.assets, "pif1.json", pifPath)
+        shellRun("cp $pifPath /data/adb/pif.json")
         if (isOldVersion(context)) {
             withTimeout(1.hours) {
                 while (true) {
@@ -371,6 +379,7 @@ class TaskRunner(
             }
         }
         appStateRepo.updateRuntimeFlags(reqState = ReqState.NONE)
+        shellRun("rm /data/adb/pif.json")
     }
 
     private suspend fun requestNumberAtomic(store: Boolean? = false) {
@@ -490,11 +499,8 @@ class TaskRunner(
         } else {
             RcsNumberApi.notifyConfigured(rcsNumber.id)
             delay(4000)
-            var (pid, _) = shellRun("pidof com.google.android.gms.unstable")
-            pid = pid.trim()
-            Log.e(TAG, "kill gms.unstable $pid")
             shellRun(
-                "kill -9 $pid",
+                PACKAGE_GMS.kill(),
                 "sleep 2",
                 PACKAGE_MESSAGING.kill(),
                 "sleep 1",

+ 0 - 5
app/src/main/java/com/example/modifier/utils/Package.kt

@@ -96,14 +96,9 @@ suspend fun clear(gsf: Boolean, gms: Boolean, sms: Boolean) {
 }
 
 suspend fun resetAll() {
-    val context = getContext()
-    val dir = ContextCompat.getExternalCacheDirs(context)[0]
-    val pifPath = File(dir, "pif1.json").path
-    Utils.copyAsset(context.assets, "pif1.json", pifPath)
     try {
         clearConv()
         shellRun(
-            "cp $pifPath /data/adb/pif.json",
             PACKAGE_MESSAGING.suspend(),
             PACKAGE_MESSAGING.kill(),
             PACKAGE_MESSAGING.clear(),

+ 5 - 5
app/src/main/java/com/example/modifier/utils/System.kt

@@ -162,13 +162,13 @@ suspend fun optimize() {
         "cmd netpolicy add restrict-background-blacklist ${info.uid}",
         "pm grant ${BuildConfig.APPLICATION_ID} android.permission.POST_NOTIFICATIONS",
     )
-    if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
+//    if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
         shellRun(
-            "settings put global window_animation_scale 0",
-            "settings put global transition_animation_scale 0",
-            "settings put global animator_duration_scale 0"
+            "settings put global window_animation_scale 1",
+            "settings put global transition_animation_scale 1",
+            "settings put global animator_duration_scale 1"
         )
-    }
+//    }
 }
 
 suspend fun syncTime() {

+ 1 - 1
app/src/main/res/xml/accessibility_service_config.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
-    android:accessibilityEventTypes="typeWindowStateChanged"
+    android:accessibilityEventTypes="typeWindowStateChanged|typeWindowContentChanged"
     android:accessibilityFeedbackType="feedbackSpoken"
     android:accessibilityFlags="flagDefault|flagReportViewIds|flagIncludeNotImportantViews"
     android:canPerformGestures="true"