mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-05-02 15:44:39 +02:00
fix(Google Photos - Restore hidden 'Back up while charging' toggle): Constrain to last working app target (#4761)
This commit is contained in:
parent
9387aae7ba
commit
152bb7c3ee
@ -3,23 +3,29 @@ package app.revanced.patches.googlephotos.misc.preferences
|
|||||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||||
import app.revanced.patcher.patch.bytecodePatch
|
import app.revanced.patcher.patch.bytecodePatch
|
||||||
|
import app.revanced.util.indexOfFirstInstructionOrThrow
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
val restoreHiddenBackUpWhileChargingTogglePatch = bytecodePatch(
|
val restoreHiddenBackUpWhileChargingTogglePatch = bytecodePatch(
|
||||||
name = "Restore hidden 'Back up while charging' toggle",
|
name = "Restore hidden 'Back up while charging' toggle",
|
||||||
description = "Restores a hidden toggle to only run backups when the device is charging.",
|
description = "Restores a hidden toggle to only run backups when the device is charging.",
|
||||||
|
use = false
|
||||||
) {
|
) {
|
||||||
compatibleWith("com.google.android.apps.photos")
|
compatibleWith("com.google.android.apps.photos"("7.11.0.705590205"))
|
||||||
|
|
||||||
execute {
|
execute {
|
||||||
// Patches 'backup_prefs_had_backup_only_when_charging_enabled' to always be true.
|
// Patches 'backup_prefs_had_backup_only_when_charging_enabled' to always be true.
|
||||||
val chargingPrefStringIndex = backupPreferencesFingerprint.stringMatches!!.first().index
|
backupPreferencesFingerprint.let {
|
||||||
backupPreferencesFingerprint.method.apply {
|
it.method.apply {
|
||||||
// Get the register of move-result.
|
val index = indexOfFirstInstructionOrThrow(
|
||||||
val resultRegister = getInstruction<OneRegisterInstruction>(chargingPrefStringIndex + 2).registerA
|
it.stringMatches!!.first().index,
|
||||||
// Insert const after move-result to override register as true.
|
Opcode.MOVE_RESULT
|
||||||
addInstruction(chargingPrefStringIndex + 3, "const/4 v$resultRegister, 0x1")
|
)
|
||||||
|
val register = getInstruction<OneRegisterInstruction>(index).registerA
|
||||||
|
addInstruction(index + 1, "const/4 v$register, 0x1")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user