xiongzhu 1 year ago
parent
commit
4ae4d462df

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

@@ -17,4 +17,6 @@ class TraverseResult {
     var encrypted: Boolean = false
 
     var tosAgreeBtn: AccessibilityNodeInfo? = null
+
+    var closeBtn: AccessibilityNodeInfo? = null
 }

+ 19 - 4
app/src/main/java/com/example/modifier/service/ScreenController.kt

@@ -39,7 +39,9 @@ class ScreenController(val context: AccessibilityService, private val inspector:
                             btn.performAction(AccessibilityNodeInfo.ACTION_CLICK)
                             delay(1000)
                         }
-                        while (currentActivity()?.contains("RcsSettingsActivity") == true) {
+                        while (currentActivity()?.contains("RcsSettingsActivity") == true ||
+                            currentActivity()?.contains("TurnOffRcsActivity") == true
+                        ) {
                             shellRun(CMD_BACK)
                             delay(500)
                         }
@@ -48,10 +50,23 @@ class ScreenController(val context: AccessibilityService, private val inspector:
                         shellRun(
                             "input tap ${rect.centerX()} ${rect.centerY()}", "sleep 1",
                         )
-                        context.rootInActiveWindow.findAccessibilityNodeInfosByViewId("android:id/button1")
-                            .firstOrNull()?.performAction(AccessibilityNodeInfo.ACTION_CLICK)
+                        if (currentActivity()?.contains("TurnOffRcsActivity") == true) {
+                            inspector.traverseNode(res)
+                            if (res.closeBtn != null) {
+                                val rect1 = Rect()
+                                res.closeBtn!!.getBoundsInScreen(rect1)
+                                shellRun(
+                                    "input tap ${rect1.centerX()} ${rect1.centerY()}", "sleep 1",
+                                )
+                            }
+                        } else {
+                            context.rootInActiveWindow.findAccessibilityNodeInfosByViewId("android:id/button1")
+                                .firstOrNull()?.performAction(AccessibilityNodeInfo.ACTION_CLICK)
+                        }
                         delay(1000)
-                        while (currentActivity()?.contains("RcsSettingsActivity") == true) {
+                        while (currentActivity()?.contains("RcsSettingsActivity") == true ||
+                            currentActivity()?.contains("TurnOffRcsActivity") == true
+                        ) {
                             shellRun(CMD_BACK)
                             delay(500)
                         }

+ 8 - 1
app/src/main/java/com/example/modifier/service/ScreenInspector.kt

@@ -43,7 +43,10 @@ class ScreenInspector(val context: AccessibilityService) {
             result.sendBtn = node
         }
 
-        if (text != null && (text.contains("RCS 聊天") || text.contains("RCS chat"))) {
+        if (text != null && (text.contains("RCS 聊天") || text.contains("RCS chat") || text.contains(
+                "Chat with"
+            ))
+        ) {
             result.isRcsCapable = true
         }
 
@@ -91,6 +94,10 @@ class ScreenInspector(val context: AccessibilityService) {
             result.tosAgreeBtn = node
         }
 
+        if ("Turn Off" == text || "关闭" == text) {
+            result.closeBtn = node
+        }
+
         if (node.childCount != 0) {
             for (i in 0 until node.childCount) {
                 traverse(node.getChild(i), result, log)

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

@@ -104,32 +104,32 @@ suspend fun resetAll() {
             PACKAGE_GMS.clear(),
             "sleep 2",
             "settings put secure location_mode 0",
-            "pm revoke com.google.android.gms android.permission.GET_ACCOUNTS",
-            "pm revoke com.google.android.gms android.permission.SYSTEM_ALERT_WINDOW",
-            "pm revoke com.google.android.gms android.permission.POST_NOTIFICATIONS",
-            "pm revoke com.google.android.gms android.permission.READ_CONTACTS",
-            "pm revoke com.google.android.gms android.permission.CAMERA",
-            "pm revoke com.google.android.gms android.permission.RECEIVE_MMS",
-            "pm revoke com.google.android.gms android.permission.GET_APP_OPS_STATS",
-            "pm revoke com.google.android.gms android.permission.PROCESS_OUTGOING_CALLS",
-            "pm revoke com.google.android.gms android.permission.BLUETOOTH_CONNECT",
-            "pm revoke com.google.android.gms android.permission.BLUETOOTH_SCAN",
-            "pm revoke com.google.android.gms android.permission.BLUETOOTH_ADVERTISE",
-            "pm revoke com.google.android.gms android.permission.NEARBY_WIFI_DEVICES",
-            "pm revoke com.google.android.gms android.permission.UWB_RANGING",
-            "pm revoke com.google.android.gms android.permission.READ_CALL_LOG",
-            "pm revoke com.google.android.gms android.permission.WRITE_CONTACTS",
-            "pm revoke com.google.android.gms android.permission.CALL_PHONE",
-            "pm revoke com.google.android.gms android.permission.RECORD_AUDIO",
-            "pm revoke com.google.android.gms android.permission.READ_LOGS",
-            "pm revoke com.google.android.gms android.permission.READ_MEDIA_AUDIO",
-            "pm revoke com.google.android.gms android.permission.READ_MEDIA_IMAGES",
-            "pm revoke com.google.android.gms android.permission.READ_MEDIA_VIDEO",
-            "pm revoke com.google.android.gms android.permission.ACCESS_MEDIA_LOCATION",
-            "pm revoke com.google.android.gms android.permission.ACCESS_BROADCAST_RESPONSE_STATS",
-            "pm revoke com.google.android.gms android.permission.WRITE_CALL_LOG",
-            "pm revoke com.google.android.gms android.permission.BODY_SENSORS",
-            "pm revoke com.google.android.gms android.permission.DUMP",
+//            "pm revoke com.google.android.gms android.permission.GET_ACCOUNTS",
+//            "pm revoke com.google.android.gms android.permission.SYSTEM_ALERT_WINDOW",
+//            "pm revoke com.google.android.gms android.permission.POST_NOTIFICATIONS",
+//            "pm revoke com.google.android.gms android.permission.READ_CONTACTS",
+//            "pm revoke com.google.android.gms android.permission.CAMERA",
+//            "pm revoke com.google.android.gms android.permission.RECEIVE_MMS",
+//            "pm revoke com.google.android.gms android.permission.GET_APP_OPS_STATS",
+//            "pm revoke com.google.android.gms android.permission.PROCESS_OUTGOING_CALLS",
+//            "pm revoke com.google.android.gms android.permission.BLUETOOTH_CONNECT",
+//            "pm revoke com.google.android.gms android.permission.BLUETOOTH_SCAN",
+//            "pm revoke com.google.android.gms android.permission.BLUETOOTH_ADVERTISE",
+//            "pm revoke com.google.android.gms android.permission.NEARBY_WIFI_DEVICES",
+//            "pm revoke com.google.android.gms android.permission.UWB_RANGING",
+//            "pm revoke com.google.android.gms android.permission.READ_CALL_LOG",
+//            "pm revoke com.google.android.gms android.permission.WRITE_CONTACTS",
+//            "pm revoke com.google.android.gms android.permission.CALL_PHONE",
+//            "pm revoke com.google.android.gms android.permission.RECORD_AUDIO",
+//            "pm revoke com.google.android.gms android.permission.READ_LOGS",
+//            "pm revoke com.google.android.gms android.permission.READ_MEDIA_AUDIO",
+//            "pm revoke com.google.android.gms android.permission.READ_MEDIA_IMAGES",
+//            "pm revoke com.google.android.gms android.permission.READ_MEDIA_VIDEO",
+//            "pm revoke com.google.android.gms android.permission.ACCESS_MEDIA_LOCATION",
+//            "pm revoke com.google.android.gms android.permission.ACCESS_BROADCAST_RESPONSE_STATS",
+//            "pm revoke com.google.android.gms android.permission.WRITE_CALL_LOG",
+//            "pm revoke com.google.android.gms android.permission.BODY_SENSORS",
+//            "pm revoke com.google.android.gms android.permission.DUMP",
             "sleep 2",
             PACKAGE_MESSAGING.kill(),
             PACKAGE_MESSAGING.resume(),