x1ongzhu 1 rok temu
rodzic
commit
b68d12ca83

+ 22 - 9
app/src/main/java/com/example/modifier/Global.kt

@@ -711,8 +711,13 @@ object Global {
             "com.google.android.gsf",
         )
 
-        val cmds = mutableListOf<String>()
-        cmds.addAll(packages.flatMap { mutableListOf("pm suspend $it", "am force-stop $it") })
+        shellRun(
+            "pm suspend com.google.android.apps.messaging",
+            "am force-stop com.google.android.apps.messaging",
+            "pm suspend com.google.android.gms",
+            "am force-stop com.google.android.gms",
+            "pm suspend com.google.android.gsf"
+        )
         val packageManager = Utils.getContext().packageManager
         for (pkg in packages) {
             val uid = packageManager.getApplicationInfo(pkg, 0).uid
@@ -727,16 +732,24 @@ object Global {
                     "data_ext.tar.gz" -> "/sdcard/Android/data"
                     else -> ""
                 }
-                cmds.add("tar zxf ${file.path} -C $dest")
+                shellRun("tar zxf ${file.path} -C $dest")
             }
         }
-        cmds.addAll(packages.reversed().map { "pm unsuspend $it" })
-        cmds.addAll(listOf("sleep 1", CMD_MESSAGING_APP))
-        shellRun(*cmds.toTypedArray())
+        shellRun(
+            "pm unsuspend com.google.android.gsf",
+            "sleep 1",
+            "pm unsuspend com.google.android.gms",
+        )
         delay(5000)
-//        ModifierService.instance!!.toggleRcsSwitch(false)
-//        delay(1000)
-//        ModifierService.instance!!.toggleRcsSwitch(true)
+        shellRun(
+            "pm clear com.google.android.gms",
+            "sleep 60",
+            "pm unsuspend com.google.android.apps.messaging",
+            "sleep 1",
+            CMD_MESSAGING_APP,
+        )
+        delay(5000)
+        ModifierService.instance!!.toggleRcsSwitch(true)
 //        var success = false
 //        ModifierService.instance!!.waitForRcsState(arrayOf(RcsConfigureState.CONFIGURED), 2.minutes)
 //            .let {

+ 3 - 1
app/src/main/java/com/example/modifier/ui/Helpers.kt

@@ -10,6 +10,7 @@ private const val TAG = "Modifier"
 suspend fun shellRun(vararg commands: String): Map<String, String> {
     var output = ""
     var error = ""
+    Log.i(TAG, "shellRun: \t${commands.joinToString("\n\t\t\t")}")
     withContext(Dispatchers.IO) {
         val p = ProcessBuilder("su", "-M").start()
         p.outputStream.bufferedWriter().use { writer ->
@@ -24,6 +25,7 @@ suspend fun shellRun(vararg commands: String): Map<String, String> {
                 p.inputStream.bufferedReader().useLines {
                     it.forEach {
                         output += it + "\n"
+                        Log.i(TAG, "shellRunOut: $it")
                     }
                 }
             }
@@ -31,12 +33,12 @@ suspend fun shellRun(vararg commands: String): Map<String, String> {
                 p.errorStream.bufferedReader().useLines {
                     it.forEach {
                         error += it + "\n"
+                        Log.e(TAG, "shellRunErr: $it")
                     }
                 }
             }
         }
         p.waitFor()
     }
-    Log.i(TAG, "shellRun: \t${commands.joinToString("\n\t\t\t")}\noutput=$output\nerror=$error")
     return mapOf("output" to output, "error" to error)
 }