1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| fun installApatch() { val state = _apStateLiveData.value if (state != State.ANDROIDPATCH_NOT_INSTALLED && state != State.ANDROIDPATCH_NEED_UPDATE ) { return } _apStateLiveData.value = State.ANDROIDPATCH_INSTALLING val nativeDir = apApp.applicationInfo.nativeLibraryDir
Natives.resetSuPath(LEGACY_SU_PATH)
val cmds = arrayOf( "mkdir -p $APATCH_BIN_FOLDER", "mkdir -p $APATCH_LOG_FOLDER",
"cp -f ${nativeDir}/libkpatch.so $KPATCH_PATH", "chmod +x $KPATCH_PATH", "ln -s $KPATCH_PATH $KPATCH_LINK_PATH", "restorecon $KPATCH_PATH",
"cp -f ${nativeDir}/libapd.so $APD_PATH", "chmod +x $APD_PATH", "ln -s $APD_PATH $APD_LINK_PATH", "restorecon $APD_PATH",
"cp -f ${nativeDir}/libmagiskpolicy.so $MAGISKPOLICY_BIN_PATH", "chmod +x $MAGISKPOLICY_BIN_PATH", "cp -f ${nativeDir}/libresetprop.so $RESETPROP_BIN_PATH", "chmod +x $RESETPROP_BIN_PATH", "cp -f ${nativeDir}/libbusybox.so $BUSYBOX_BIN_PATH", "chmod +x $BUSYBOX_BIN_PATH",
"touch $PACKAGE_CONFIG_FILE", "touch $SU_PATH_FILE", "[ -s $SU_PATH_FILE ] || echo $LEGACY_SU_PATH > $SU_PATH_FILE", "echo ${Version.getManagerVersion().second} > $APATCH_VERSION_PATH", "restorecon -R $APATCH_FOLDER",
"${nativeDir}/libmagiskpolicy.so --magisk --live", )
val shell = getRootShell() shell.newJob().add(*cmds).to(logCallback, logCallback).exec()
APatchCli.refresh()
Log.d(TAG, "APatch installed...") _apStateLiveData.postValue(State.ANDROIDPATCH_INSTALLED) }
|