xiongzhu 10 月之前
父節點
當前提交
589b5f99f2

+ 1 - 1
app/build.gradle

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

+ 12 - 13
app/src/main/java/com/example/modifier/service/TaskRunner.kt

@@ -47,6 +47,7 @@ import com.example.modifier.utils.genICCID
 import com.example.modifier.utils.genIMEI
 import com.example.modifier.utils.genIMSI
 import com.example.modifier.utils.genMacAddress
+import com.example.modifier.utils.genSerialNo
 import com.example.modifier.utils.getContext
 import com.example.modifier.utils.isOldVersion
 import com.example.modifier.utils.resetAll
@@ -393,7 +394,7 @@ class TaskRunner(
                     Log.i(TAG, "waitForRcsState: $resetSuccess")
                     appStateRepo.resetRequestedNum()
                     if (resetSuccess) {
-                        delay(1000)
+                        delay(3000)
                         break
                     }
                 }
@@ -403,7 +404,7 @@ class TaskRunner(
 //        shellRun("rm /data/adb/pif.json")
     }
 
-    private suspend fun requestNumberAtomic(store: Boolean? = false, reset: Boolean = false) {
+    private suspend fun requestNumberAtomic(store: Boolean? = false) {
         appStateRepo.updateRuntimeFlags(reqState = ReqState.REQUEST)
         gmsgStateRepo.updateRcsState(RcsConfigureState.NOT_CONFIGURED)
         val device = DeviceApi.getDevice(appPrefsRepo.appPrefs.value.id)
@@ -441,12 +442,6 @@ class TaskRunner(
                 rootAid = genAndroidId(),
             )
         )
-
-        shellRun(CMD_MESSAGING_APP)
-
-        if (rcsNumber.expiryTime.isBefore(LocalDateTime.now())) {
-            throw RequestNumberException(ErrorCode.CODE_NUMBER_EXPIRED)
-        }
         val tosAgreeJob = CoroutineScope(coroutineContext).launch {
             run tos@{
                 repeat(60 * 1000 / 200) {
@@ -460,6 +455,10 @@ class TaskRunner(
                 }
             }
         }
+        shellRun(CMD_MESSAGING_APP)
+        if (rcsNumber.expiryTime.isBefore(LocalDateTime.now())) {
+            throw RequestNumberException(ErrorCode.CODE_NUMBER_EXPIRED)
+        }
         var sendOtpTimeout =
             ChronoUnit.SECONDS.between(LocalDateTime.now(), rcsNumber.expiryTime).seconds
         if (sendOtpTimeout < 5.seconds) {
@@ -468,9 +467,6 @@ class TaskRunner(
         if (sendOtpTimeout > 2.minutes) {
             sendOtpTimeout = 2.minutes
         }
-        if (reset) {
-            reset(mock = false)
-        }
         if (gmsgStateRepo.waitForRcsState(
                 arrayOf(RcsConfigureState.WAITING_FOR_OTP),
                 sendOtpTimeout
@@ -581,9 +577,12 @@ class TaskRunner(
                     needRest = needRest || appStateRepo.appState.value.requestedNum >= 5
                             || spoofedInfoRepo.spoofedInfo.value.available
                     needRest = needRest && !appPrefsRepo.appPrefs.value.preventReset
+                    if (needRest) {
+                        reset()
+                        needRest = false
+                    }
                     appStateRepo.incrementRequestedNum()
-                    requestNumberAtomic(reset = needRest)
-                    needRest = false
+                    requestNumberAtomic()
                     return@withTimeoutOrNull true
                 } catch (e: Exception) {
                     if (e is RequestNumberException) {

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

@@ -56,19 +56,14 @@ suspend fun resetAll() {
         shellRun(
             "settings put secure location_mode 0",
             "settings put secure android_id ${genAndroidId()}",
+            PACKAGE_PLAY.disable(),
             PACKAGE_GSF.clear(),
-            "sleep 1",
             PACKAGE_GMS.clear(),
-            "sleep 1",
             PACKAGE_PLAY.clear(),
-            PACKAGE_PLAY.disable(),
-            "sleep 1",
             CMD_HOME,
             "sleep 10",
             PACKAGE_GMS.clear(),
             "sleep 2",
-            "pm revoke com.google.android.gms android.permission.ACCESS_FINE_LOCATION",
-            "pm revoke com.google.android.gms android.permission.ACCESS_COARSE_LOCATION",
             "pm revoke com.google.android.gms android.permission.NEARBY_WIFI_DEVICES",
             "pm revoke com.google.android.gms android.permission.BLUETOOTH_CONNECT",
             "pm revoke com.google.android.gms android.permission.BLUETOOTH_SCAN",