xiongzhu 10 сар өмнө
parent
commit
63c17cbcd7

+ 7 - 7
app/src/main/java/com/example/modifier/extension/packageManager.kt

@@ -1,12 +1,12 @@
 package com.example.modifier.extension
 
-//fun String.suspend(): String {
-//    return "pm suspend $this"
-//}
-//
-//fun String.resume(): String {
-//    return "pm unsuspend $this"
-//}
+fun String.suspend(): String {
+    return "pm suspend $this"
+}
+
+fun String.resume(): String {
+    return "pm unsuspend $this"
+}
 
 fun String.clear(): String {
     return "pm clear $this"

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

@@ -46,7 +46,6 @@ class BackupRepository(
     }
 
     suspend fun backup(type: String, sendCount: Int, stock: Int = 0): BackupItem? {
-        return null;
         if (!ROOT_ACCESS) return null
         AppStateRepo.instance.updateRuntimeFlags(reqState = ReqState.BACKUP)
         val spoofedInfoRepo = SpoofedInfoRepo.instance

+ 16 - 14
app/src/main/java/com/example/modifier/repo/SpoofedInfoRepo.kt

@@ -2,6 +2,7 @@ package com.example.modifier.repo
 
 import android.annotation.SuppressLint
 import android.content.Context
+import android.os.Build
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import android.util.Log
@@ -12,11 +13,14 @@ import androidx.datastore.preferences.core.stringPreferencesKey
 import androidx.datastore.preferences.preferencesDataStore
 import com.example.modifier.BuildConfig
 import com.example.modifier.baseTag
+import com.example.modifier.constants.PACKAGE_CLEAN_SMS
 import com.example.modifier.constants.PACKAGE_GMS
 import com.example.modifier.constants.PACKAGE_MESSAGING
 import com.example.modifier.constants.PACKAGE_PLAY
 import com.example.modifier.constants.SIMView
 import com.example.modifier.extension.kill
+import com.example.modifier.extension.resume
+import com.example.modifier.extension.suspend
 import com.example.modifier.model.SpoofedInfo
 import com.example.modifier.utils.ApduChannel
 import com.example.modifier.utils.SimEncoder
@@ -195,7 +199,11 @@ class SpoofedInfoRepo private constructor(private val context: Context) {
             }
             if (suspend == true) {
                 shellRun(
+                    PACKAGE_MESSAGING.suspend(),
+                    PACKAGE_PLAY.suspend(),
+                    PACKAGE_GMS.suspend(),
                     PACKAGE_GMS.kill(),
+                    PACKAGE_PLAY.kill(),
                     PACKAGE_MESSAGING.kill(),
                 )
             }
@@ -269,12 +277,10 @@ class SpoofedInfoRepo private constructor(private val context: Context) {
                     rebootRadio.isAccessible = true
                     rebootRadio.invoke(telephonyManager)
                     Log.i(TAG, "rebootRadio: success")
-                    delay(5000)
                 }.onFailure {
                     Log.e(TAG, "Error rebootRadio: ${it.message}", it)
                 }
 
-
                 val subscriptionManager =
                     context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
 
@@ -287,36 +293,32 @@ class SpoofedInfoRepo private constructor(private val context: Context) {
                                 Log.i(TAG, "iccid:${it.iccId} target:${spoofedInfo.iccid}")
                                 if (it.iccId == spoofedInfo.iccid) {
                                     Log.i(TAG, "rebootModem: success")
+                                    if (Build.DEVICE == "redfin") {
+                                        delay(10000)
+                                    }
                                     return@rebootModem
+                                } else {
+                                    delay(2000)
                                 }
                             }
                         }.onFailure {
                             Log.e(TAG, "Error reading ICCID: ${it.message}", it)
                         }
-                        delay(2000)
                     }
                 }
             }
 
             if (suspend == true) {
                 shellRun(
+                    PACKAGE_GMS.resume(),
+                    PACKAGE_PLAY.resume(),
+                    PACKAGE_MESSAGING.resume(),
                     PACKAGE_PLAY.kill(),
-                    "sleep 3",
                     PACKAGE_GMS.kill(),
-                    "sleep 3",
                     PACKAGE_MESSAGING.kill(),
-                    "sleep 3",
-                    PACKAGE_GMS.kill(),
-                    "sleep 3",
-                    PACKAGE_MESSAGING.kill(),
-                    "sleep 3"
                 )
             }
 
