x1ongzhu 1 gadu atpakaļ
vecāks
revīzija
609adbbf62
20 mainītis faili ar 140 papildinājumiem un 24 dzēšanām
  1. 1 1
      app/build.gradle
  2. BIN
      app/src/main/assets/telephony_provider/Pixel_5/databases/mmssms.db
  3. 0 0
      app/src/main/assets/telephony_provider/Pixel_5/databases/mmssms.db-journal
  4. 4 0
      app/src/main/assets/telephony_provider/Pixel_5/shared_prefs/com.android.providers.telephony_preferences.xml
  5. BIN
      app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db
  6. BIN
      app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-shm
  7. BIN
      app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-udr
  8. BIN
      app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-wal
  9. 4 0
      app/src/main/assets/telephony_provider/SM-F707N/shared_prefs/com.android.providers.telephony_preferences.xml
  10. BIN
      app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db
  11. BIN
      app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-shm
  12. BIN
      app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-udr
  13. BIN
      app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-wal
  14. 4 0
      app/src/main/assets/telephony_provider/SM-F711B/shared_prefs/com.android.providers.telephony_preferences.xml
  15. 90 17
      app/src/main/java/com/example/modifier/Global.kt
  16. 1 4
      app/src/main/java/com/example/modifier/MainActivity.kt
  17. 1 0
      app/src/main/java/com/example/modifier/model/TelephonyConfig.kt
  18. 14 2
      app/src/main/java/com/example/modifier/service/ModifierService.kt
  19. 10 0
      app/src/main/res/drawable/ic_mop.xml
  20. 11 0
      app/src/main/res/layout/floating_window.xml

+ 1 - 1
app/build.gradle

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

BIN
app/src/main/assets/telephony_provider/Pixel_5/databases/mmssms.db


+ 0 - 0
app/src/main/assets/telephony_provider/Pixel_5/databases/mmssms.db-journal


+ 4 - 0
app/src/main/assets/telephony_provider/Pixel_5/shared_prefs/com.android.providers.telephony_preferences.xml

@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+    <boolean name="initial_create_done" value="true" />
+</map>

BIN
app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db


BIN
app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-shm


BIN
app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-udr


BIN
app/src/main/assets/telephony_provider/SM-F707N/databases/mmssms.db-wal


+ 4 - 0
app/src/main/assets/telephony_provider/SM-F707N/shared_prefs/com.android.providers.telephony_preferences.xml

@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+    <boolean name="initial_create_done" value="true" />
+</map>

BIN
app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db


BIN
app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-shm


BIN
app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-udr


BIN
app/src/main/assets/telephony_provider/SM-F711B/databases/mmssms.db-wal


+ 4 - 0
app/src/main/assets/telephony_provider/SM-F711B/shared_prefs/com.android.providers.telephony_preferences.xml

@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<map>
+    <boolean name="initial_create_done" value="true" />
+</map>

+ 90 - 17
app/src/main/java/com/example/modifier/Global.kt

