diff --git a/main/app/revanced/patches/grindr/ConfigFingerprint.kt b/bin/main/app/revanced/patches/grindr/ConfigFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/ConfigFingerprint.kt rename to bin/main/app/revanced/patches/grindr/ConfigFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/annotations/MicroGPatchCompatibility.kt b/bin/main/app/revanced/patches/grindr/microg/annotations/MicroGPatchCompatibility.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/annotations/MicroGPatchCompatibility.kt rename to bin/main/app/revanced/patches/grindr/microg/annotations/MicroGPatchCompatibility.kt diff --git a/main/app/revanced/patches/grindr/microg/constants.kt b/bin/main/app/revanced/patches/grindr/microg/constants.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/constants.kt rename to bin/main/app/revanced/patches/grindr/microg/constants.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/CastContextFetchFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/CastContextFetchFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/CastContextFetchFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/CastContextFetchFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GetCertRegistrationFIngerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GetCertRegistrationFIngerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GetCertRegistrationFIngerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GetCertRegistrationFIngerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GetMessagingCertFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GetMessagingCertFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GetMessagingCertFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GetMessagingCertFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GetPackageNameFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GetPackageNameFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GetPackageNameFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GetPackageNameFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GoogleApiAvailabilityFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GoogleApiAvailabilityFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GoogleApiAvailabilityFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GoogleApiAvailabilityFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayServicesManifestValueExceptionFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayServicesManifestValueExceptionFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayServicesManifestValueExceptionFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayServicesManifestValueExceptionFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayUtilityFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayUtilityFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayUtilityFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/GooglePlayUtilityFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/OnChangedFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/OnChangedFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/OnChangedFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/OnChangedFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/PrimeFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/PrimeFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/PrimeFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/PrimeFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/ServiceCheckFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/ServiceCheckFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/ServiceCheckFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/ServiceCheckFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/fingerprints/lyimgAuthFingerprint.kt b/bin/main/app/revanced/patches/grindr/microg/fingerprints/lyimgAuthFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/fingerprints/lyimgAuthFingerprint.kt rename to bin/main/app/revanced/patches/grindr/microg/fingerprints/lyimgAuthFingerprint.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/bytecode/FirebaseGetCertPatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/bytecode/FirebaseGetCertPatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/bytecode/FirebaseGetCertPatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/bytecode/FirebaseGetCertPatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/bytecode/GooglePlayServicesManifestValueExceptionPatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/bytecode/GooglePlayServicesManifestValueExceptionPatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/bytecode/GooglePlayServicesManifestValueExceptionPatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/bytecode/GooglePlayServicesManifestValueExceptionPatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/bytecode/MicroGBytecodePatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/bytecode/MicroGBytecodePatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/bytecode/MicroGBytecodePatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/bytecode/MicroGBytecodePatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/bytecode/OnChangedPatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/bytecode/OnChangedPatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/bytecode/OnChangedPatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/bytecode/OnChangedPatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/bytecode/lyImgPatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/bytecode/lyImgPatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/bytecode/lyImgPatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/bytecode/lyImgPatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/resource/GooglePlayServicesManifestResourcePatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/resource/GooglePlayServicesManifestResourcePatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/resource/GooglePlayServicesManifestResourcePatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/resource/GooglePlayServicesManifestResourcePatch.kt diff --git a/main/app/revanced/patches/grindr/microg/patch/resource/MicroGResourcePatch.kt b/bin/main/app/revanced/patches/grindr/microg/patch/resource/MicroGResourcePatch.kt similarity index 100% rename from main/app/revanced/patches/grindr/microg/patch/resource/MicroGResourcePatch.kt rename to bin/main/app/revanced/patches/grindr/microg/patch/resource/MicroGResourcePatch.kt diff --git a/main/app/revanced/patches/grindr/premium/annotations/UnlockPremiumCompatibility.kt b/bin/main/app/revanced/patches/grindr/premium/annotations/UnlockPremiumCompatibility.kt similarity index 100% rename from main/app/revanced/patches/grindr/premium/annotations/UnlockPremiumCompatibility.kt rename to bin/main/app/revanced/patches/grindr/premium/annotations/UnlockPremiumCompatibility.kt diff --git a/main/app/revanced/patches/grindr/premium/fingerprints/IsPremiumFingerprint.kt b/bin/main/app/revanced/patches/grindr/premium/fingerprints/IsPremiumFingerprint.kt similarity index 100% rename from main/app/revanced/patches/grindr/premium/fingerprints/IsPremiumFingerprint.kt rename to bin/main/app/revanced/patches/grindr/premium/fingerprints/IsPremiumFingerprint.kt diff --git a/main/app/revanced/patches/grindr/premium/patch/setPremium.kt b/bin/main/app/revanced/patches/grindr/premium/patch/setPremium.kt similarity index 100% rename from main/app/revanced/patches/grindr/premium/patch/setPremium.kt rename to bin/main/app/revanced/patches/grindr/premium/patch/setPremium.kt diff --git a/main/app/revanced/extensions/Extensions.kt b/main/app/revanced/extensions/Extensions.kt deleted file mode 100644 index e90fbdcfe3..0000000000 --- a/main/app/revanced/extensions/Extensions.kt +++ /dev/null @@ -1,84 +0,0 @@ -package app.revanced.extensions - -import app.revanced.patcher.extensions.MethodFingerprintExtensions.name -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction -import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.patcher.patch.PatchResultError -import app.revanced.patcher.util.proxy.mutableTypes.MutableClass -import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod -import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch -import org.jf.dexlib2.Opcode -import org.jf.dexlib2.iface.Method -import org.jf.dexlib2.iface.instruction.WideLiteralInstruction -import org.jf.dexlib2.util.MethodUtil -import org.w3c.dom.Node - -// TODO: populate this to all patches -/** - * Convert a [MethodFingerprint] to a [PatchResultError]. - * - * @return A [PatchResultError] for the [MethodFingerprint]. - */ -internal fun MethodFingerprint.toErrorResult() = PatchResultError("Failed to resolve $name") - -/** - * Find the [MutableMethod] from a given [Method] in a [MutableClass]. - * - * @param method The [Method] to find. - * @return The [MutableMethod]. - */ -internal fun MutableClass.findMutableMethodOf(method: Method) = this.methods.first { - MethodUtil.methodSignaturesMatch(it, method) -} - -/** - * apply a transform to all methods of the class - * - * @param transform the transformation function. original method goes in, transformed method goes out - */ -internal fun MutableClass.transformMethods(transform: MutableMethod.() -> MutableMethod) { - val transformedMethods = methods.map { it.transform() } - methods.clear() - methods.addAll(transformedMethods) -} - -internal fun Node.doRecursively(action: (Node) -> Unit) { - action(this) - for (i in 0 until this.childNodes.length) this.childNodes.item(i).doRecursively(action) -} - -internal fun MutableMethod.injectHideViewCall( - insertIndex: Int, - viewRegister: Int, - classDescriptor: String, - targetMethod: String -) = addInstruction( - insertIndex, - "invoke-static { v$viewRegister }, $classDescriptor->$targetMethod(Landroid/view/View;)V" -) - -internal fun Method.findIndexForIdResource(resourceName: String): Int { - fun getIdResourceId(resourceName: String) = ResourceMappingPatch.resourceMappings.single { - it.type == "id" && it.name == resourceName - }.id - - return indexOfFirstConstantInstructionValue(getIdResourceId(resourceName)) -} - -/** - * @return the first constant instruction with the value, or -1 if not found. - */ -fun Method.indexOfFirstConstantInstructionValue(constantValue: Long): Int { - return implementation?.let { - it.instructions.indexOfFirst { instruction -> - instruction.opcode == Opcode.CONST && (instruction as WideLiteralInstruction).wideLiteral == constantValue - } - } ?: -1 -} - -/** - * @return if the method contains a constant with the given value. - */ -fun Method.containsConstantInstructionValue(constantValue: Long): Boolean { - return indexOfFirstConstantInstructionValue(constantValue) >= 0 -} diff --git a/main/app/revanced/meta/JsonGenerator.kt b/main/app/revanced/meta/JsonGenerator.kt deleted file mode 100644 index cebf57d91e..0000000000 --- a/main/app/revanced/meta/JsonGenerator.kt +++ /dev/null @@ -1,70 +0,0 @@ -package app.revanced.meta - -import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages -import app.revanced.patcher.extensions.PatchExtensions.dependencies -import app.revanced.patcher.extensions.PatchExtensions.description -import app.revanced.patcher.extensions.PatchExtensions.include -import app.revanced.patcher.extensions.PatchExtensions.options -import app.revanced.patcher.extensions.PatchExtensions.patchName -import app.revanced.patcher.extensions.PatchExtensions.version -import app.revanced.patcher.patch.PatchOption -import com.google.gson.GsonBuilder -import java.io.File - -internal class JsonGenerator : PatchesFileGenerator { - override fun generate(bundle: PatchBundlePatches) { - val patches = bundle.map { - JsonPatch( - it.patchName, - it.description ?: "This patch has no description.", - it.version ?: "0.0.0", - !it.include, - it.options?.map { option -> - JsonPatch.Option( - option.key, - option.title, - option.description, - option.required, - option.let { listOption -> - if (listOption is PatchOption.ListOption<*>) { - listOption.options.toMutableList().toTypedArray() - } else null - } - ) - }?.toTypedArray() ?: emptyArray(), - it.dependencies?.map { dep -> - dep.java.patchName - }?.toTypedArray() ?: emptyArray(), - it.compatiblePackages?.map { pkg -> - JsonPatch.CompatiblePackage(pkg.name, pkg.versions) - }?.toTypedArray() ?: emptyArray() - ) - } - - val json = File("patches.json") - json.writeText(GsonBuilder().serializeNulls().create().toJson(patches)) - } - - private class JsonPatch( - val name: String, - val description: String, - val version: String, - val excluded: Boolean, - val options: Array