-//            val base64 = Base64.encode(jsonObject.toString().toByteArray(), Base64.DEFAULT)
-//                .toString(Charsets.UTF_8)
-//            shellRun("echo '$base64' > /sdcard/Android/data/com.android.phone/files/config/config.json")
-
         } catch (e: Exception) {
             Log.e(TAG, "Error updateSpoofedSimInfo: ${e.message}", e)
         }

+ 4 - 3
app/src/main/java/com/example/modifier/service/TaskRunner.kt

@@ -14,6 +14,7 @@ import com.example.modifier.constants.CMD_BACK
 import com.example.modifier.constants.CMD_CONVERSATION_LIST_ACTIVITY
 import com.example.modifier.constants.CMD_MESSAGING_APP
 import com.example.modifier.constants.CMD_RCS_SETTINGS_ACTIVITY
+import com.example.modifier.constants.PACKAGE_CLEAN_SMS
 import com.example.modifier.constants.PACKAGE_GMS
 import com.example.modifier.constants.PACKAGE_MESSAGING
 import com.example.modifier.enums.RcsConfigureState
@@ -43,6 +44,7 @@ import com.example.modifier.repo.SpoofedInfoRepo
 import com.example.modifier.utils.clearConv
 import com.example.modifier.utils.genAndroidId
 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.getContext
@@ -419,7 +421,7 @@ class TaskRunner(
                 mnc = rcsNumber.mnc,
                 iccid = genICCID(rcsNumber.mnc, rcsNumber.areaCode),
                 imsi = genIMSI(rcsNumber.mcc + rcsNumber.mnc),
-                imei = spoofedInfoRepo.spoofedInfo.value.imei,
+                imei = genIMEI(),
                 country = rcsNumber.country,
                 areaCode = rcsNumber.areaCode,
                 available = false,
@@ -531,7 +533,6 @@ class TaskRunner(
             )
             delay(2000)
         }
-        Build.getSerial()
     }
 
     suspend fun requestNumberOnTask(reset: Boolean = false, noBackup: Boolean = false) {
@@ -570,7 +571,7 @@ class TaskRunner(
                         }
                     }
 
-                    needRest = needRest || appStateRepo.appState.value.requestedNum >= 3
+                    needRest = needRest || appStateRepo.appState.value.requestedNum >= 5
                             || spoofedInfoRepo.spoofedInfo.value.available
                     if (needRest && !appPrefsRepo.appPrefs.value.preventReset) {
                         reset()

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

@@ -59,39 +59,39 @@ suspend fun resetAll() {
             "sleep 1",
             PACKAGE_GMS.clear(),
             "sleep 1",
-            CMD_START_PLAY_STORE,
+            PACKAGE_PLAY.clear(),
             "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.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",
-//            "pm revoke com.google.android.gms android.permission.BLUETOOTH_ADVERTISE",
-//            "pm revoke com.google.android.gms android.permission.UWB_RANGING",
-//            "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.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.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.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.UWB_RANGING",
+            "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.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.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 10",
             PACKAGE_MESSAGING.clear(),
             "sleep 3",

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

@@ -5,7 +5,7 @@ import java.util.Locale
 import kotlin.math.floor
 
 fun genIMEI(): String {
-    val str = ("3568" + RandomStringUtils.randomNumeric(11)).map { it.toString().toInt() }
+    val str = ("35249311" + RandomStringUtils.randomNumeric(7)).map { it.toString().toInt() }
         .toIntArray()
     var sum = 0
     var t: Int