@@ -129,10 +129,6 @@ object Global {
                 "setprop persist.spoof.iccid ${telephonyConfig.iccid}",
                 "setprop persist.spoof.imei ${telephonyConfig.imei}",
                 "setprop persist.spoof.imsi ${telephonyConfig.imsi}",
-                "cp " + file.path + " /data/data/com.android.phone/rcsConfig.json",
-                "echo 'copied to phone'",
-                "chmod 777 /data/data/com.android.phone/rcsConfig.json",
-                "sleep 1"
             )
             if (suspend == true) {
                 unsuspend(gms = true, sms = true)
@@ -156,18 +152,29 @@ object Global {
 
     fun saveMock() {
         if (isOldVersion()) {
-            save(
-                TelephonyConfig(
-                    number = "910" + RandomStringUtils.randomNumeric(6),
-                    mcc = "520",
-                    mnc = "01",
-                    iccid = genICCID("520", "66"),
-                    "52001" + RandomStringUtils.randomNumeric(10),
-                    Utils.generateIMEI(),
-                    "th",
-                    "66"
-                )
-            )
+            val content = Utils.getContext().assets.open("us_numbers.txt").bufferedReader().use {
+                it.readText()
+            }
+            // get random number
+            content.split("\n")
+                .filter { it.isNotBlank() }
+                .shuffled()
+                .firstOrNull()
+                ?.let {
+                    save(
+                        TelephonyConfig(
+                            number = it,
+                            mcc = "310",
+                            mnc = "150",
+                            iccid = genICCID("310", "1"),
+                            "310150" + RandomStringUtils.randomNumeric(9),
+                            Utils.generateIMEI(),
+                            "us",
+                            "1",
+                            mock = true
+                        )
+                    )
+                }
         } else {
             val content = Utils.getContext().assets.open("us_numbers.txt").bufferedReader().use {
                 it.readText()
@@ -187,7 +194,8 @@ object Global {
                             "310240" + RandomStringUtils.randomNumeric(9),
                             Utils.generateIMEI(),
                             "us",
-                            "1"
+                            "1",
+                            mock = true
                         )
                     )
                 }
@@ -377,6 +385,52 @@ object Global {
         }
     }
 
+
+    @JvmStatic
+    suspend fun clearConv1() {
+        val context = Utils.getContext()
+        if (context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+                .getBoolean("do_not_clean", false)
+        ) {
+            return
+        }
+        val model = Build.MODEL.replace(" ", "_")
+        if (!(model == "SM-F707N" || model == "SM-F711B" || model == "Pixel_5")) {
+            return
+        }
+        try {
+            val sqlite3 = sqlite3path()
+            suspend(sms = true)
+            val dataDir = ContextCompat.getDataDir(context)
+            val providerDir = File(dataDir, "telephony_provider/$model")
+            if (!providerDir.exists()) {
+                Utils.copyAssetFolder(context.assets, "telephony_provider/$model", providerDir.path)
+            }
+
+            val cmds = mutableListOf<String>()
+            fun copyToData(file: File) {
+                val relative = file.path.replace(providerDir.path, "")
+                if (file.isDirectory) {
+                    file.listFiles()?.forEach {
+                        copyToData(it)
+                    }
+                } else {
+                    val dest = File("/data/data/com.android.providers.telephony/$relative")
+                    cmds.add("cp -f ${file.path} ${dest.path}")
+                }
+            }
+            copyToData(providerDir)
+            shellRun(
+                "$sqlite3 /data/data/com.google.android.apps.messaging/databases/bugle_db \"DELETE FROM conversations;\"",
+                "$sqlite3 /data/data/com.google.android.apps.messaging/databases/bugle_db \"DELETE FROM messages;\"",
+                *cmds.toTypedArray(),
+            )
+            unsuspend(sms = true)
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+    }
+
     @JvmStatic
     suspend fun resetAll() {
         try {
@@ -711,4 +765,23 @@ object Global {
         ModifierService.instance!!.waitForRcsState(arrayOf(RcsConfigureState.CONFIGURED), 2.minutes)
         shellRun("am start -a android.intent.action.SENDTO -d sms:+18583199738 --es sms_body \"Test\" --ez exit_on_sent false")
     }
+
+    @JvmStatic
+    suspend fun optimize() {
+        val context = Utils.getContext()
+        val packageManager = context.packageManager
+        val info = packageManager.getApplicationInfo("com.google.android.gms", 0)
+
+        shellRun(
+            "dumpsys deviceidle whitelist +com.google.android.apps.messaging",
+            "dumpsys deviceidle whitelist +${BuildConfig.APPLICATION_ID}",
+            "cmd netpolicy add restrict-background-blacklist ${info.uid}"
+        )
+    }
+
+    @JvmStatic
+    suspend fun setupSystem() {
+        syncTime()
+        optimize()
+    }
 }

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

@@ -41,6 +41,7 @@ class MainActivity : AppCompatActivity() {
                         finish();
                     }
                 }
+                Global.setupSystem()
             } else {
                 withContext(Dispatchers.Main) {
                     MaterialAlertDialogBuilder(this@MainActivity)
@@ -53,10 +54,6 @@ class MainActivity : AppCompatActivity() {
                         .show()
                 }
             }
-            Global.syncTime()
-            if (!Settings.canDrawOverlays(this@MainActivity)) {
-                Utils.enableOverlay()
-            }
         }
     }
 }

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

@@ -9,4 +9,5 @@ data class TelephonyConfig(
     var imei: String,
     var country: String,
     var areaCode: String,
+    var mock: Boolean? = false
 )

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

@@ -304,7 +304,7 @@ class ModifierService : AccessibilityService(), Emitter.Listener {
                 delay(2.minutes)
             }
             if (Global.hasRoot()) {
-                Global.syncTime()
+                Global.setupSystem()
                 if (Build.MODEL.startsWith("SM-F707") || Build.MODEL.startsWith("SM-F711")) {
                     Global.killPhoneProcess(force = true)
                 }
@@ -773,6 +773,15 @@ class ModifierService : AccessibilityService(), Emitter.Listener {
                 }
             }
         }
+        binding.btnClean.setOnClickListener {
+            binding.btnClean.isEnabled = false
+            CoroutineScope(Dispatchers.IO).launch {
+                Global.clearConv1()
+                withContext(Dispatchers.Main) {
+                    binding.btnClean.isEnabled = true
+                }
+            }
+        }
         busy.observeForever {
             reportDeviceStatues()
         }
@@ -1036,7 +1045,9 @@ class ModifierService : AccessibilityService(), Emitter.Listener {
         requestNumberCount++
         requesting.postValue(true)
 
-        backup(backupItemDao, "auto", sendCount)
+        if (Global.telephonyConfig.mock == false) {
+            backup(backupItemDao, "auto", sendCount)
+        }
 
         var requestSuccess = false
         if (requestMode == 2 && !noBackup) {
@@ -1325,4 +1336,5 @@ class ModifierService : AccessibilityService(), Emitter.Listener {
             binding.btnStoreNumbers.isEnabled = true
         }
     }
+
 }

+ 10 - 0
app/src/main/res/drawable/ic_mop.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M440,440L520,440L520,160Q520,143 508.5,131.5Q497,120 480,120Q463,120 451.5,131.5Q440,143 440,160L440,440ZM200,600L760,600L760,520Q760,520 760,520Q760,520 760,520L200,520Q200,520 200,520Q200,520 200,520L200,600ZM142,840L240,840L240,760Q240,743 251.5,731.5Q263,720 280,720Q297,720 308.5,731.5Q320,743 320,760L320,840L440,840L440,760Q440,743 451.5,731.5Q463,720 480,720Q497,720 508.5,731.5Q520,743 520,760L520,840L640,840L640,760Q640,743 651.5,731.5Q663,720 680,720Q697,720 708.5,731.5Q720,743 720,760L720,840L818,840Q818,840 818,840Q818,840 818,840L778,680L182,680L142,840Q142,840 142,840Q142,840 142,840ZM818,920L142,920Q103,920 79,889Q55,858 65,820L120,600L120,520Q120,487 143.5,463.5Q167,440 200,440L360,440L360,160Q360,110 395,75Q430,40 480,40Q530,40 565,75Q600,110 600,160L600,440L760,440Q793,440 816.5,463.5Q840,487 840,520L840,600L895,820Q908,858 883.5,889Q859,920 818,920ZM760,520L200,520L200,520Q200,520 200,520Q200,520 200,520L760,520Q760,520 760,520Q760,520 760,520ZM520,440L440,440L440,440Q440,440 451.5,440Q463,440 480,440Q497,440 508.5,440Q520,440 520,440Z"/>
+</vector>

+ 11 - 0
app/src/main/res/layout/floating_window.xml

@@ -160,6 +160,17 @@
                         app:icon="@drawable/ic_toggle_off"
                         app:iconGravity="textStart"
                         app:iconPadding="0dp" />
+
+                    <com.google.android.material.button.MaterialButton
+                        android:id="@+id/btn_clean"
+                        style="@style/Widget.Material3.Button.TonalButton"
+                        android:layout_width="46dp"
+                        android:layout_height="34dp"
+                        android:layout_marginStart="2dp"
+                        android:layout_marginEnd="2dp"
+                        app:icon="@drawable/ic_mop"
+                        app:iconGravity="textStart"
+                        app:iconPadding="0dp" />
                 </GridLayout>
             </androidx.constraintlayout.widget.ConstraintLayout>
         </com.google.android.material.card.MaterialCardView>