xiongzhu 11 месяцев назад
Родитель
Сommit
21513d48ad

+ 1 - 0
app/src/main/java/com/example/modifier/MainActivity.kt

@@ -20,6 +20,7 @@ import com.example.modifier.utils.enableAccessibility
 import com.example.modifier.utils.enableOverlay
 import com.example.modifier.utils.getIPAddress
 import com.example.modifier.utils.hasRootAccess
+import com.example.modifier.utils.syncTime
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers

+ 14 - 23
app/src/main/java/com/example/modifier/service/ModifierService.kt

@@ -225,16 +225,7 @@ class ModifierService : AccessibilityService() {
             }
 
             appStateRepo.updateRuntimeFlags(preparing = true)
-            val hasRoot = run checkRoot@{
-                repeat(5) {
-                    if (hasRootAccess()) {
-                        return@checkRoot true
-                    }
-                    delay(500)
-                }
-                false
-            }
-            if (hasRoot) {
+            if (hasRootAccess()) {
                 ROOT_ACCESS = true
             } else {
                 if (!ADB.connect()) {
@@ -255,27 +246,27 @@ class ModifierService : AccessibilityService() {
             syncTime()
             if (ROOT_ACCESS) {
                 checkPif()
-            }
-            if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
-                killPhoneProcess(force = false)
+                if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
+                    killPhoneProcess(force = false)
+                }
             }
             appStateRepo.updateRuntimeFlags(preparing = false)
 
             val timer = Timer()
-            if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
-                timer.schedule(object : TimerTask() {
-                    override fun run() {
-                        CoroutineScope(Dispatchers.IO).launch {
-                            try {
-                                syncTime()
+            timer.schedule(object : TimerTask() {
+                override fun run() {
+                    CoroutineScope(Dispatchers.IO).launch {
+                        try {
+                            syncTime()
+                            if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
                                 setBatteryLevel(100)
-                            } catch (e: Exception) {
-                                e.printStackTrace()
                             }
+                        } catch (e: Exception) {
+                            e.printStackTrace()
                         }
                     }
-                }, 0, 5.minutes.inWholeMilliseconds)
-            }
+                }
+            }, 0, 5.minutes.inWholeMilliseconds)
         }
 
         instance = this

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

@@ -8,6 +8,7 @@ import android.content.Context
 import android.content.Intent
 import android.content.pm.PackageManager
 import android.os.Build
+import android.os.SystemClock
 import android.provider.Settings
 import android.text.TextUtils
 import android.util.Log
@@ -198,6 +199,7 @@ suspend fun syncTime() {
             dateHeader,
             DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH)
         )
+        val timeMillis = date.toInstant().toEpochMilli()
         // convert to Asia/Shanghai
         val dateInZone = date.withZoneSameInstant(ZoneId.of("Asia/Shanghai"))
         Log.i(
@@ -209,7 +211,7 @@ suspend fun syncTime() {
             "settings put global auto_time 1",
             "settings put global auto_time_zone 0",
             "service call alarm 3 s16 Asia/Shanghai",
-            "date \"${dateInZone.format(DateTimeFormatter.ofPattern("MMddHHmmyyyy.ss"))}\""
+            "service call alarm 2 i64 $timeMillis"
         )
     } catch (e: Exception) {
         Log.e(systemTag, "Error SyncTime", e)