data recover
This commit is contained in:
parent
1250e0150b
commit
a69be9ced5
|
@ -11,8 +11,10 @@ import androidx.appcompat.app.AlertDialog
|
|||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.android.grape.databinding.ActivityMainBinding
|
||||
import com.android.grape.job.MonitorService
|
||||
import com.android.grape.util.BackupUtils
|
||||
import com.android.grape.util.BackupUtils.killRecordProcess
|
||||
import com.android.grape.util.ClashUtil
|
||||
import com.android.grape.util.FileUtils
|
||||
|
@ -23,6 +25,7 @@ import com.android.grape.util.ScriptUtils.unregisterScriptResultReceiver
|
|||
import com.android.grape.util.ShellUtil
|
||||
import com.android.grape.util.StoragePermissionHelper
|
||||
import com.android.grape.util.TaskUtils
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* public class MainActivity extends AppCompatActivity
|
||||
|
@ -78,6 +81,10 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
viewBinding.stop.setOnClickListener {
|
||||
killRecordProcess(this, packageName)
|
||||
// lifecycleScope.launch {
|
||||
// BackupUtils.backUp(this@MainActivity, "com.policybazaar")
|
||||
// BackupUtils.recoverRecordData(this@MainActivity)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -243,7 +243,7 @@ class SendCallbackJobService : JobIntentService() {
|
|||
}
|
||||
|
||||
chownSh(fileName, getMainUserAndGroup(this))
|
||||
var url = "http://39.103.73.250/tt/ddj/backup.do"
|
||||
var url = "http://47.83.1.116/tt/ddj/backup.do"
|
||||
// if (Util.backUpServerIp != "") {
|
||||
// url = "http://" + Util.backUpServerIp + "/tt/ddj/backup.do"
|
||||
// }
|
||||
|
|
|
@ -42,7 +42,9 @@ import com.android.grape.util.ContextUtils.getBaseFilesDir
|
|||
import com.android.grape.util.ContextUtils.getRecordDataDirName
|
||||
import com.android.grape.util.ContextUtils.getRecordDataFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordExtraFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordListTxtFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordSdcardApkVerFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordTxtFileName
|
||||
import com.android.grape.util.ContextUtils.getSessionTxtFileName
|
||||
import com.android.grape.util.DeviceUtils.getUserAndGroupSh
|
||||
import com.android.grape.util.FileUtils.forceMakeDir
|
||||
|
@ -397,8 +399,8 @@ object AppUtils {
|
|||
fun installObb(context: Context, extraFile: File) {
|
||||
val userAndGroup = getUserAndGroupSh(
|
||||
context,
|
||||
context.packageName,
|
||||
getBaseFilesDir(context) + "/" + monitorDir + "/" + apkDir + "/" + context.packageName + ".txt"
|
||||
recordPackageName,
|
||||
getRecordTxtFileName( context)
|
||||
)
|
||||
|
||||
val destExtraFile = File(
|
||||
|
@ -626,7 +628,7 @@ object AppUtils {
|
|||
.isNotEmpty()
|
||||
) {
|
||||
var restored_zip =
|
||||
"http://192.168.1.111/tt/" + it.getString("BackupFileUrl1")
|
||||
"http://47.83.1.116/tt/upload/backupddj/" + it.getString("BackupFileUrl1")
|
||||
if (backUpServerIp.isNotEmpty()) {
|
||||
restored_zip =
|
||||
"http://" + backUpServerIp + "/tt/" + it.getString("BackupFileUrl1")
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.android.grape.util.ContextUtils.getMonitorDir
|
|||
import com.android.grape.util.ContextUtils.getRecordDataDirName
|
||||
import com.android.grape.util.ContextUtils.getRecordDataFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordListTxtFileName
|
||||
import com.android.grape.util.ContextUtils.getRecordTxtFileName
|
||||
import com.android.grape.util.DeviceUtils.getMainUserAndGroup
|
||||
import com.android.grape.util.DeviceUtils.getUserAndGroupSh
|
||||
import com.android.grape.util.FileUtils.forceMakeDir
|
||||
|
@ -86,8 +87,8 @@ object BackupUtils {
|
|||
}
|
||||
val uid = getUserAndGroupSh(
|
||||
context.applicationContext,
|
||||
context.packageName,
|
||||
getBaseFilesDir(context) + "/" + monitorDir + "/" + apkDir + "/" + context.packageName + ".txt"
|
||||
recordPackageName,
|
||||
getRecordTxtFileName(context)
|
||||
)
|
||||
chownSh(getMonitorDir(context), uid)
|
||||
val copySucc = FileUtils.copyFolderSh(apkDataPath,zipDirName)
|
||||
|
@ -348,8 +349,8 @@ object BackupUtils {
|
|||
|
||||
val userAnGroup = getUserAndGroupSh(
|
||||
context,
|
||||
context.packageName,
|
||||
getBaseFilesDir(context) + "/" + monitorDir + "/" + apkDir + "/" + context.packageName + ".txt"
|
||||
recordPackageName ?: return false,
|
||||
getRecordTxtFileName( context)
|
||||
)
|
||||
Log.i("BackupUtils", "recoverRecordData->userAndGroup:$userAnGroup")
|
||||
File(reloginDataDir).parentFile?.absolutePath?.let {
|
||||
|
|
|
@ -279,9 +279,6 @@ object FileUtils {
|
|||
)
|
||||
try {
|
||||
val zipDir = File(zipDirName)
|
||||
// val zipFile = File(zipFileName)
|
||||
//// var cmd = "cd " + (zipDir.parentFile?.absolutePath ?: "") + "|"
|
||||
//// cmd += "tar -zcvf " + zipFile.name + " " + zipDir.name
|
||||
val cmdString = "tar -zcvf $zipFileName -C ${zipDir.parentFile?.absolutePath ?: ""} ${zipDir.name}"
|
||||
Log.i("FileUtils", "zipSh-> cmd:$cmdString")
|
||||
MockTools.exec(cmdString)
|
||||
|
@ -708,16 +705,6 @@ object FileUtils {
|
|||
val src = File(oldPath)
|
||||
val dst = File(newPath)
|
||||
|
||||
// if (!src.exists()) {
|
||||
// LogUtils.d(
|
||||
// Log.ERROR,
|
||||
// "TaskUtil",
|
||||
// "Source path does not exist: $oldPath",
|
||||
// null
|
||||
// )
|
||||
// return false
|
||||
// }
|
||||
|
||||
// 构造命令(注意 shell 特殊字符的转义)
|
||||
val safeOldPath = src.absolutePath.replace(" ", "\\ ").replace("\"", "\\\"")
|
||||
val safeNewPath = dst.absolutePath.replace(" ", "\\ ").replace("\"", "\\\"")
|
||||
|
@ -730,20 +717,6 @@ object FileUtils {
|
|||
val chmod = "chmod 777 \"$safeNewPath\""
|
||||
val chmodResult: String? = ShellUtils.execRootCmdAndGetResult(chmod)
|
||||
recursiveChmod777(dst)
|
||||
// LogUtils.d(
|
||||
// "TaskUtil",
|
||||
// "chmodResult. Result: $chmodResult",
|
||||
// null
|
||||
// )
|
||||
// if ( result.trim { it <= ' ' }.isEmpty()) {
|
||||
// LogUtils.d(
|
||||
// "TaskUtil",
|
||||
// "Command execution failed. Result: $result",
|
||||
// null
|
||||
// )
|
||||
// return false
|
||||
// }
|
||||
|
||||
Log.i("TaskUtil", "Command executed successfully: $result")
|
||||
return true
|
||||
} catch (e: java.lang.Exception) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.android.grape.util.ShellUtils.delFileSh
|
|||
import com.android.grape.util.ShellUtils.unzipAPkSh
|
||||
import com.android.grape.util.ShellUtils.unzipScriptSh
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* @Time: 2025-16-16 19:16
|
||||
|
@ -46,8 +47,8 @@ object ScriptUtils {
|
|||
fun execDownScript(): Boolean {
|
||||
var isDownload = true
|
||||
if (isCanAuto) {
|
||||
Log.i("TaskUtils", "start to execDownScript")
|
||||
val script_url = "http://39.103.73.250/tt/" + canAutoLc
|
||||
Log.i("TaskUtils", "start to execDownScript $script_url")
|
||||
isDownload = downloadFile(script_url, script_path)
|
||||
if (!isDownload) {
|
||||
Log.i("TaskUtils", "execDownScript isDownload : $isDownload")
|
||||
|
@ -70,7 +71,14 @@ object ScriptUtils {
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
val scriptFile = File(src)
|
||||
if (!scriptFile.exists()) {
|
||||
LogUtils.e("AutoJsUtil", "Script file not found")
|
||||
runOnUiThread {
|
||||
Toast.makeText(context, "Script file not found", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
return
|
||||
}
|
||||
val intent = Intent()
|
||||
intent.setClassName(
|
||||
"org.autojs.autojs6",
|
||||
|
|
|
@ -478,8 +478,7 @@ object ShellUtils {
|
|||
|
||||
fun delFilesSh(dir: String, prefix: String?) {
|
||||
try {
|
||||
var cmd = "cd $dir|"
|
||||
cmd += "rm -rf $prefix*"
|
||||
var cmd = "rm -rf $dir$prefix*"
|
||||
Log.i("ShellUtils", "delFilesSh-> cmd:$cmd")
|
||||
MockTools.exec(cmd)
|
||||
} catch (e: Exception) {
|
||||
|
@ -514,10 +513,9 @@ object ShellUtils {
|
|||
|
||||
fun unZipFileSh(zipFileName: String, dataDir: String) {
|
||||
try {
|
||||
var cmd = "cd $dataDir|"
|
||||
cmd += "tar -xvf " + File(zipFileName).name
|
||||
Log.i("ShellUtils", "unZipFileSh-> cmd:$cmd")
|
||||
MockTools.exec(cmd)
|
||||
val cmdString = "tar -zxvf $zipFileName --strip-components=1 -C $dataDir"
|
||||
Log.i("ShellUtils", "unZipFileSh-> cmd:$cmdString")
|
||||
MockTools.exec(cmdString)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue