57 lines
2.4 KiB
Kotlin
57 lines
2.4 KiB
Kotlin
package app.revanced.utils.adb
|
|
|
|
internal object Constants {
|
|
// template placeholder to replace a string in commands
|
|
internal const val PLACEHOLDER = "TEMPLATE_PACKAGE_NAME"
|
|
|
|
// utility commands
|
|
private const val COMMAND_CHMOD_MOUNT = "chmod +x"
|
|
internal const val COMMAND_PID_OF = "pidof -s"
|
|
internal const val COMMAND_CREATE_DIR = "mkdir -p"
|
|
internal const val COMMAND_LOGCAT = "logcat -c && logcat --pid=$($COMMAND_PID_OF $PLACEHOLDER)"
|
|
internal const val COMMAND_RESTART = "monkey -p $PLACEHOLDER 1 && kill ${'$'}($COMMAND_PID_OF $PLACEHOLDER)"
|
|
|
|
// default mount file name
|
|
private const val NAME_MOUNT_SCRIPT = "mount_$PLACEHOLDER.sh"
|
|
|
|
// initial directory to push files to via adb push
|
|
internal const val PATH_INIT_PUSH = "/sdcard/revanced.delete"
|
|
|
|
// revanced path
|
|
internal const val PATH_REVANCED = "/data/adb/revanced/"
|
|
|
|
// revanced apk path
|
|
private const val PATH_REVANCED_APP = "$PATH_REVANCED$PLACEHOLDER.apk"
|
|
|
|
// (un)mount script paths
|
|
internal const val PATH_MOUNT = "/data/adb/service.d/$NAME_MOUNT_SCRIPT"
|
|
internal const val PATH_UMOUNT = "/data/adb/post-fs-data.d/un$NAME_MOUNT_SCRIPT"
|
|
|
|
// move to revanced apk path & set permissions
|
|
internal const val COMMAND_INSTALL_APK =
|
|
"base_path=\"$PATH_REVANCED_APP\" && mv $PATH_INIT_PUSH ${'$'}base_path && chmod 644 ${'$'}base_path && chown system:system ${'$'}base_path && chcon u:object_r:apk_data_file:s0 ${'$'}base_path"
|
|
|
|
// install mount script & set permissions
|
|
internal const val COMMAND_INSTALL_MOUNT = "mv $PATH_INIT_PUSH $PATH_MOUNT && $COMMAND_CHMOD_MOUNT $PATH_MOUNT"
|
|
|
|
// install umount script & set permissions
|
|
internal const val COMMAND_INSTALL_UMOUNT = "mv $PATH_INIT_PUSH $PATH_UMOUNT && $COMMAND_CHMOD_MOUNT $PATH_UMOUNT"
|
|
|
|
// unmount script
|
|
internal val CONTENT_UMOUNT_SCRIPT =
|
|
"""
|
|
#!/system/bin/sh
|
|
while read line; do echo ${'$'}{line} | grep $PLACEHOLDER | awk '{print ${'$'}2}' | xargs umount -l; done< /proc/mounts
|
|
""".trimIndent()
|
|
|
|
// mount script
|
|
internal val CONTENT_MOUNT_SCRIPT =
|
|
"""
|
|
#!/system/bin/sh
|
|
while [ "${'$'}(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done
|
|
|
|
base_path="$PATH_REVANCED_APP"
|
|
stock_path=${'$'}{ pm path $PLACEHOLDER | grep base | sed 's/package://g' }
|
|
mount -o bind ${'$'}base_path ${'$'}stock_path
|
|
""".trimIndent()
|
|
} |