|
|
@@ -5,9 +5,11 @@ import android.content.Intent
|
|
|
import android.os.Build
|
|
|
import android.util.Log
|
|
|
import androidx.core.content.ContextCompat
|
|
|
+import com.example.modifier.http.KtorClient
|
|
|
import com.example.modifier.model.TelephonyConfig
|
|
|
import com.example.modifier.utils.RcsHackTool
|
|
|
import com.google.gson.Gson
|
|
|
+import io.ktor.client.request.head
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
import kotlinx.coroutines.coroutineScope
|
|
|
import kotlinx.coroutines.launch
|
|
|
@@ -17,7 +19,11 @@ import org.apache.commons.io.IOUtils
|
|
|
import org.apache.commons.lang3.StringUtils
|
|
|
import java.io.File
|
|
|
import java.io.FileWriter
|
|
|
+import java.time.ZoneId
|
|
|
+import java.time.ZonedDateTime
|
|
|
+import java.time.format.DateTimeFormatter
|
|
|
import java.util.Base64
|
|
|
+import java.util.Locale
|
|
|
|
|
|
object Global {
|
|
|
@JvmField
|
|
|
@@ -442,4 +448,26 @@ object Global {
|
|
|
val context = Utils.getContext()
|
|
|
context.sendBroadcast(intent)
|
|
|
}
|
|
|
+
|
|
|
+ @JvmStatic
|
|
|
+ suspend fun syncTime() {
|
|
|
+ try {
|
|
|
+ Log.i("Modifier", "syncTime: start")
|
|
|
+ val response = KtorClient.head("http://www.baidu.com")
|
|
|
+ val dateHeader = response.headers["Date"]
|
|
|
+ val date = ZonedDateTime.parse(
|
|
|
+ dateHeader,
|
|
|
+ DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH)
|
|
|
+ )
|
|
|
+ // convert to Asia/Shanghai
|
|
|
+ val dateInZone = date.withZoneSameInstant(ZoneId.of("Asia/Shanghai"))
|
|
|
+ Log.i("Modifier", "syncTime: ${dateInZone.format(DateTimeFormatter.ISO_DATE_TIME)}")
|
|
|
+ Utils.runAsRoot(
|
|
|
+ "setprop persist.sys.timezone Asia/Shanghai",
|
|
|
+ "date '${dateInZone.format(DateTimeFormatter.ofPattern("MMddHHmmyyyy.ss"))}'"
|
|
|
+ )
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|