From 710e1fd21c3877a9301a01f8906b91ecbf7c0816 Mon Sep 17 00:00:00 2001 From: TechnoIndian Date: Sun, 8 Mar 2026 17:58:26 +0530 Subject: [PATCH] Files Upload --- .github/workflows/release.yml | 57 + ApkPatcher/ANSI_COLORS.py | 56 + ApkPatcher/APK_PATCHER.py | 241 ++ ApkPatcher/CLI.py | 348 ++ ApkPatcher/MODULES.py | 34 + ApkPatcher/Patch/AES.py | 422 +++ ApkPatcher/Patch/Ads_Patch.py | 181 + ApkPatcher/Patch/CERT_NSC.py | 187 + ApkPatcher/Patch/Flutter_SSL_Patch.py | 146 + ApkPatcher/Patch/Manifest_Patch.py | 172 + ApkPatcher/Patch/Package.py | 26 + ApkPatcher/Patch/Pairip_CoreX.py | 77 + ApkPatcher/Patch/Pine_Hook.py | 63 + ApkPatcher/Patch/Random_INFO.py | 3616 ++++++++++++++++++++ ApkPatcher/Patch/Smali_Patch.py | 400 +++ ApkPatcher/Patch/Spoof_Patch.py | 328 ++ ApkPatcher/Patch/TG_Patch.py | 490 +++ ApkPatcher/Patch/__init__.py | 0 ApkPatcher/Utils/Anti_Splits.py | 62 + ApkPatcher/Utils/CRC.py | 54 + ApkPatcher/Utils/Credits.py | 28 + ApkPatcher/Utils/Decompile_Compile.py | 185 + ApkPatcher/Utils/Files/AES.smali | 436 +++ ApkPatcher/Utils/Files/Algorithm.dex | Bin 0 -> 9156 bytes ApkPatcher/Utils/Files/Hook.smali | 75 + ApkPatcher/Utils/Files/__init__.py | 0 ApkPatcher/Utils/Files/lib_Pairip_CoreX.so | Bin 0 -> 926280 bytes ApkPatcher/Utils/Files_Check.py | 201 ++ ApkPatcher/Utils/Pine/__init__.py | 0 ApkPatcher/Utils/Pine/config.json | 84 + ApkPatcher/Utils/Pine/libpine32 | Bin 0 -> 56948 bytes ApkPatcher/Utils/Pine/libpine64 | Bin 0 -> 72024 bytes ApkPatcher/Utils/Pine/loader.dex | Bin 0 -> 94552 bytes ApkPatcher/Utils/Scan.py | 118 + ApkPatcher/Utils/__init__.py | 0 ApkPatcher/__init__.py | 0 LICENSE | 21 + README.md | 236 ++ VERSION | 1 + pyproject.toml | 61 + 40 files changed, 8406 insertions(+) create mode 100644 .github/workflows/release.yml create mode 100644 ApkPatcher/ANSI_COLORS.py create mode 100644 ApkPatcher/APK_PATCHER.py create mode 100644 ApkPatcher/CLI.py create mode 100644 ApkPatcher/MODULES.py create mode 100644 ApkPatcher/Patch/AES.py create mode 100644 ApkPatcher/Patch/Ads_Patch.py create mode 100644 ApkPatcher/Patch/CERT_NSC.py create mode 100644 ApkPatcher/Patch/Flutter_SSL_Patch.py create mode 100644 ApkPatcher/Patch/Manifest_Patch.py create mode 100644 ApkPatcher/Patch/Package.py create mode 100644 ApkPatcher/Patch/Pairip_CoreX.py create mode 100644 ApkPatcher/Patch/Pine_Hook.py create mode 100644 ApkPatcher/Patch/Random_INFO.py create mode 100644 ApkPatcher/Patch/Smali_Patch.py create mode 100644 ApkPatcher/Patch/Spoof_Patch.py create mode 100644 ApkPatcher/Patch/TG_Patch.py create mode 100644 ApkPatcher/Patch/__init__.py create mode 100644 ApkPatcher/Utils/Anti_Splits.py create mode 100644 ApkPatcher/Utils/CRC.py create mode 100644 ApkPatcher/Utils/Credits.py create mode 100644 ApkPatcher/Utils/Decompile_Compile.py create mode 100644 ApkPatcher/Utils/Files/AES.smali create mode 100644 ApkPatcher/Utils/Files/Algorithm.dex create mode 100644 ApkPatcher/Utils/Files/Hook.smali create mode 100644 ApkPatcher/Utils/Files/__init__.py create mode 100644 ApkPatcher/Utils/Files/lib_Pairip_CoreX.so create mode 100644 ApkPatcher/Utils/Files_Check.py create mode 100644 ApkPatcher/Utils/Pine/__init__.py create mode 100644 ApkPatcher/Utils/Pine/config.json create mode 100644 ApkPatcher/Utils/Pine/libpine32 create mode 100644 ApkPatcher/Utils/Pine/libpine64 create mode 100644 ApkPatcher/Utils/Pine/loader.dex create mode 100644 ApkPatcher/Utils/Scan.py create mode 100644 ApkPatcher/Utils/__init__.py create mode 100644 ApkPatcher/__init__.py create mode 100644 LICENSE create mode 100644 README.md create mode 100644 VERSION create mode 100644 pyproject.toml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..74dc6a4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,57 @@ +name: Release + +on: + push: + tags: + - '*' + + workflow_dispatch: + inputs: + version: + description: 'Version' + required: false + default: '' + type: string + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Get version + run: | + if [[ "${{ github.event_name }}" == "workflow_dispatch" && -n "${{ github.event.inputs.version }}" ]]; then + VERSION_TAG="${{ github.event.inputs.version }}" + echo "Using manually provided version: $VERSION_TAG" + else + VERSION_TAG=$(git describe --tags --always) + echo "Extracted version from git: $VERSION_TAG" + fi + echo "$VERSION_TAG" > VERSION + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.x" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build twine + + - name: Build the package + run: | + python -m build + + - name: Publish + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + python -m twine upload dist/* \ No newline at end of file diff --git a/ApkPatcher/ANSI_COLORS.py b/ApkPatcher/ANSI_COLORS.py new file mode 100644 index 0000000..a1d0afa --- /dev/null +++ b/ApkPatcher/ANSI_COLORS.py @@ -0,0 +1,56 @@ +# ————— 𝐀𝐍𝐒𝐈 𝐂𝐎𝐋𝐎𝐑𝐒 ————— + +class ANSI: + def __init__(self): + + # =====🔸𝐀𝐍𝐒𝐈 𝐂𝐎𝐋𝐎𝐑𝐒🔸===== + + self.ESC = '\033' # ( Octal ) + + # 𝐀𝐍𝐒𝐈 𝐂𝐎𝐋𝐎𝐑 ( 𝐁𝐎𝐋𝐃 = 𝟏𝐦 | 𝐃𝐀𝐑𝐊 = 𝟐𝐦 ) + + self.R = self.ESC + '[31;1m' # RED + self.G = self.ESC + '[32;1m' # GREEN + self.Y = self.ESC + '[33;1m' # YELLOW + self.B = self.ESC + '[34;1m' # BLUE + self.P = self.ESC + '[35;1m' # PURPLE + self.C = self.ESC + '[36;1m' # CYAN + self.W = self.ESC + '[37;1m' # WHITE + + # 𝐁𝐑𝐈𝐆𝐇𝐓 𝐂𝐎𝐋𝐎𝐑 + + self.BR = self.ESC + '[91;1m' # BRIGHT RED + self.BG = self.ESC + '[92;1m' # BRIGHT GREEN + self.BY = self.ESC + '[93;1m' # BRIGHT YELLOW + self.BB = self.ESC + '[94;1m' # BRIGHT BLUE + self.BP = self.ESC + '[95;1m' # BRIGHT PURPLE + self.BC = self.ESC + '[96;1m' # BRIGHT CYAN + self.BW = self.ESC + '[97;1m' # BRIGHT WHITE + + # 𝐎𝐓𝐇𝐄𝐑 𝐂𝐎𝐋𝐎𝐑 + + self.DG = self.ESC + '[32;2m' # DARK GREEN + self.GR = self.ESC + '[90;1m' # GRAY + + # 𝟐𝟓𝟔 𝐂𝐨𝐥𝐨𝐫𝐬 ( 𝐄𝐒𝐂 + '[𝟑𝟖;𝟓;{𝐈𝐃}𝐦' ) [ 𝐈𝐃 - https://user-images.githubusercontent.com/995050/47952855-ecb12480-df75-11e8-89d4-ac26c50e80b9.png ] + + self.PN = self.ESC + '[38;5;213;1m' # PINK + self.OG = self.ESC + '[38;5;202;1m' # ORANGE + + # 𝐂𝐋𝐄𝐀𝐑 𝐂𝐎𝐃𝐄𝐒 + + self.CL = self.ESC + '[2K' # CLEAR LINE + self.CC = self.ESC + '[0m' # CLEAR COLOR + + # 𝐌𝐎𝐑𝐄 𝐈𝐍𝐅𝐎 [ 𝐋𝐈𝐍𝐊 - https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 ] + + # =====🔹𝐓𝐀𝐆🔹===== + + self.S = f'{self.B}[{self.C}' + self.E = f'{self.B}]' + self.X = f'{self.B}[ {self.P}* {self.B}]' + self.FYI = f'{self.B}[ {self.P}FYI {self.B}]' + self.INFO = f'{self.B}[ {self.Y}INFO {self.B}]{self.C}' + self.WARN = f'{self.B}[ {self.Y}WARN {self.B}]{self.B}' + self.ERROR = f'{self.B}[ {self.R}ERROR {self.B}]{self.R}' + self.SUGGEST = f'{self.B}[ {self.Y}SUGGEST {self.B}]{self.C}' \ No newline at end of file diff --git a/ApkPatcher/APK_PATCHER.py b/ApkPatcher/APK_PATCHER.py new file mode 100644 index 0000000..fe50df5 --- /dev/null +++ b/ApkPatcher/APK_PATCHER.py @@ -0,0 +1,241 @@ +from .CLI import parse_arguments +from .ANSI_COLORS import ANSI; C = ANSI() +from .MODULES import IMPORT; M = IMPORT() + +from ApkPatcher.Utils.CRC import CRC_Fix +from ApkPatcher.Utils.Credits import Credits +from ApkPatcher.Utils.Scan import Scan_Apk +from ApkPatcher.Utils.Anti_Splits import Anti_Split +from ApkPatcher.Utils.Files_Check import FileCheck, __version__ +from ApkPatcher.Utils.Decompile_Compile import Decompile_Apk, Recompile_Apk, FixSigBlock, Sign_APK + +from ApkPatcher.Patch.CERT_NSC import Write_NSC +from ApkPatcher.Patch.Smali_Patch import Smali_Patch +from ApkPatcher.Patch.TG_Patch import TG_Smali_Patch +from ApkPatcher.Patch.Ads_Patch import Ads_Smali_Patch +from ApkPatcher.Patch.Pine_Hook import Pine_Hook_Patch +from ApkPatcher.Patch.Spoof_Patch import Patch_Random_Info +from ApkPatcher.Patch.Flutter_SSL_Patch import Patch_Flutter_SSL +from ApkPatcher.Patch.AES import Copy_AES_Smali, Patch_Algorithm +from ApkPatcher.Patch.Pairip_CoreX import Check_CoreX, Hook_Core +from ApkPatcher.Patch.Manifest_Patch import Fix_Manifest, Patch_Manifest, Permission_Manifest + + +def Clear(): + M.os.system('cls' if M.os.name == 'nt' else 'clear') +Clear() + + +# ---------------- Install Require Module --------------- +required_modules = ['requests', 'r2pipe', 'asn1crypto', 'multiprocess'] +for module in required_modules: + try: + __import__(module) + except ImportError: + print(f"{C.S} Installing {C.E} {C.OG}➸❥ {C.G}{module}...\n") + try: + M.subprocess.check_call([M.sys.executable, "-m", "pip", "install", module]) + Clear() + except (M.subprocess.CalledProcessError, Exception): + exit( + f"\n{C.ERROR} No Internet Connection. ✘\n" + f"\n{C.INFO} Internet Connection is Required to Install {C.G} pip install {module}\n" + ) + + +# ---------------- Check Dependencies --------------- +def check_dependencies(): + try: + M.subprocess.run(['java', '-version'], stdout=M.subprocess.PIPE, stderr=M.subprocess.PIPE, check=True, text=True) + except (M.subprocess.CalledProcessError, FileNotFoundError): + if M.os.name == 'posix': + install_package('openjdk-17') + else: + exit( + f'\n\n{C.ERROR} Java is not installed on Your System. ✘\n' + f'\n{C.INFO} Install Java & Run Script Again in New CMD. ✘\n' + f'\n{C.INFO} Verify Java Installation {C.G} java --version\n' + ) + + if M.os.name == 'posix': install_package('aapt') + + +# ---------------- Install Package --------------- +def install_package(pkg): + try: + result = M.subprocess.run(['pkg', 'list-installed'], stdout=M.subprocess.PIPE, stderr=M.subprocess.PIPE, text=True) + if pkg not in result.stdout: + print(f"{C.S} Installing {C.E} {C.OG}➸❥ {C.G}{pkg}...\n") + M.subprocess.check_call(['pkg', 'install', '-y', pkg]) + Clear() + except (M.subprocess.CalledProcessError, Exception): + exit( + f"\n\n{C.ERROR} No Internet Connection. ✘\n" + f"\n{C.INFO} Internet Connection is Required to Installation {C.G}pkg install {pkg}\n" + ) + +check_dependencies() + +F = FileCheck(); F.Set_Path(); F.F_D() + +Date = M.datetime.now().strftime('%d/%m/%y') +print(f"{C.OG}{f'v{__version__}':>22}") + +# Logo ( 🙏 ) +b64 = """eJzVlc9LAkEUx8/Ov9DlMXgNzLAfeMlUSAQLETx4ELGlJEehnEPgQSrqUlFYdIroHNShixDRP1DQn1DaqUv+Cc3MzszOrFtUt96u+2O+n/fmvTe7LoCwsdIEGStNzsRj8WgkSoYXe9fsdwtFp15tEsfSp8n8phyYjZKCU11tNCHTWK5V2GhE+yIUCgF1DYFplIY9s0RLGdG56EsU5PTjRgLcyfIJMk1IQNcDiaUsLCUKyYV0XoUL4H8QErNLbJxNBCtA4FSOikGdOufBj/DYAQS1L72WYreH7CB5ak+iUzPTtHSvZH32LWcYGxsX2Yp7KdIwyI2KJNx1ZpgIZ5TCURqm3qAAkNKona5qn3pkkP1QCZSbnM5QkXDG2MQpWA+fq7IuyAA8lh2e3TPNbASfBHxRkVwZI7QPkpqqUs2OjcAWLqbERv0j5uIqt685UM9bKFjUb8Swu7MFr4eX71fn/Z1jGHZ3j+CjdzfY3uufHr31OvDycAbPN4/3T90sP/B7/uKgfuckcG9/JXy//8XtFz4WiqweTJFchTi8Jtmbtq0WnLqzsl4hmmj73BeLuXTe56/FVKXl/Pt++f6XB51988Mw6ByI6tvqQxIjc+trLUHUONDYGNHz2XIhnVzILZYzuVQmITr0CawgFWQ=""" +print(f"{M.zlib.decompress(M.base64.b64decode(b64)).decode('utf-8').rstrip('\n')} | {C.B}{Date}{C.CC}") +print("————————|——————————————————|—————————————————|——————————————|————") + + +# ---------------- Target All Classes Folder --------------- +def Find_Smali_Folders(decompile_dir, isAPKEditor, isPine_Hook): + + dex_path = M.os.path.join(decompile_dir, "dex") if isAPKEditor else decompile_dir + + smali_path = M.os.path.join(decompile_dir, "smali") if isAPKEditor else decompile_dir + + if isPine_Hook: + + classes_files = [file for file in M.os.listdir(dex_path) if file.startswith("classes") and file.endswith(".dex")] + + return f"classes{len(classes_files) + 1}.dex" + + else: + + prefix = "classes" if isAPKEditor else "smali_classes" + + folders = sorted([folder for folder in M.os.listdir(smali_path) if folder == "smali" or folder.startswith(prefix)], key=lambda x: int(x.split(prefix)[-1]) if x.split(prefix)[-1].isdigit() else 0) + + return [M.os.path.join(smali_path, folder) for folder in folders] + + +# ---------------- Execute Main Function --------------- +def RK_Techno_IND(): + args = parse_arguments() + isCoreX = args.Hook_CoreX + isFlutter = args.Flutter; isPairip = args.Pairip + Skip_Patch = args.Skip_Patch if args.Skip_Patch else [] + isAPKEditor = args.APKEditor; isEmulator = args.For_Emulator + + if isEmulator: + F.isEmulator() + F.F_D_A() + + if args.Credits: + Credits() + + apk_path = args.input or args.Merge + + if not M.os.path.isfile(apk_path): + exit( + f"\n{C.ERROR} APK file '{apk_path}' not found. ✘\n\n" + f"\n{C.FYI}{C.G} Make Sure There Is 'No Extra Space' In The Folder/Apk Name In The Input Text. If Yes, Then Remove Extra Space & Correct It By Renaming It.\n" + ) + + if args.CA_Certificate: + isCert = [Cert for Cert in args.CA_Certificate if not M.os.path.isfile(Cert)] + + if isCert: + exit(f"\n{C.ERROR} Not exist: {', '.join(isCert)}\n") + + apk_path = Anti_Split(apk_path, args.Merge, isCoreX) + + # ---------------- Set All Paths Directory ---------------- + decompile_dir = M.os.path.join(M.os.path.expanduser("~"), f"{M.os.path.splitext(M.os.path.basename(apk_path))[0]}_decompiled") + + build_dir = M.os.path.abspath(M.os.path.join(M.os.path.dirname(apk_path), f"{M.os.path.splitext(M.os.path.basename(apk_path))[0]}_Patched.apk")) + + rebuild_dir = build_dir.replace('_Patched.apk', '_Patch.apk') + + manifest_path = M.os.path.join(decompile_dir, 'AndroidManifest.xml') + + if M.os.name == 'posix': + M.subprocess.run(['termux-wake-lock']) + print(f"\n{C.X}{C.C} Acquiring Wake Lock...\r") + + start_time = M.time.time() + + # ---------------- Scan & Decompile APK --------------- + Package_Name, isFlutter_lib, isPairip_lib = Scan_Apk(apk_path, isFlutter, isPairip) + + Decompile_Apk(apk_path, decompile_dir, isEmulator, isAPKEditor, args.AES_Logs, args.Algorithm, args.Pine_Hook, Package_Name) + + smali_folders = Find_Smali_Folders(decompile_dir, isAPKEditor, args.Pine_Hook) + + # ---------------- Pine Hook ---------------- + if args.Pine_Hook: + Pine_Hook_Patch(decompile_dir, isAPKEditor, args.Load_Modules, smali_folders) + else: + # ---------------- AES Logs Inject ---------------- + if args.AES_Logs or args.Algorithm: + Copy_AES_Smali(decompile_dir, smali_folders, manifest_path, args.AES_S, args.Algorithm, isAPKEditor) + + Permission_Manifest(decompile_dir, manifest_path, isAPKEditor) + + # ---------------- Remove Ads ---------------- + if args.Remove_Ads: + Ads_Smali_Patch(smali_folders) + + # ---------------- Fake / Spoof Device Info ---------------- + if args.Random_Info: + Patch_Random_Info(smali_folders, args.Android_ID) + + # ---------------- TG Patch ---------------- + if args.TG_Patch: + TG_Smali_Patch(decompile_dir, smali_folders, isAPKEditor) + + + # ---------------- Other Patch ---------------- + if args.AES_Logs or args.Algorithm or args.Remove_Ads or args.Random_Info or args.Pine_Hook or args.TG_Patch: + Fix_Manifest(manifest_path, args.Spoof_PKG, args.Pine_Hook, Package_Name) + else: + if isFlutter and isFlutter_lib: + Patch_Flutter_SSL(decompile_dir, isAPKEditor) + + # ---------------- Smali Patching / Hook CoreX ---------------- + if isCoreX and isPairip and isPairip_lib and Check_CoreX(decompile_dir, isAPKEditor): + M.shutil.rmtree(decompile_dir) + exit(1) + + Smali_Patch(decompile_dir, smali_folders, isAPKEditor, args.CA_Certificate, args.Android_ID, isPairip, isPairip_lib, args.Spoof_PKG, args.Purchase, args.Remove_SS, Skip_Patch, args.Remove_USB, isCoreX) + + if isCoreX and isPairip and isPairip_lib: + Hook_Core(args.input, decompile_dir, isAPKEditor, Package_Name) + + # ---------------- Patch Manifest & Write Network Config ---------------- + Fix_Manifest(manifest_path, args.Spoof_PKG, args.Pine_Hook, Package_Name) + + Patch_Manifest(decompile_dir, manifest_path) + + Write_NSC(decompile_dir, isAPKEditor, args.CA_Certificate) + + # ---------------- Recompile APK ---------------- + Recompile_Apk(decompile_dir, apk_path, build_dir, isEmulator, isAPKEditor, Package_Name) + + # ---------------- Fix CRC / Sign APK ---------------- + if not isCoreX and isPairip and isPairip_lib or args.unsigned_apk: + + if not isAPKEditor: + FixSigBlock(decompile_dir, apk_path, build_dir, rebuild_dir); + + CRC_Fix(apk_path, build_dir, ["AndroidManifest.xml", ".dex"]) + + else: + Sign_APK(build_dir) + + if M.os.path.exists(build_dir): + print(f'{C.S} Final APK {C.E} {C.G}︻デ═一 {C.Y}{build_dir} {C.G} ✔') + + print(f"\n{C.CC}{'_' * 61}\n") + + if not isCoreX and isPairip and isPairip_lib: + print(f'\n{C.FYI}{C.C} This is Pairip Apk So U Install {C.G}( Keep Apk Without Sign ) {C.C}in VM / Multi_App\n') + + print(f'\n{C.S} Time Spent {C.E} {C.G}︻デ═一 {C.PN}{M.time.time() - start_time:.2f} {C.CC}Seconds {C.G} ✔\n') + + print(f'\n🚩 {C.CC}࿗ {C.OG}Jai Shree Ram {C.CC}࿗ 🚩\n 🛕🛕🙏🙏🙏🛕🛕\n') + + if M.os.name == 'posix': + M.subprocess.run(['termux-wake-unlock']) + exit(f"\n{C.X}{C.C} Releasing Wake Lock...\n") + exit(0) \ No newline at end of file diff --git a/ApkPatcher/CLI.py b/ApkPatcher/CLI.py new file mode 100644 index 0000000..714330c --- /dev/null +++ b/ApkPatcher/CLI.py @@ -0,0 +1,348 @@ +from .ANSI_COLORS import ANSI; C = ANSI() +from .MODULES import IMPORT; M = IMPORT() + +from ApkPatcher.Utils.Files_Check import __version__ + + +Tag = f"\n{C.CC}————|———————|————{C.G}•❀ {C.OG}Tag {C.G}❀•{C.CC}————|———————|————\n" + +FE = f"{C.P}\n |\n ╰{C.CC}┈{C.OG}➢ {C.G}ApkPatcher" + +EX = f"{FE} -i Your_Apk_Path.apk {C.OG}" + + +class CustomArgumentParser(M.argparse.ArgumentParser): + # ---------------- Error Handling ---------------- + def error(self, message): + suggestion = "" + for action in self._actions: + if action.option_strings and any(option in message for option in action.option_strings): + if action.dest == 'input': + suggestion = ( + f'\n{C.FYI}{C.G} Make Sure There Is "No Extra Space" In The Folder / APK Name In The Input Text. If Yes, Then Remove Extra Space & Correct It By Renaming It.\n\n' + f'\n{C.INFO} With Your Certificate Flag: {C.OG}-c {C.P}( Input Your pem/crt/cert Path ){EX}-c {C.Y}certificate.cert\n\n' + f'\n{C.INFO} If you are using an Emulator in PC Then Use Flag: {C.OG}-e{EX}-c {C.Y}certificate.cert {C.OG}-e\n' + ) + + elif action.dest == 'Merge': + suggestion = ( + f'\n{C.INFO} Only Merge APK\n\n' + f'\n{C.INFO} Merge Extension {C.Y}( .apks/.xapk/.apkm )' + f'\n{FE}{C.OG} -m {C.G}Your_Apk_Path.apks\n' + ) + + break + + exit( + f'\n{C.ERROR} {message}\n' + f'\n{suggestion}' + ) + + # ---------------- Print Help ---------------- + def print_help(self): + + super().print_help() + + print(f"\n{C.INFO} ApkPatcher Default Patch is VPN & SSL Bypass, Show Other Patch Flags List with: {C.G}ApkPatcher -O{C.C}\n") + + # ---------------- Other Patch ---------------- + def Other_Patch(self): + print( + f"""\n{C.X}{C.C} Other Patch Flags Help ( Keep Sequence in Mind ) + + {C.G}─•❀•❀ {C.C}Info Patch {C.G}❀•❀•─ {C.OG} + + -A, {C.C}--AES_Logs {C.Y} ➸ {C.G}AES Logs Inject {C.OG} + -A2, {C.C}--Algorithm {C.Y} ➸ {C.G}Algorithm Logs Inject {C.OG} + -D, {C.C}--Android_ID {C.Y} ➸ {C.G}Hook Android ID for One Device Login Bypass {C.OG} + -f, {C.C}--Flutter {C.Y} ➸ {C.G}Flutter SSL Bypass {C.OG} + -l, {C.C}--Load_Modules {C.Y} ➸ {C.G}Path of Xposed & LSP Module {C.P}( Currently Not Supported XSharedPreferences Module ) {C.OG} + -p, {C.C}--Pairip {C.Y} ➸ {C.G}Pairip CERT SSL Bypass {C.OG} + -P, {C.C}--Purchase {C.Y} ➸ {C.G}Purchase / Paid / Price {C.OG} + -r, {C.C}--Random_Info {C.Y} ➸ {C.G}Fake Device Info {C.OG} + -rmads, {C.C}--Remove_Ads {C.Y} ➸ {C.G}Bypass Ads {C.OG} + -rmss, {C.C}--Remove_SS {C.Y} ➸ {C.G}Bypass Screenshot Restriction {C.OG} + -rmusb, {C.C}--Remove_USB {C.Y} ➸ {C.G}Bypass USB Debugging {C.OG} + -pkg, {C.C}--Spoof_PKG {C.Y} ➸ {C.G}Spoof Package Detection {C.OG} + -pine, {C.C}--Pine_Hook {C.Y} ➸ {C.G}Pine Hook {C.OG} + -skip {C.C}[Skip_Patch ...]{C.Y} ➸ {C.G}Skip Specific Patches {C.P}( e.g. getAcceptedIssuers ) {C.OG} + -s, {C.C}--AES_S {C.Y} ➸ {C.G}Do U Want Separate AES.smali Dex {C.OG} + -t, {C.C}--TG_Patch {C.Y} ➸ {C.G}Telegram / Plus Patcher {C.OG} + -x, {C.C}--Hook_CoreX {C.Y} ➸ {C.G}Hook CoreX Flag: {C.OG}-p -x {C.P}( Only For [ arm64 ] )""" + ) + + user_input = input(f"\n\n{C.B}[ {C.P}* {C.B}] {C.C} Do See Example\n{C.G} |\n └──── {C.CC}~ y / Exit to Enter {C.G}$ : {C.Y}") + + if user_input.lower() == "y": + print( + f"""\n{Tag.replace("Tag", "AES Logs Inject")} + +{C.INFO} AES MT Logs Inject Flag: {C.OG}-A{EX}-A + + +{C.INFO} Do U Want Separate AES.smali Dex Use Flag: {C.OG}-A -s{EX}-A -s + + +{C.INFO} Algorithm Logs Inject Flag: {C.OG}-A2{EX}-A2 + +{Tag.replace("Tag", "Hook Android ID")} + +{C.INFO} Hook Android ID For One Device Login Bypass Use Flag: {C.OG}-D {C.P}( Input Your Original 16 Digit Android ID ){EX}-D {C.Y}7e9f51f096bd5c83 + +{Tag.replace("Tag", "isFlutter / isPairip")} + +{C.INFO} If APK is Flutter Then Use Additional Flag: {C.OG}-f{EX}-f + + +{C.INFO} If APK is Pairip Then Use Additional Flag: {C.OG}-p {C.P}( Without Sign APK Use Only in VM / Multi_App ){EX}-p + + +{C.INFO} If APK is Pairip Then Hook CoreX Use Additional Flag: {C.OG}-p -x {C.P}( Install Directly Only For [ arm64 ] ){EX}-p -x + +{Tag.replace("Tag", "Spoof PKG / Device Info")} + +{C.INFO} Spoof Package Detection Flag: {C.OG}-pkg {C.P}( Dex / Manifest / Res ){EX}-pkg + +{C.INFO} Fake Device Info Flag: {C.OG}-r{EX}-r + + +{C.INFO} With Your Android ID Flag: {C.OG}-r -D {C.P}( Input Your Custom 16 Digit Android ID ){EX}-r -D {C.Y}7e9f51f096bd5c83 + +{Tag.replace("Tag", "Pine Hook")} + +{C.INFO} Pine Hook Flag: {C.OG}-pine -l {C.P}( Input Path of Xposed & LSP Module ){EX}-pine -l {C.Y}NoVPNDetect.apk just.trust.me.apk + +{Tag.replace("Tag", "Bypass Ads / SS / USB")} + +{C.INFO} Bypass Ads Flag: {C.OG}-rmads{EX}-rmads + + +{C.INFO} Bypass Screenshot Restriction Flag: {C.OG}-rmss{EX}-rmss + + +{C.INFO} Bypass USB Debugging Flag: {C.OG}-rmusb{EX}-rmusb + +{Tag.replace("Tag", "isPurchase / Skip Patch")} + +{C.INFO} Purchase / Paid / Price Flag: {C.OG}-P{EX}-P + + +{C.INFO} Skip Patch Flag: {C.OG}-skip{EX}-skip {C.Y}getAcceptedIssuers + +{Tag.replace("Tag", "Telegram / Plus Patch")} + +{C.INFO} Telegram / Plus Patch Flag: {C.OG}-t{EX}-t\n""" + ) + + else: + return + + +# ---------------- Parse Arguments ---------------- +def parse_arguments(): + + args = M.sys.argv[1:] + + if '-O' in args: + exit(CustomArgumentParser().Other_Patch()) + + if any(arg.startswith('-') for arg in args): + parser = CustomArgumentParser(description=f'{C.C}ApkPatcher v{__version__}') + else: + parser = M.argparse.ArgumentParser() + + group = parser.add_mutually_exclusive_group(required=True) + + group.add_argument( + '-i', + dest='input', + help=f'{C.Y}➸{C.G} Input APK Path...{C.C}' + ) + + group.add_argument( + '-m', + dest='Merge', + help=f'{C.Y}➸{C.G} Anti-Split ( Only Merge APK ){C.C}' + ) + + group.add_argument( + '-C', + dest='Credits', + action='store_true', + help=f'{C.Y}➸{C.G} Show Credits{C.C}' + ) + + additional = parser.add_argument_group(f'{C.OG}[ * ] Additional Flags{C.C}') + + additional.add_argument( + '-a', + '--APKEditor', + action='store_true', + help=f'{C.Y}➸ {C.G}APKEditor ( Default APKTool ){C.C}' + ) + + additional.add_argument( + '-e', + '--For_Emulator', + action='store_true', + help=f'{C.Y}➸{C.G} If using emulator on PC then use -e flag{C.C}' + ) + + additional.add_argument( + '-c', + dest='CA_Certificate', + type=str, + nargs='*', + help=f"{C.Y}➸{C.G} Input Your HttpCanary / Reqable / ProxyPin etc. Capture APK's CA-Certificate{C.C}" + ) + + additional.add_argument( + '-u', + dest='unsigned_apk', + action='store_true', + help=f"{C.Y}➸{C.G} Keep Unsigned APK{C.C}" + ) + + + # ---------------- Other Patch Flags ---------------- + parser.add_argument( + '-A', + '--AES_Logs', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-A2', + '--Algorithm', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-D', + '--Android_ID', + type=str, + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-f', + '--Flutter', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-l', + '--Load_Modules', + type=str, + nargs='*', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-p', + '--Pairip', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-P', + '--Purchase', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-r', + '--Random_Info', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-rmads', + '--Remove_Ads', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-rmss', + '--Remove_SS', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-rmusb', + '--Remove_USB', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-pkg', + '--Spoof_PKG', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-pine', + '--Pine_Hook', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-skip', + dest='Skip_Patch', + nargs='*', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-s', + '--AES_S', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-t', + '--TG_Patch', + action='store_true', + help=M.argparse.SUPPRESS + ) + + parser.add_argument( + '-x', + '--Hook_CoreX', + action='store_true', + help=M.argparse.SUPPRESS + ) + + + Ext = ('.apk', '.apks', '.apkm', '.xapk') + + fixed = []; start = None; Valid_Ext = False + + for index, option in enumerate(args): + if option in ['-i', '-m', '-C']: + start, fixed = index + 1, fixed + [option] + elif start and (option.endswith(Ext) or M.os.path.isdir(option)): + fixed, start = fixed + [' '.join(args[start:index+1])], None + Valid_Ext = True + elif not start: + fixed.append(option) + + + if not Valid_Ext and M.sys.argv[1:2] != ['-C']: + print(f"\n{C.X}{C.C} Only Supported Extensions {C.G}{Ext}\n") + + print(f"\n{C.S} Input Path {C.E} {C.OG}➸❥{C.Y}", *fixed, f"{C.CC}\n") + + return parser.parse_args(fixed) \ No newline at end of file diff --git a/ApkPatcher/MODULES.py b/ApkPatcher/MODULES.py new file mode 100644 index 0000000..1060ab5 --- /dev/null +++ b/ApkPatcher/MODULES.py @@ -0,0 +1,34 @@ +# ————— 𝐈𝐌𝐏𝐎𝐑𝐓 𝐌𝐎𝐃𝐔𝐋𝐄𝐒 ————— + +class IMPORT: + def __init__(self): + + # ---------------- 𝐌𝐮𝐥𝐭𝐢𝐏𝐫𝐨𝐜𝐞𝐬𝐬 / 𝐌𝐮𝐥𝐭𝐢𝐏𝐫𝐨𝐜𝐞𝐬𝐬𝐢𝐧𝐠 ---------------- + try: + mp = __import__('multiprocess') + except ImportError: + mp = __import__('multiprocessing') + + # ————— 𝐋𝐢𝐛𝐫𝐚𝐫𝐢𝐞𝐬 𝐈𝐦𝐩𝐨𝐫𝐭 ————— + self.re = __import__('re') + self.os = __import__('os') + self.sys = __import__('sys') + self.zlib = __import__('zlib') + self.json = __import__('json') + self.time = __import__('time') + self.shutil = __import__('shutil') + self.string = __import__('string') + self.zipfile = __import__('zipfile') + self.hashlib = __import__('hashlib') + self.base64 = __import__('base64') + self.binascii = __import__('binascii') + self.random = __import__('random') + self.argparse = __import__('argparse') + self.subprocess = __import__('subprocess') + + # ————— 𝐄𝐱𝐭𝐫𝐚 𝐋𝐢𝐛𝐫𝐚𝐫𝐢𝐞𝐬 ————— + self.Pool = mp.Pool + self.Manager = mp.Manager + self.cpu_count = mp.cpu_count + self.datetime = __import__('datetime').datetime + \ No newline at end of file diff --git a/ApkPatcher/Patch/AES.py b/ApkPatcher/Patch/AES.py new file mode 100644 index 0000000..8f21ecd --- /dev/null +++ b/ApkPatcher/Patch/AES.py @@ -0,0 +1,422 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from collections import defaultdict +from ApkPatcher.Utils.Files_Check import FileCheck + +F = FileCheck(); F.Set_Path() +C_Line = f"{C.CC}{'_' * 61}" + + +# ---------------- Regex Scan ---------------- +def Regex_ScanX(smali_folders): + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + file_path = M.os.path.join(root, file) + yield file_path, open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + +# ---------------- AES Logs Inject ---------------- +def AES_Logs_Inject(decompile_dir, smali_folders): + + Algorithm_Regex = M.re.compile(r'"AES/[^/]+/[^"]+"') + Method_Regex = M.re.compile(r'\.method.*?\s(\S+\(.*?\).*)') + Class_Regex = M.re.compile(r'\.class[^;]* (L[^;]+;)') + + target_smali = defaultdict(list) + + matched_smali = [] + + # -------- Scan Methods -------- + for file_path, content in Regex_ScanX(smali_folders): + if "Ljavax/crypto/Cipher;->doFinal([B)[B" in content and ( + "Ljavax/crypto/spec/SecretKeySpec;" in content or + "Ljavax/crypto/spec/IvParameterSpec;" in content + ): + + Class_Name = Class_Regex.search(content)[1] + + for block in content.split('.method')[1:]: + + if Algorithm_Regex.search(block): + method_sig = Method_Regex.search(".method" + block.split('\n', 1)[0]) + + if method_sig: + + match = f"{Class_Name}->{method_sig[1]}" + + target_smali[match].append(file_path) + + print( + f"\r{C.S} Total Method Signature {C.E} {C.OG}➸❥ {C.PN}{len(target_smali)}", + end='', flush=True + ) + + if not target_smali: + M.shutil.rmtree(decompile_dir) + + exit( + f"{C.ERROR} No Matching Patterns found ! ✘\n" + f"\n{C.INFO} Sorry Bro Your Bad Luck !, Not Working MT Logs Method in This Apk, Try Another Method.\n" + ) + + print(f" {C.G} ✔\n\n", flush=True) + + + # -------- Find Target Smali -------- + for file_path, content in Regex_ScanX(smali_folders): + + if any(match in content for match in target_smali): + matched_smali.append(file_path) + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{len(matched_smali)}", end='', flush=True) + + print(f" {C.G} ✔", flush=True) + + print(f'\n{C_Line}\n') + + + # -------- Cipher Algorithm Hook -------- + Chiper_Algorithm_Regex = r"invoke-static (\{[pv]\d+\}), Ljavax/crypto/Cipher;->getInstance\(Ljava/lang/String;\)Ljavax/crypto/Cipher;[^>]*?move-result-object ([pv]\d+)" + + targetSmali = defaultdict(list) + + for match, file_paths in target_smali.items(): + + for file_path in file_paths: + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + matches = list(M.re.finditer(Chiper_Algorithm_Regex, content)) + + if matches: + targetSmali[Chiper_Algorithm_Regex].append(M.os.path.basename(file_path)) + + # -------- Injection -------- + for m in matches: + + invoke_param = m[1] + return_param = m[2] + + injected_lines = [ + f"invoke-static {invoke_param}, LRK_TECHNO_INDIA/AES;->getInstance(Ljava/lang/Object;)V", + f"invoke-static {invoke_param}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;", + f"move-result-object {return_param}", + f"invoke-static {{{return_param}}}, LRK_TECHNO_INDIA/AES;->getInstance(Ljava/lang/Object;)V", + ] + + match_text = m[0] + replacement_text = "\n ".join(injected_lines) + + content = content.replace(match_text, replacement_text) + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(content) + + for pattern, file_paths in targetSmali.items(): + + print(f"\n{C.S} Cipher {C.E} {C.C}Method Signature {C.OG}➸❥ {C.P}{pattern}\n") + + for file_name in file_paths: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{file_name} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{len(file_paths)} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + print(f'{C_Line}\n') + + + # -------- Generic AES Method Hook -------- + for match in target_smali: + + regex = M.re.escape(match) + + AES_Regex = rf"invoke-static \{{(.*?)\}}, {regex}[^>]*?move-result-object ([pv]\d+)" + + file_matches = {} + + for file_path in matched_smali: + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + matches = list(M.re.finditer(AES_Regex, content)) + + if matches: + file_matches[file_path] = (content, matches) + + if file_matches: + + print(f"\n{C.S} Method Signature {C.E} {C.OG}➸❥ {C.P}{match}\n") + + for file_path in file_matches: + file_name = M.os.path.basename(file_path) + + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{file_name} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{len(file_matches)} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + # -------- Injection -------- + for file_path, (content, matches) in file_matches.items(): + + for m in matches: + + invoke_params = m[1] + return_param = m[2] + + invoke_param = invoke_params.split(", ") if invoke_params else [] + parameters = len(invoke_param) + + injected_lines = [] + + # -------- Inject parameters -------- + for idx, param in enumerate(invoke_param, start=1): + + if idx == 1 and parameters == 1: + method_name = "a" + else: + method_name = f"b{idx}" + + injected_lines += [ + f"invoke-static {{{param}}}, LRK_TECHNO_INDIA/AES;->{method_name}(Ljava/lang/Object;)V" + ] + + if parameters > 1: + injected_lines += [ + "invoke-static {}, LRK_TECHNO_INDIA/AES;->b()V" + ] + + injected_lines += [ + f"invoke-static {{{invoke_params}}}, {match}", + f"move-result-object {return_param}", + f"invoke-static {{{return_param}}}, LRK_TECHNO_INDIA/AES;->a(Ljava/lang/Object;)V" + ] + + match_text = m[0] + replacement_text = "\n ".join(injected_lines) + + content = content.replace(match_text, replacement_text) + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(content) + + +# ---------------- Copy AES Smali ---------------- +def Copy_AES_Smali(decompile_dir, smali_folders, manifest_path, isAES_MS, isAlgorithm, isAPKEditor): + + if isAlgorithm: + Patch_Algorithm(smali_folders) + else: + AES_Logs_Inject(decompile_dir, smali_folders) + + if isAPKEditor: + decompile_dir = M.os.path.join( + decompile_dir, + "root" if isAlgorithm else "smali" + ) + + prefix = "classes" if isAPKEditor else "smali_classes" + + name = M.os.path.basename(smali_folders[-1])[len(prefix):] + + idx = int(name) + 1 if name.isdigit() else 2 + + if isAES_MS: + + lastSmaliFolder = M.os.path.join( + decompile_dir, + f"{prefix}{idx}" + ) + + M.os.makedirs(lastSmaliFolder, exist_ok=True) + else: + lastSmaliFolder = smali_folders[-1] + + + # ---------------- Copy Dex & Smali ---------------- + if isAlgorithm: + dex_name = f"classes{idx}.dex" + + dest_path = M.os.path.join(decompile_dir, dex_name) + + M.shutil.copy(F.Algorithm_Dex, dest_path) + + print(f"\n{C.S} Generate {C.E} {C.G}{dex_name} {C.OG}➸❥ {C.Y}{M.os.path.relpath(dest_path, decompile_dir)} {C.G} ✔") + + else: + Target_Dest = M.os.path.join(lastSmaliFolder, "RK_TECHNO_INDIA", "AES.smali") + + M.os.makedirs(M.os.path.dirname(Target_Dest), exist_ok=True) + + M.shutil.copy(F.AES_Smali, Target_Dest) + + print(f"\n{C.S} Generate {C.E} {C.G}AES.smali {C.OG}➸❥ {C.Y}{M.os.path.relpath(Target_Dest, decompile_dir)} {C.G} ✔") + + + if not isAlgorithm: + # ---------------- Update Package Name ---------------- + PKG_Name = M.re.search( + r'package="([^"]+)"', + open(manifest_path, 'r', encoding='utf-8', errors='ignore').read() + )[1] + + content = open(Target_Dest, 'r', encoding='utf-8', errors='ignore').read() + + Update_PKG = content.replace('PACKAGENAME', PKG_Name) + + open(Target_Dest, 'w', encoding='utf-8', errors='ignore').write(Update_PKG) + + print(f"{C.G} |\n └── {C.CC}Update Package Name ~{C.G}$ {C.OG}➸❥ {C.P}'{C.G}{PKG_Name}{C.P}' {C.G} ✔\n") + + +# ---------------- Regex Scan ---------------- +def Regex_Scan(Smali_Path, Target_Regex, Count, Lock): + + Smali = open(Smali_Path, 'r', encoding='utf-8', errors='ignore').read() + + Regexs = [M.re.compile(r) for r in Target_Regex] + + for Regex in Regexs: + if Regex.search(Smali): + + if Lock: + try: + with Lock: + Count.value += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count.value}", end='', flush=True) + + except Exception: + return None + + else: + Count[0] += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count[0]}", end='', flush=True) + + return Smali_Path + + +# ---------------- Patch Algorithm ---------------- +def Patch_Algorithm(smali_folders): + + Smali_Paths, Match_Smali = [], [] + + patterns = [ + # ---------------- URL + Headers ---------------- + ( + r'invoke-virtual \{([pv]\d+)\}, Ljava/net/URL;->openConnection\(\)Ljava/net/URLConnection;', + r'invoke-static {\1}, Lcom/algorithm/hook/URL;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;', + f"URLConnection" + ), + ( + r'invoke-virtual \{([pv]\d+)\}, Ljava/net/HttpURLConnection;->connect\(\)V', + r'invoke-static {\1}, Lcom/algorithm/hook/URL;->connect(Ljava/net/HttpURLConnection;)V', + f"HttpURLConnection" + ), + ( + r'invoke-virtual \{([pv]\d+)\}, Lokhttp3/Request;->url\(\)Lokhttp3/HttpUrl;', + r'invoke-static {\1}, Lcom/algorithm/hook/URL;->url(Lokhttp3/Request;)Lokhttp3/HttpUrl;', + f"okhttp3.Request" + ), + ( + r'invoke-virtual \{([pv]\d+), ([pv]\d+)\}, Lokhttp3/OkHttpClient;->newCall\(Lokhttp3/Request;\)Lokhttp3/Call;', + r'invoke-static {\1, \2}, Lcom/algorithm/hook/URL;->newCall(Lokhttp3/OkHttpClient;Lokhttp3/Request;)Lokhttp3/Call;', + f"okhttp3.OkHttpClient" + ), + + + # ---------------- Algorithm ---------------- + ( + r'(invoke-direct \{([pv]\d+), ([pv]\d+), ([pv]\d+)\}, Ljavax/crypto/spec/SecretKeySpec;->\(\[BLjava/lang/String;\)V)', + r'\1\n' + r' invoke-static {\3, \4}, Lcom/algorithm/hook/AESHOOK;->SecretKeySpec([BLjava/lang/String;)V', + f"SecretKeySpec" + ), + ( + r'(invoke-direct \{([pv]\d+), ([pv]\d+)\}, Ljavax/crypto/spec/IvParameterSpec;->\(\[B\)V)', + r'\1\n' + r' invoke-static {\3}, Lcom/algorithm/hook/AESHOOK;->IvParameterSpec([B)V', + f"IvParameterSpec" + ), + ( + r'invoke-static \{([pv]\d+)\}, Ljavax/crypto/Cipher;->getInstance\(Ljava/lang/String;\)Ljavax/crypto/Cipher;', + r'invoke-static {\1}, Lcom/algorithm/hook/AESHOOK;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;', + f"Chiper Algorithm" + ), + ( + r'invoke-virtual \{([pv]\d+), ([pv]\d+), ([pv]\d+), ([pv]\d+)\}, Ljavax/crypto/Cipher;->init\(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;\)V', + r'invoke-static {\1, \2, \3, \4}, Lcom/algorithm/hook/AESHOOK;->init(Ljavax/crypto/Cipher;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V', + f"Chiper Mode, Key & IV" + ), + ( + r'invoke-virtual \{([pv]\d+), ([pv]\d+)\}, Ljavax/crypto/Cipher;->doFinal\(\[B\)\[B', + r'invoke-static {\1, \2}, Lcom/algorithm/hook/AESHOOK;->doFinal(Ljavax/crypto/Cipher;[B)[B', + f"doFinal" + ) + ] + + Target_Regex = [p[0] for p in patterns] + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + if file.endswith('.smali'): + Smali_Paths.append(M.os.path.join(root, file)) + + try: + # ---------------- Multi Threading ---------------- + with M.Manager() as MT: + Count = MT.Value('i', 0); Lock = MT.Lock() + with M.Pool(M.cpu_count()) as PL: + Match_Smali = [path for path in PL.starmap(Regex_Scan, [(Smali_Path, Target_Regex, Count, Lock) for Smali_Path in Smali_Paths]) if path] + + except Exception: + # ---------------- Single Threading ---------------- + Count = [0] + for Smali_Path in Smali_Paths: + result = Regex_Scan(Smali_Path, Target_Regex, Count, None) + + if result: + Match_Smali.append(result) + + print(f" {C.G} ✔", flush=True) + + print(f'\n{C_Line}\n') + + if Match_Smali: + for pattern, replacement, description in patterns: + + Count_Applied = 0 + + Applied_Files = set() + + for file_path in Match_Smali: + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + if file_path not in Applied_Files: + Applied_Files.add(file_path) + + Count_Applied += 1 + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + if Count_Applied > 0: + print(f"\n{C.S} Tag {C.E} {C.G}{description}") + + print(f"\n{C.S} Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}") + + for file_path in Applied_Files: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{M.os.path.basename(file_path)} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{Count_Applied} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) \ No newline at end of file diff --git a/ApkPatcher/Patch/Ads_Patch.py b/ApkPatcher/Patch/Ads_Patch.py new file mode 100644 index 0000000..4df0138 --- /dev/null +++ b/ApkPatcher/Patch/Ads_Patch.py @@ -0,0 +1,181 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +C_Line = f"{C.CC}{'_' * 61}" + + +# ---------------- Regex Scan ---------------- +def Regex_Scan(Smali_Path, Target_Regex, Count, Lock): + + Smali = open(Smali_Path, 'r', encoding='utf-8', errors='ignore').read() + + Regexs = [M.re.compile(r) for r in Target_Regex] + + for Regex in Regexs: + + if Regex.search(Smali): + + if Lock: + try: + with Lock: + Count.value += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count.value}", end='', flush=True) + + except Exception: + return None + + else: + Count[0] += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count[0]}", end='', flush=True) + + return Smali_Path + + +# ---------------- Ads Smali Patch ---------------- +def Ads_Smali_Patch(smali_folders): + + Smali_Paths, Match_Smali = [], [] + + patterns = [ + ( + r'"(com.google.android.play.core.appupdate.protocol.IAppUpdateService|Theme.Dialog.Alert|com.google.android.play.core.install.BIND_UPDATE_SERVICE)"', + r'""', + "Update Disable" + ), + ( + r'(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->(.*(load|show).*)\([^)]*\)V)|(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|onAd|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\([^)]*\)V)|(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->((.*(Banner|initAd|Interstitial|load|Native|onAd|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\([^)]*\)V)|invoke-.*\{.*\}, L[^;]+;->(loadAd|requestNativeAd|showInterstitial|fetchad|fetchads|onadloaded|requestInterstitialAd|showAd|loadAds|AdRequest|requestBannerAd|loadNextAd|createInterstitialAd|setNativeAd|loadBannerAd|loadNativeAd|loadRewardedAd|loadRewardedInterstitialAd|loadAds|loadAdViewAd|showInterstitialAd|shownativead|showbannerad|showvideoad|onAdFailedToLoad)\([^)]*\)V|invoke-[^{]+ \{[^\}]*\}, Lcom[^;]+;->requestInterstitialAd\([^)]*\)V|invoke-[^{]+ \{[^\}]*\}, Lcom[^;]+;->loadAds\([^)]*\)V|invoke-[^{]+ \{[^\}]*\}, Lcom[^;]+;->loadAd\([^)]*\)V|invoke-[^{]+ \{[^\}]*\}, Lcom[^;]+;->requestBannerAd\([^)]*\)V|invoke-[^{]+ \{[pv]\d\}, Lcom/facebook[^;]+;->show\([^)]*\)V|invoke-[^{]+ \{[pv]\d\}, Lcom/google[^;]+;->show\([^)]*\)V', + r'nop', + "Ads Regex 1" + ), + ( + r'(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|(can|get|is|has|was)Ad|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\([^)]*\)Z[^>]*?)move-result ([pv]\d+)|(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->((.*(Banner|initAd|Interstitial|load|Native|(can|get|has|is|was)Ad|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\([^)]*\)Z[^>]*?)move-result ([pv]\d+)', + r'const/4 \9, 0x0', + "Ads Regex 2" + ), + ( + r'(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/[^;]+;->(.*(load|show).*)\([^)]*\)Z[^>]*?)move-result ([pv]\d+)', + r'const/4 \6, 0x0', + "Ads Regex 3" + ), + ( + r'(\.method\s(public|private|static)\s\b(?!\babstract|native\b)[^(]*?loadAd\([^)]*\)V)', + r'\1\n\treturn-void', + "Ads Regex 4" + ), + ( + r'(\.method\s(public|private|static)\s\b(?!\babstract|native\b)[^(]*?loadAd\([^)]*\)Z)', + r'\1\n\tconst/4 v0, 0x0\n\treturn v0', + "Ads Regex 5" + ), + ( + r'(invoke[^{]+ \{[^\}]*\}, L[^(]*loadAd\([^)]*\)[VZ])|(invoke[^{]+ \{[^\}]*\}, L[^(]*gms.*\>(loadUrl|loadDataWithBaseURL|requestInterstitialAd|showInterstitial|showVideo|showAd|loadData|onAdClicked|onAdLoaded|isLoading|loadAds|AdLoader|AdRequest|AdListener|AdView)\([^)]*\)V)', + r'#', + "Ads Regex 6" + ), + ( + r'\.method [^(]*(loadAd|requestNativeAd|showInterstitial|fetchad|fetchads|onadloaded|requestInterstitialAd|showAd|loadAds|AdRequest|requestBannerAd|loadNextAd|createInterstitialAd|setNativeAd|loadBannerAd|loadNativeAd|loadRewardedAd|loadRewardedInterstitialAd|loadAds|loadAdViewAd|showInterstitialAd|shownativead|showbannerad|showvideoad|onAdFailedToLoad)\([^)]*\)V\s+\.locals \d+[\s\S]*?\.end method', + r'#', + "Ads Regex 7" + ), + ( + r'"ca-app-pub-\d{16}/\d{10}"', + r'"ca-app-pub-0000000000000000/0000000000"', + "Ads Regex 8" + ), + ( + r'"(http.*|//.*)(61.145.124.238|-ads.|.ad.|.ads.|.analytics.localytics.com|.mobfox.com|.mp.mydas.mobi|.plus1.wapstart.ru|.scorecardresearch.com|.startappservice.com|/ad.|/ads|ad-mail|ad.*_logging|ad.api.kaffnet.com|adc3-launch|adcolony|adinformation|adkmob|admax|admob|admost|adsafeprotected|adservice|adtag|advert|adwhirl|adz.wattpad.com|alta.eqmob.com|amazon-*ads|amazon.*ads|amobee|analytics|applovin|applvn|appnext|appodeal|appsdt|appsflyer|burstly|cauly|cloudfront|com.google.android.gms.ads.identifier.service.START|crashlytics|crispwireless|doubleclick|dsp.batmobil.net|duapps|dummy|flurry|gad|getads|google.com/dfp|googleAds|googleads|googleapis.*.ad-*|googlesyndication|googletagmanager|greystripe|gstatic|inmobi|inneractive|jumptag|live.chartboost.com|madnet|millennialmedia|moatads|mopub|native_ads|pagead|pubnative|smaato|supersonicads|tapas|tapjoy|unityads|vungle|zucks).*"', + r'"="', + "Ads Regex 9" + ), + ( + r'"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"', + r'"127.0.0.1"', + "Ads Regex 10" + ), + + # ---------------- Fix Play ---------------- + ( + r'(invoke-interface \{[^\}]*\}, Lcom/google/android/vending/licensing/Policy;->allowAccess\(\)Z[^>]*?\s+)move-result ([pv]\d+)', + r'\1const/4 \2, 0x1', + "Bypass Client-Side LVL (allowAccess)" + ), + ( + r'(\.method [^(]*connectToLicensingService\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "connectToLicensingService" + ), + ( + r'(\.method [^(]*initializeLicenseCheck\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "initializeLicenseCheck" + ), + ( + r'(\.method [^(]*processResponse\(ILandroid/os/Bundle;\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "processResponse" + ) + ] + + Target_Regex = [p[0] for p in patterns] + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + if file.endswith('.smali'): + Smali_Paths.append(M.os.path.join(root, file)) + + try: + # ---------------- Multiple Threading ---------------- + with M.Manager() as MT: + Count = MT.Value('i', 0); Lock = MT.Lock() + with M.Pool(M.cpu_count()) as PL: + Match_Smali = [path for path in PL.starmap(Regex_Scan, [(Smali_Path, Target_Regex, Count, Lock) for Smali_Path in Smali_Paths]) if path] + + except Exception: + # ---------------- Single Threading ---------------- + Count = [0] + for Smali_Path in Smali_Paths: + result = Regex_Scan(Smali_Path, Target_Regex, Count, None) + + if result: + Match_Smali.append(result) + + print(f" {C.G} ✔", flush=True) + + print(f'\n{C_Line}\n') + + if Match_Smali: + for pattern, replacement, description in patterns: + + Count_Applied = 0 + + Applied_Files = set() + + for file_path in Match_Smali: + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + if file_path not in Applied_Files: + Applied_Files.add(file_path) + + Count_Applied += 1 + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + if Count_Applied > 0: + print(f"\n{C.S} Tag {C.E} {C.G}{description}") + + print(f"\n{C.S} Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}") + + for file_path in Applied_Files: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{M.os.path.basename(file_path)} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{Count_Applied} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) \ No newline at end of file diff --git a/ApkPatcher/Patch/CERT_NSC.py b/ApkPatcher/Patch/CERT_NSC.py new file mode 100644 index 0000000..dd603a1 --- /dev/null +++ b/ApkPatcher/Patch/CERT_NSC.py @@ -0,0 +1,187 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + + +# ---------------- Write RAW CERT ---------------- +def Write_CERT(decompile_dir, isAPKEditor, CA_Cert): + + if isAPKEditor: + decompile_dir = M.os.path.join(decompile_dir, 'resources', 'package_1') + + Default_CERT = """\ +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgIHALdlRG+pDzANBgkqhkiG9w0BAQ0FADBHMRswGQYDVQQD +DBJIdHRwQ2FuYXJ5IFJvb3QgQ0ExEzARBgNVBAoMCkh0dHBDYW5hcnkxEzARBgNV +BAsMCkh0dHBDYW5hcnkwHhcNMjIwMzA2MTIxMTAxWhcNMzMwMzAzMTIxMTAxWjBH +MRswGQYDVQQDDBJIdHRwQ2FuYXJ5IFJvb3QgQ0ExEzARBgNVBAoMCkh0dHBDYW5h +cnkxEzARBgNVBAsMCkh0dHBDYW5hcnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCrzm03w7mMvHujpl0IMb/jgxEwJdUsfpazdgUVdsq+7T/Ks8O3NMFP +d4hl6sUgRbaMx3Uz8WolEtz/wu/fdGnrUVDcdWXiJKfhLUUP3KuYwE9tahrfRf14 +Yg/xGoA8Pz1BEaUnsJSt6RB5qm5fwn2O8QRykAbgr11or2rr8KQWMaoeciN04tjd +kkcWmPWNSytwea7l1LOrolUXGcbFlpXpGY1cTCoB1RZJe7HkUd1zdYhKUlhHZo3P +in9FhGa/UJGlyWXmT3ybY0nuPtIvqJ3Ao4FwP1zkrrqvS0UCi3QvJZrZ8EEju0U9 +NM009njCT6sX56TUG189Dk1uettEiTtlAgMBAAGjZDBiMB0GA1UdDgQWBBT0yJzC +NcHzwIVXMTnvgPp74q1KWjAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBtjAj +BgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwDQYJKoZIhvcNAQEN +BQADggEBAA9H0nWzKUKKfgu6RI657wVgSONymRRnpzQ+GNjbDoi6CR3QWL8SvPe8 +s61nM8xUP0aMFv0VYrd80sICTQXAEld+/eXoDib7qxg1I2I9v+FkLwPSN2FaJRkv +GKxfki4s6kpNNvmO5X+1eR1fK7Y/lrlp9V7zP8oMbcBuNkiWO6UYNGGGuqxFr3H4 +f4LRvODZks/aGea2E0pdiAnAZCIGZS3Mg5cS7wA5vUSkKwpBIcYFVdYTF/xblJfX +OBoyS7CMCG66aSfs3zk4lT8fVwtFJjvkM01gH3A4q6T78rZ/Nkx01GC90Y1+xDAW +0o1SBaeL3tulFzqhMkl5KW0F3vYpP8k= +-----END CERTIFICATE-----""" + + raw_dir = M.os.path.join(decompile_dir, 'res', 'raw') + + M.os.makedirs(raw_dir, exist_ok=True) + + addCERT = [] + + if CA_Cert: + for idx, cert_path in enumerate(CA_Cert, start=1): + raw_file = f'Techno_India_{idx}.pem' if idx > 1 else 'Techno_India.pem' + M.shutil.copy(cert_path, M.os.path.join(raw_dir, raw_file)) + + addCERT.append(raw_file) + + print( + f"\n{C.S} Certificate {C.E}{C.C} Your Certificate Path...\n" + f"{C.G} |\n |\n └──── {C.CC}Input ~{C.G}#{C.Y} {', '.join(CA_Cert)} {C.G} ✔\n" + ) + + print(f"\n{C.S} Write Certificate {C.E} {C.OG}➸❥ {C.Y}raw/{', '.join(addCERT)} {C.G} ✔\n") + + else: + raw_path = M.os.path.join(raw_dir, 'Techno_India.pem') + + open(raw_path, 'w', encoding='utf-8', errors='ignore').write(Default_CERT) + + print(f"\n{C.S} Certificate {C.E}{C.G} The default certificate is from TechnoIndia's Modded HttpCanary... ✔\n") + + print(f"\n{C.S} Write Default Certificate {C.E} {C.OG}➸❥ {C.Y}{M.os.path.basename(raw_dir)}/Techno_India.pem {C.G} ✔\n") + + +# ---------------- Write NSC XML ---------------- +def Write_NSC(decompile_dir, isAPKEditor, CA_Cert, xml_file='network_security_config.xml'): + + Write_CERT(decompile_dir, isAPKEditor, CA_Cert) + + if isAPKEditor: + decompile_dir = M.os.path.join(decompile_dir, 'resources', 'package_1') + + NSC = """\ + + + + + * + 0.0.0.0 + 127.0.0.1 + + {cert_PlaceHolder} + + + + + + + {cert_PlaceHolder} + + + + + + + {cert_PlaceHolder} + + + + +""" + + cert_Entries = "" + + if CA_Cert: + for idx, _ in enumerate(CA_Cert, start=1): + CERT_Name = f'Techno_India_{idx}' if idx > 1 else 'Techno_India' + cert_Entries += f' \n' + + else: + cert_Entries += ' \n' + + NSC_XML = NSC.format(cert_PlaceHolder = cert_Entries.strip()) + + xml_dir = M.os.path.join(decompile_dir, 'res', 'xml') + + M.os.makedirs(xml_dir, exist_ok=True) + + xml_path = M.os.path.join(xml_dir, xml_file) + + open(xml_path, 'w', encoding='utf-8', errors='ignore').write(NSC_XML) + + print(f"\n{C.S} Write Network Config {C.E} {C.OG}➸❥ {C.Y}{M.os.path.basename(xml_dir)}/{xml_file} {C.G} ✔\n") + + if isAPKEditor: + update_public_xml(decompile_dir, CA_Cert) + + +# ---------------- For isAPKEditor ---------------- +def update_public_xml(decompile_dir, CA_Cert): + + public_xml_path = M.os.path.join(decompile_dir, 'res', 'values', 'public.xml') + + public_xml = open(public_xml_path, 'r', encoding='utf-8', errors='ignore').readlines() + + raw_ids = [] + xml_ids = [] + + raw_xml_regex = M.re.compile(r'') + + raw_found = False + xml_found = False + + for line in public_xml: + for match in raw_xml_regex.findall(line): + res_id = int(match[0], 16) + res_type = match[1] + res_name = match[2] + + if res_type == "raw" and res_name == "Techno_India": + raw_found = True + elif res_type == "xml" and res_name == "network_security_config": + xml_found = True + + if res_type == "raw": + raw_ids.append(res_id) + elif res_type == "xml": + xml_ids.append(res_id) + + if raw_found and xml_found: + return + + new_raw_id = max(raw_ids) + 1 if raw_ids else 0x7fffff01 + new_xml_id = max(xml_ids) + 1 if xml_ids else 0x7ffffff1 + + new_entries = [] + + if not raw_found: + if CA_Cert: + for idx, _ in enumerate(CA_Cert, start=1): + CERT_Name = f'Techno_India_{idx}' if idx > 1 else 'Techno_India' + new_entries.append(f' \n') + new_raw_id += 1 + + else: + new_entries.append(f' \n') + + if not xml_found: + new_entries.append(f' \n') + + for idx in range(len(public_xml)): + if "" in public_xml[idx]: + public_xml[idx:idx] = new_entries + break + + open(public_xml_path, 'w', encoding='utf-8', errors='ignore').writelines(public_xml) + + print(f"\n{C.S} Write New Entries {C.E} {C.OG}➸❥ {C.G}public.xml\n\n{C.OG}{''.join(new_entries).strip()}\n") \ No newline at end of file diff --git a/ApkPatcher/Patch/Flutter_SSL_Patch.py b/ApkPatcher/Patch/Flutter_SSL_Patch.py new file mode 100644 index 0000000..0f277b0 --- /dev/null +++ b/ApkPatcher/Patch/Flutter_SSL_Patch.py @@ -0,0 +1,146 @@ +# -* coding: utf-8 *- +# @auhtor: AbhiTheModder + +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + + +patterns = { + "arm64": [ + "F. 0F 1C F8 F. 5. 01 A9 F. 5. 02 A9 F. .. 03 A9 .. .. .. .. 68 1A 40 F9", + "F. 43 01 D1 FE 67 01 A9 F8 5F 02 A9 F6 57 03 A9 F4 4F 04 A9 13 00 40 F9 F4 03 00 AA 68 1A 40 F9", + "FF 43 01 D1 FE 67 01 A9 .. .. 06 94 .. 7. 06 94 68 1A 40 F9 15 15 41 F9 B5 00 00 B4 B6 4A 40 F9", + "F. 0F 1C F8 F. .. 0. .. .. .. .. .9 .. .. 0. .. 68 1A 40 F9 15 .. 4. F9 B5 00 00 B4 B6 46 40 F9", + ], + "arm": [ + "2D E9 F. 4. D0 F8 00 80 81 46 D8 F8 18 00 D0 F8", + ], + "x86": [ + "55 41 57 41 56 41 55 41 54 53 50 49 89 fe 48 8b 1f 48 8b 43 30 4c 8b b8 d0 01 00 00 4d 85 ff 74 12 4d 8b a7 90 00 00 00 4d 85 e4 74 4a 49 8b 04 24 eb 46", + "55 41 57 41 56 41 55 41 54 53 50 49 89 f. 4c 8b 37 49 8b 46 30 4c 8b a. .. 0. 00 00 4d 85 e. 74 1. 4d 8b", + "55 41 57 41 56 41 55 41 54 53 48 83 EC 18 49 89 FF 48 8B 1F 48 8B 43 30 4C 8B A0 28 02 00 00 4D 85 E4 74", + "55 41 57 41 56 41 55 41 54 53 48 83 EC 38 C6 02 50 48 8B AF A. 00 00 00 48 85 ED 74 7. 48 83 7D 00 00 74", + "55 41 57 41 56 41 55 41 54 53 48 83 EC 18 49 89 FE 4C 8B 27 49 8B 44 24 30 48 8B 98 D0 01 00 00 48 85 DB", + ], +} + + +# ---------------- Get r2 Version ---------------- +def get_r2_version(): + + try: + result = M.subprocess.run(["r2", "-V"], capture_output=True, text=True, check=True) + results = result.stdout.strip().split() + + for result in results: + if result.startswith(("5.", "6.")): + result = result.split("-")[0] + return result + + return None + + except (M.subprocess.CalledProcessError, FileNotFoundError): + return None + + +# ---------------- Find Offset ---------------- +def find_offset(r2, patterns, is_iA=False): + + if is_iA: + arch = M.json.loads(r2.cmd("iAj")) + else: + arch = M.json.loads(r2.cmd("iaj")) + + arch_value = arch["bins"][0]["arch"] + arch_bits = arch["bins"][0]["bits"] + + if arch_value == "arm" and arch_bits == 64: + arch = "arm64" + elif arch_value == "arm" and arch_bits == 16: + arch = "arm" + elif arch_value == "x86" and arch_bits == 64: + arch = "x86" + else: + print(f"\n{C.ERROR} Unsupported architecture: {arch_value}\n") + return + + if arch in patterns: + for arch in patterns: + for pattern in patterns[arch]: + search_result = r2.cmd(f"/x {pattern}") + search_result = search_result.strip().split(" ")[0] + + if search_result: + search_fcn = r2.cmd(f"{search_result};afl.").strip().split(" ")[0] + print(f"\n{C.X}{C.C} ssl_verify_peer_cert found at: {C.PN}{search_result}\n") + + if not search_fcn and arch == "x86": + search_fcn = search_result + r2.cmd(f"af @{search_fcn}") + + print(f"\n{C.X}{C.C} function at: {C.PN}{search_fcn}\n") + return search_fcn + + +# ---------------- Patch Flutter SSL ---------------- +def Patch_Flutter_SSL(decompile_dir, isAPKEditor): + + print(f"\r{C.X}{C.C} Flutter SSL Patch, Script by {C.OG}🇮🇳 AbhiTheM0dder 🇮🇳\n") + + try: + r2_version = tuple(map(int, get_r2_version().split("."))) + ia_version = tuple(map(int, "5.9.5".split("."))) + + if r2_version <= ia_version: + is_iA = True + else: + is_iA = False + + except Exception as e: + exit(f"\n{C.ERROR} {str(e)}\n") + + architectures = ["arm64-v8a", "armeabi-v7a", "armeabi", "x86_64"] + lib_so_path = None + + for arch in architectures: + lib = "root/lib" if isAPKEditor else "lib" + potential_path = M.os.path.join(decompile_dir, lib, arch, 'libflutter.so') + + if M.os.path.exists(potential_path): + lib_so_path = potential_path + break + + if lib_so_path: + print(f"\n{C.S} Found {C.E} {C.OG}➸❥ {C.Y}{arch}/{M.os.path.basename(lib_so_path)} {C.G} ✔\n") + else: + exit(f"\n{C.ERROR} libflutter.so not found in any of the specified architectures {architectures}\n") + + M.shutil.rmtree(decompile_dir) + + import r2pipe + + if r2pipe.in_r2(): + r2 = r2pipe.open() + r2.cmd("e log.quiet=true") + r2.cmd("oo+") + else: + r2 = r2pipe.open(lib_so_path, flags=["-w", "-e", "log.quiet=true"]) + + print(f"\n{C.X}{C.G} Analyzing function calls...\n") + + r2.cmd("aac") + + print(f"\n{C.X}{C.G} Searching for offset...\n") + + offset = find_offset(r2, patterns, is_iA) + + if offset: + r2.cmd(f"{offset}") + r2.cmd("wao ret0") + print(f"\n{C.X}{C.C} ssl_verify_peer_cert: {C.G}Patched Successfully ! ✔\n") + else: + print(f"\n{C.ERROR} ssl_verify_peer_cert Not Found. ✘\n") + + print(f"{C.CC}{'_' * 61}\n\n") + + r2.quit() \ No newline at end of file diff --git a/ApkPatcher/Patch/Manifest_Patch.py b/ApkPatcher/Patch/Manifest_Patch.py new file mode 100644 index 0000000..ac69313 --- /dev/null +++ b/ApkPatcher/Patch/Manifest_Patch.py @@ -0,0 +1,172 @@ +from.Package import P + +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + + +# ---------------- Fix Manifest ---------------- +def Fix_Manifest(manifest_path, isPKG, isPine_Hook, Package_Name): + + if isPine_Hook: + Pine_Hook(manifest_path, Package_Name) + + isPC = bool(M.re.search('piracychecker', open(manifest_path).read(), M.re.I)) + + patterns = [ + ( + r'\s+android:(splitTypes|requiredSplitTypes)="[^"]*?"', + r'', + 'Splits' + ), + ( + r'(isSplitRequired=)"true"', + r'\1"false"', + 'isSplitRequired' + ), + ( + r'\s+]*"com.android.(vending.|stamp.|dynamic.apk.)[^"]*"[^>]*/>', + r'', + '' + ), + ( + r'\s+<[^>]*"(com.pairip.licensecheck)[^"]*"[^>]*/>' if isPC else r'\s+<[^>]*"com.(pairip.licensecheck|android.vending.CHECK_LICENSE)[^"]*"[^>]*/>', + r'', + 'CHECK_LICENSE' + ) + ] + + if isPKG: + patterns.extend( + [ + ( + rf'{P.Menifest_Regex}', + r'', + 'Spoof Package Detection' + ) + ] + ) + + for pattern, replacement, description in patterns: + content = open(manifest_path, 'r', encoding='utf-8', errors='ignore').read() + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + print( + f"\n{C.S} Tag {C.E} {C.OG}{description}\n" + f"\n{C.S} Applying Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}\n" + f"{C.G} |\n └──── {C.CC}Patch Cleaned Up ~{C.G}$ {C.P}'{C.G}{M.os.path.basename(manifest_path)}{C.P}' {C.G} ✔\n" + ) + + open(manifest_path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + +# ---------------- Patch Manifest ---------------- +def Patch_Manifest(decompile_dir, manifest_path): + + content = open(manifest_path, 'r', encoding='utf-8', errors='ignore').read() + + application_tag = M.re.search(r']*>', content)[0] + + cleaned_tag = M.re.sub( + r'\s+android:(usesCleartextTraffic|networkSecurityConfig)="[^"]*?"', + '', + application_tag + ) + + content = content.replace(application_tag, + M.re.sub( + r'>', + '\n\tandroid:usesCleartextTraffic="true"\n\tandroid:networkSecurityConfig="@xml/network_security_config">', + cleaned_tag + ) + ) + + open(manifest_path, 'w', encoding='utf-8', errors='ignore').write(content) + + print(f'\n{C.S} Updated {C.E}{C.C} android:networkSecurityConfig={C.P}"{C.G}@xml/network_security_config{C.P}" {C.OG}➸❥ {C.Y}{M.os.path.basename(manifest_path)} {C.G} ✔\n') + + print(f'\n{C.S} Updated {C.E}{C.C} android:usesCleartextTraffic={C.P}"{C.G}true{C.P}" {C.OG}➸❥ {C.Y}{M.os.path.basename(manifest_path)} {C.G} ✔\n') + + +# ---------------- Permission Manifest ---------------- +def Permission_Manifest(decompile_dir, manifest_path, isAPKEditor): + + A_Y_P = M.os.path.join(decompile_dir, 'apktool.yml') + + content = open(manifest_path, 'r', encoding='utf-8', errors='ignore').read() + + new_permissions = '''\t\n\t\n\t''' + + content = M.re.sub( + r'\s+]*android:name="(android.permission.((READ|WRITE|MANAGE)_EXTERNAL_STORAGE))"[^>]*>', + '', + content + ) + + content = M.re.sub( + r'android:targetSdkVersion="\d+"', + 'android:targetSdkVersion="28"', + content + ) + + content = M.re.sub( + r'(]*>)', + r'\1\n' + new_permissions, + content + ) + + application_tag = M.re.search(r']*>', content)[0] + + cleaned_tag = M.re.sub( + r'\s+android:(request|preserve)LegacyExternalStorage="[^"]*?"', + '', + application_tag + ) + + content = content.replace(application_tag, + M.re.sub( + r'>', + '\n\tandroid:requestLegacyExternalStorage="true"\n\tandroid:preserveLegacyExternalStorage="true">', + cleaned_tag + ) + ) + + open(manifest_path, 'w', encoding='utf-8', errors='ignore').write(content) + + print(f"\n{C.S} Storage Permission {C.E} {C.OG}➸❥ {C.P}'{C.G}AndroidManifest.xml{C.P}' {C.G} ✔\n") + + if not isAPKEditor: + yml = open(A_Y_P, 'r', encoding='utf-8', errors='ignore').read() + + update_yml = M.re.sub( + r'(targetSdkVersion:) (\d+)', + r'\1 28', + yml + ) + + open(A_Y_P, 'w', encoding='utf-8', errors='ignore').write(update_yml) + + print(f"\n{C.S} targetSdkVersion {C.E} {C.PN}28 {C.OG}➸❥{C.G} apktool.yml\n") + + +# ---------------- Pine Hook ---------------- +def Pine_Hook(manifest_path, Package_Name): + + content = open(manifest_path, 'r', encoding='utf-8', errors='ignore').read() + + provider = f''' + ''' + + content = M.re.sub( + r'(]*>)', + rf'\1{provider}', + content + ) + + open(manifest_path, 'w', encoding='utf-8', errors='ignore').write(content) + + print(f'\n{C.S} HooK Manifest {C.E}\n{C.PN} {provider} {C.G} ✔\n') \ No newline at end of file diff --git a/ApkPatcher/Patch/Package.py b/ApkPatcher/Patch/Package.py new file mode 100644 index 0000000..45f2f72 --- /dev/null +++ b/ApkPatcher/Patch/Package.py @@ -0,0 +1,26 @@ +from ..MODULES import IMPORT; M = IMPORT() + + +class P: + # ---------------- Spoof Package Detection ---------------- + Find_String = ['com.noshufou.android.su.elite', 'com.noshufou.android.su', 'eu.chainfire.supersu', 'com.koushikdutta.superuser', 'com.thirdparty.superuser', 'com.yellowes.su', 'com.topjohnwu.magisk', 'com.kingroot.kinguser', 'com.kingo.root', 'com.smedialink.oneclickroot', 'com.zhiqupk.root.global', 'com.alephzain.framaroot', 'com.koushikdutta.rommanager.license', 'com.koushikdutta.rommanager', 'com.dimonvideo.luckypatcher', 'com.chelpus.lackypatch', 'com.ramdroid.appquarantinepro', 'com.ramdroid.appquarantine', 'com.android.vending.billing.InAppBillingService.COIN', 'com.android.vending.billing.InAppBillingService.LUCK', 'com.chelpus.luckypatcher', 'com.blackmartalpha', 'org.blackmart.market', 'com.allinone.free', 'com.repodroid.app', 'org.creeplays.hack', 'com.baseappfull.fwd', 'com.zmapp', 'com.dv.marketmod.installer', 'org.mobilism.android', 'com.android.wp.net.log', 'com.android.camera.update', 'cc.madkite.freedom', 'com.solohsu.android.edxp.manager', 'org.meowcat.edxposed.manager', 'com.xmodgame', 'com.cih.game_cih', 'com.charles.lpoqasert', 'catch_.me_.if_.you_.can_', 'com.devadvance.rootcloakplus', 'com.devadvance.rootcloak', 'com.saurik.substrate', 'com.zachspong.temprootremovejb', 'com.amphoras.hidemyrootadfree', 'com.amphoras.hidemyroot', 'com.formyhm.hiderootPremium', 'com.formyhm.hideroot', 'me.weishu.exp', 'moe.shizuku.privileged.', 'com.guoshi.httpcanary.premium', 'com.guoshi.httpcanary', 'com.reqable.android', 'com.network.proxy', 'com.sniffer3', 'com.sniffer2', 'com.sniffer', 'com.datacapture.pro', 'com.black.canary', 'org.httpcanary.pro', 'app.greyshirts.sslcapture', 'com.evbadroid.proxymon', 'com.minhui.networkcapture.pro', 'com.minhui.networkcapture', 'com.minhui.wifianalyzer', 'com.packagesniffer.frtparlak', 'com.evbadroid.wicapdemo', 'jp.co.taosoftware.android.packetcapture', 'com.andriell.multicast_sniffer', 'com.emanuelef.remote_capture', 'de.stefanpledl.localcast', 'bin.mt.plus.canary', 'bin.mt.plus', 'ru.maximoff.apktool', 'idm.internet.download.manager.plus', 'idm.internet.download.manager', 'com.applisto.appcloner', 'org.lsposed.lspatch', 'me.jsonet.jshook', 'br.tiagohm.restler', 'com.replit.app', 'io.virtualapp', 'de.robv.android.xposed'] + + Match_Regex = f'"({"|".join(Find_String[:-1])}|{Find_String[-1]}.*)"' + + Menifest_Regex = rf'(\s+]*android:name={Match_Regex}[^>]*/>)' + + + # ---------------- Generate Hash ---------------- + def Hash(self, CA_Cert): + + from asn1crypto import x509 + + f = open(CA_Cert,'rb').read() + + if f.startswith(b'-----'): f = M.base64.b64decode(''.join(f.decode().splitlines()[1:-1])) + CERT = x509.Certificate.load(f)['tbs_certificate']['subject_public_key_info'].dump() + + sha1 = M.base64.b64encode(M.hashlib.sha1(CERT).digest()).decode() + sha256 = M.base64.b64encode(M.hashlib.sha256(CERT).digest()).decode() + + return sha1, sha256 \ No newline at end of file diff --git a/ApkPatcher/Patch/Pairip_CoreX.py b/ApkPatcher/Patch/Pairip_CoreX.py new file mode 100644 index 0000000..1cea4eb --- /dev/null +++ b/ApkPatcher/Patch/Pairip_CoreX.py @@ -0,0 +1,77 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from ApkPatcher.Utils.Files_Check import FileCheck + +F = FileCheck(); F.Set_Path() + + +# ---------------- Check CoreX ---------------- +def Check_CoreX(decompile_dir, isAPKEditor): + + Lib_CoreX = [] + + lib_paths = M.os.path.join(decompile_dir, + *( + ['root', 'lib', 'arm64-v8a'] if isAPKEditor else ['lib', 'arm64-v8a'] + ) + ) + + for target_file in ['lib_Pairip_CoreX.so', 'libFirebaseCppApp.so']: + + if M.os.path.isfile(M.os.path.join(lib_paths, target_file)): + + Lib_CoreX.append(f"{C.G}{target_file} ➸❥ {C.P}arm64-v8a") + + if Lib_CoreX: + print(f"{C.INFO}{C.C} Already Added {C.OG}➸❥ {f' {C.OG}& '.join(Lib_CoreX)} {C.G} ✔\n") + + return True + return False + + +# ---------------- HooK CoreX ---------------- +def Hook_Core(apk_path, decompile_dir, isAPKEditor, Package_Name): + + with M.zipfile.ZipFile(apk_path, 'r') as zf: + base_apk = "base.apk" if "base.apk" in zf.namelist() else f"{Package_Name}.apk" + + try: + if M.os.name == 'nt' and M.shutil.which("7z"): + M.subprocess.run(["7z", "e", apk_path, base_apk, "-y"], text=True, capture_output=True) + + with M.zipfile.ZipFile(apk_path) as zf: + zf.extract(base_apk) + + else: + if M.shutil.which("unzip"): + M.subprocess.run(["unzip", "-o", apk_path, base_apk], text=True, capture_output=True) + + with M.zipfile.ZipFile(apk_path) as zf: + zf.extract(base_apk) + + print(f'\n{C.S} Dump {C.E} {C.G}➸❥ {C.OG}{base_apk}\n') + + Dump_Apk = "libFirebaseCppApp.so" + + M.os.rename(base_apk, Dump_Apk) + + lib_paths = M.os.path.join(decompile_dir, + *( + ['root', 'lib', 'arm64-v8a'] if isAPKEditor else ['lib', 'arm64-v8a'] + ) + ) + + print(f"\n{C.S} Arch {C.E} {C.G}➸❥ arm64-v8a\n") + + M.shutil.move(Dump_Apk, lib_paths); M.shutil.copy(F.Pairip_CoreX, lib_paths); + + print( + f'\n{C.S} HooK {C.E} {C.G}➸❥ {C.OG}libFirebaseCppApp.so {C.G} ✔\n' + f'\n{C.S} HooK {C.E} {C.G}➸❥ {C.OG}lib_Pairip_CoreX.so {C.G} ✔\n' + ) + + return True + + except Exception as e: + print(f"\n{C.ERROR} {e} ✘") \ No newline at end of file diff --git a/ApkPatcher/Patch/Pine_Hook.py b/ApkPatcher/Patch/Pine_Hook.py new file mode 100644 index 0000000..b2b645d --- /dev/null +++ b/ApkPatcher/Patch/Pine_Hook.py @@ -0,0 +1,63 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from ApkPatcher.Utils.Files_Check import FileCheck + +F = FileCheck(); F.Set_Path() + + +# ---------------- Pine Hook Patch ---------------- +def Pine_Hook_Patch(decompile_dir, isAPKEditor, isModules, isDex): + + print(f"{C.X}{C.C} Pine HooK, {C.OG}🇮🇳 AbhiTheM0dder 🇮🇳 {C.PN}& {C.OG}残页 {C.P}(canyie)\n") + + Target_Path = M.os.path.join(decompile_dir, + *( + ['root', 'hook'] if isAPKEditor else ['unknown', 'hook'] + ) + ) + + Dex_Path = M.os.path.join(decompile_dir, + *( + ['dex'] if isAPKEditor else [] + ) + ) + + # ---------------- Hook dexloader ---------------- + Loader_Dex = M.os.path.join(Dex_Path, isDex) + + M.shutil.copy(F.loader, Loader_Dex) + + print(f'\n{C.S} Loader {C.E} {C.G}➸❥ {C.OG}{isDex} {C.G} ✔\n') + + + # ---------------- Hook library ---------------- + if not M.os.path.exists(Target_Path): + M.os.makedirs(Target_Path) + + print(f'\n{C.S} Target Path {C.E} {C.G}➸❥ hook\n') + + for Target_Files in [F.config, F.libpine32, F.libpine64]: + + M.shutil.copy(Target_Files, Target_Path) + + print(f'\n{C.S} HooK {C.E} {C.G}➸❥ {C.OG}{M.os.path.basename(Target_Files)} {C.G} ✔\n') + + + # ---------------- isModules ---------------- + if isModules: + + Modules_Path = M.os.path.join(Target_Path, 'modules') + + if not M.os.path.exists(Modules_Path): + M.os.makedirs(Modules_Path) + + print(f"\n{C.S} Modules Path {C.E} {C.G}➸❥ hook/modules\n") + + Module_List = isModules if isinstance(isModules, (list, tuple)) else [isModules] + + for Modules in Module_List: + if M.os.path.exists(Modules): + M.shutil.copy(Modules, Modules_Path) + + print(f'\n{C.S} Module {C.E} {C.G}➸❥ {C.OG}{M.os.path.basename(Modules)} {C.G} ✔\n') \ No newline at end of file diff --git a/ApkPatcher/Patch/Random_INFO.py b/ApkPatcher/Patch/Random_INFO.py new file mode 100644 index 0000000..3dad2dc --- /dev/null +++ b/ApkPatcher/Patch/Random_INFO.py @@ -0,0 +1,3616 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + + +# ---------------- Random Info ---------------- +class R_I: + + def __init__(self): + + self.device_info_list = [ + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "SM-G973F", + "PRODUCT": "beyond1lte", + "DEVICE": "beyond1", + "BOARD": "universal9820", + "HARDWARE": "exynos9820", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "G973FXXS9DUE3", + "SERIAL": "23HJ9G7TR8XQ", + "DISPLAY": "G973F_11.0.3.1234", + "HOST": "buildhost01", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "E973FGH345", + "FINGERPRINT": "Samsung/SM-G973F/beyond1lte:11/RP1A.200720.012/G973FXXS9DUE3:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Redmi", + "MODEL": "M2101K7AI", + "PRODUCT": "mojito_in", + "DEVICE": "mojito", + "BOARD": "sdm732", + "HARDWARE": "qcom", + "ID": "RKQ1.211103.002", + "Android_Version": "12", + "BOOTLOADER": "02022323_mjto1_in", + "SERIAL": "XMAI9901123", + "DISPLAY": "Redmi_12.5.6_Stable", + "HOST": "build_xiaomi_server", + "RADIO": "SDX55_5G", + "RADIO_VERSION": "QVCN012344", + "FINGERPRINT": "Redmi/M2101K7AI/mojito_in:12/RKQ1.211103.002/Stable1234:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 6", + "PRODUCT": "raven", + "DEVICE": "raven", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "4110R0R0.1201", + "SERIAL": "GGLX20233011", + "DISPLAY": "Pixel_6_13.0.1_Raven", + "HOST": "google_cloud_13", + "RADIO": "Tensor_LTE_5G", + "RADIO_VERSION": "RV600_12034_Stable", + "FINGERPRINT": "Google/Pixel6/raven:13/SP2A.220505.002/Raven1203:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "IN2023", + "PRODUCT": "OnePlus8Pro", + "DEVICE": "instantnoodle", + "BOARD": "kona", + "HARDWARE": "qcom", + "ID": "IN2023_14.5.0", + "Android_Version": "13", + "BOOTLOADER": "IN2023_1505_Stable", + "SERIAL": "OP8820237744", + "DISPLAY": "IN2023_14.5.0_Stable", + "HOST": "buildserver_oppo", + "RADIO": "Qualcomm_X55_5G", + "RADIO_VERSION": "X555G2345IN2023", + "FINGERPRINT": "OnePlus/IN2023/instantnoodle:13/IN2023_14.5.0/K.5a75b18-40234/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "V2025", + "PRODUCT": "vivo_y70", + "DEVICE": "Y70T2025", + "BOARD": "mt6765", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "V2025_3.5.1_LTS", + "SERIAL": "VVV102548774X", + "DISPLAY": "Vivo_Y70_11.0.6.8", + "HOST": "vivo_buildserver", + "RADIO": "MT6765_LTE", + "RADIO_VERSION": "MT6765_4556L", + "FINGERPRINT": "Vivo/V2025/vivo_y70:11/RP1A.200720.012/Build344:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "RMX3381", + "PRODUCT": "RealmeGTNeo2", + "DEVICE": "neo2", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "RMX3381_12.1.0.140", + "Android_Version": "12", + "BOOTLOADER": "RMX3381_1201_Stable", + "SERIAL": "RMTX778999345", + "DISPLAY": "RMX3381_12.1.140_EX", + "HOST": "build_realme_server", + "RADIO": "X50_ProModem", + "RADIO_VERSION": "RQ_12034_Stable", + "FINGERPRINT": "Realme/RMX3381/RealmeGTNeo2:12/RMX3381_12.1.0.140/K.5a75b18-4234/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Moto", + "MODEL": "XT2201-1", + "PRODUCT": "Edge30Pro", + "DEVICE": "ranger", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.004", + "Android_Version": "13", + "BOOTLOADER": "XT2201-4_T13_Official", + "SERIAL": "MOTX1234489933", + "DISPLAY": "XT2201_13.0.2", + "HOST": "motorola_build_center", + "RADIO": "Moto_LTE_5G", + "RADIO_VERSION": "Moto_3456XT20", + "FINGERPRINT": "Motorola/XT2201-1/Edge30Pro:13/TP1A.220905.004/K.5a75b18-45234/release-keys" + }, + { + "MANUFACTURER": "Sony", + "BRAND": "Xperia", + "MODEL": "XQ-BC62", + "PRODUCT": "Xperia1III", + "DEVICE": "XQBC", + "BOARD": "qcom", + "HARDWARE": "Snapdragon888", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "XQBCX_3.8.9_Official", + "SERIAL": "SN12345678123", + "DISPLAY": "Xperia1III_12.5.1", + "HOST": "sony_global_host", + "RADIO": "Snapdragon_LTE", + "RADIO_VERSION": "SND8884_30054", + "FINGERPRINT": "Sony/XQ-BC62/Xperia1III:12/SP1A.210812.016/K.5a95b18-45234/release-keys" + }, + { + "MANUFACTURER": "LG", + "BRAND": "LG", + "MODEL": "LM-G910", + "PRODUCT": "LGV60ThinQ5G", + "DEVICE": "LG-G910", + "BOARD": "QSC9871", + "HARDWARE": "qcom", + "ID": "QP1A.190711.020", + "Android_Version": "11", + "BOOTLOADER": "LM-G910_3.6.7", + "SERIAL": "LGVV123459993", + "DISPLAY": "LGV60_11.3.9_LTS", + "HOST": "lg_us_host", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "X60LG4459", + "FINGERPRINT": "LG/LM-G910/LG-V60:11/QP1A.190711.020/L.5a95b18-45234/release-keys" + }, + { + "MANUFACTURER": "ASUS", + "BRAND": "ASUS", + "MODEL": "ROG Phone 6", + "PRODUCT": "ROG6", + "DEVICE": "ASUS_I005D", + "BOARD": "sdm888+", + "HARDWARE": "qcom", + "ID": "SP2A.220405.003", + "Android_Version": "12", + "BOOTLOADER": "I005D_12.0.1_Stable", + "SERIAL": "AS1239994567", + "DISPLAY": "ROG6_12.1.0_Global", + "HOST": "asus_server_global", + "RADIO": "X65_LTE_5G", + "RADIO_VERSION": "QCM123456ASUS", + "FINGERPRINT": "ASUS/ROG6/ASUS_I005D:12/SP2A.220405.003/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Huawei", + "BRAND": "Huawei", + "MODEL": "P40 Pro", + "PRODUCT": "P40Pro", + "DEVICE": "HWANA", + "BOARD": "kirin990_5g", + "HARDWARE": "hisilicon", + "ID": "10.1.0.122", + "Android_Version": "10", + "BOOTLOADER": "HW_P40Pro_5.1.2", + "SERIAL": "HW12345678901", + "DISPLAY": "P40Pro_EMUI10.1", + "HOST": "huawei_global_build", + "RADIO": "Kirin_5GModem", + "RADIO_VERSION": "5G123HUAWEI", + "FINGERPRINT": "Huawei/P40Pro/HWANA:10/10.1.0.122/L.15c95b18-45234/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Realme", + "MODEL": "RMX3471", + "PRODUCT": "RealmeNarzo50", + "DEVICE": "RMX3471", + "BOARD": "mt6781", + "HARDWARE": "mediatek", + "ID": "RMX3471_11.0.6", + "Android_Version": "11", + "BOOTLOADER": "RMX3471_11.2.5", + "SERIAL": "RMZ1234567098", + "DISPLAY": "Narzo50_11.6_LTS", + "HOST": "oppo_build_server", + "RADIO": "MT5G_Modem", + "RADIO_VERSION": "MTK123REALME", + "FINGERPRINT": "Oppo/RMX3471/RealmeNarzo50:11/RMX3471_11.0.6/L.15c96b18-45234/release-keys" + }, + { + "MANUFACTURER": "Lenovo", + "BRAND": "Motorola", + "MODEL": "XT2125", + "PRODUCT": "MotoGPower2022", + "DEVICE": "CapriPlus", + "BOARD": "MT6739", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.010", + "Android_Version": "11", + "BOOTLOADER": "XT2125_11.5.1", + "SERIAL": "MOT12345678G9", + "DISPLAY": "MotoG_2022_LTS", + "HOST": "motorola_host_global", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTKCAPRI_MOTOROLA", + "FINGERPRINT": "Motorola/XT2125/MotoGPower2022:11/RP1A.200720.010/L.15c96b18-45234/release-keys" + }, + { + "MANUFACTURER": "Honor", + "BRAND": "Honor", + "MODEL": "HRY-LX2", + "PRODUCT": "Honor9XLite", + "DEVICE": "HRYLX", + "BOARD": "kirin710", + "HARDWARE": "hisilicon", + "ID": "9.1.0.330", + "Android_Version": "9", + "BOOTLOADER": "HRY-LX2_BKL", + "SERIAL": "HN9876543219", + "DISPLAY": "Honor9X_EMUI9.1", + "HOST": "honor_build_server", + "RADIO": "Kirin710_4GModem", + "RADIO_VERSION": "HISI123456HONOR", + "FINGERPRINT": "Honor/HRY-LX2/Honor9XLite:9/9.1.0.330/L.15c96b18-45134/release-keys" + }, + { + "MANUFACTURER": "ZTE", + "BRAND": "Nubia", + "MODEL": "NX669J", + "PRODUCT": "RedMagic6SPro", + "DEVICE": "NX669", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "NX669_12.0.3", + "SERIAL": "ZTE0001239999", + "DISPLAY": "RedMagic6_Pro_12", + "HOST": "zte_global_build", + "RADIO": "Snapdragon_LTE5G", + "RADIO_VERSION": "SDM123REDMAGIC", + "FINGERPRINT": "ZTE/NX669J/RedMagic6SPro:12/SP1A.210812.016/L.15c96b18-78134/release-keys" + }, + { + "MANUFACTURER": "HTC", + "BRAND": "HTC", + "MODEL": "2Q9S100", + "PRODUCT": "HTC_U20", + "DEVICE": "HTCU20", + "BOARD": "mt6853", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.011", + "Android_Version": "11", + "BOOTLOADER": "HTC_2Q9S_1102", + "SERIAL": "HTC5671234001", + "DISPLAY": "HTC_U20_5G", + "HOST": "htc_dev_server", + "RADIO": "MT6853_Modem", + "RADIO_VERSION": "MTKM123HTC5G", + "FINGERPRINT": "HTC/2Q9S100/HTCU20:11/RP1A.200720.011/L.15c96b19-78134/release-keys" + }, + { + "MANUFACTURER": "Nokia", + "BRAND": "Nokia", + "MODEL": "TA-1357", + "PRODUCT": "NokiaC30", + "DEVICE": "Magnetar", + "BOARD": "SC9863A", + "HARDWARE": "unisoc", + "ID": "RP1A.200720.010", + "Android_Version": "11", + "BOOTLOADER": "TA-1357_LTS", + "SERIAL": "NKC1357891230", + "DISPLAY": "NokiaC30_11.0.1", + "HOST": "nokia_build_server", + "RADIO": "UNISOC_LTE", + "RADIO_VERSION": "UNSC986NOKIA", + "FINGERPRINT": "Nokia/TA-1357/NokiaC30:11/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "TCL", + "BRAND": "Alcatel", + "MODEL": "9021G", + "PRODUCT": "Alcatel1SE", + "DEVICE": "1SE2020", + "BOARD": "mt6762", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.013", + "Android_Version": "10", + "BOOTLOADER": "9021G_10.1.0", + "SERIAL": "TCL1230009981", + "DISPLAY": "Alcatel_1SE_10", + "HOST": "alcatel_server_build", + "RADIO": "MTK_LTE4G", + "RADIO_VERSION": "MTKM1234ALCATEL", + "FINGERPRINT": "TCL/9021G/Alcatel1SE:10/RP1A.200720.013/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "V2151", + "PRODUCT": "Vivo_Y33s", + "DEVICE": "Vivo_Y33s", + "BOARD": "mt6769v", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Vivo_V2151_1205", + "SERIAL": "VV9987123004", + "DISPLAY": "Vivo_Y33s_12.5_LTS", + "HOST": "vivo_global_server", + "RADIO": "MTK5G_LTE", + "RADIO_VERSION": "MTKM1234VIVO", + "FINGERPRINT": "Vivo/V2151/Vivo_Y33s:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "MI 11X", + "PRODUCT": "aliothin", + "DEVICE": "alioth", + "BOARD": "SM8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.010", + "Android_Version": "11", + "BOOTLOADER": "alioth_11.0.3", + "SERIAL": "XIAO1234567890", + "DISPLAY": "MI11X_11.0.3", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55", + "FINGERPRINT": "Xiaomi/MI 11X/aliothin:11/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 9", + "PRODUCT": "V2163A", + "DEVICE": "V2163", + "BOARD": "SM8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "iQOO_9_12.0.6", + "SERIAL": "IQ1234567890", + "DISPLAY": "iQOO9_12.0.6", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "X65QCOM", + "FINGERPRINT": "iQOO/V2163A/iQOO 9:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy S22", + "PRODUCT": "s22_exynos", + "DEVICE": "s22", + "BOARD": "Exynos2200", + "HARDWARE": "exynos", + "ID": "SP1A.210812.016", + "IMEI": "351561161736307", + "Android_Version": "12", + "BOOTLOADER": "S22_12.0.4", + "SERIAL": "SAMSUNG12345", + "DISPLAY": "S22_12.0.4", + "HOST": "samsung_global_build", + "RADIO": "Exynos_5G", + "RADIO_VERSION": "Exynos_2200", + "FINGERPRINT": "Samsung/Galaxy S22/s22_exynos:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 7", + "PRODUCT": "panther", + "DEVICE": "panther", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "panther_13.0.1", + "SERIAL": "GOOGLE987654321", + "DISPLAY": "Pixel7_13.0.1", + "HOST": "google_build_server", + "RADIO": "Tensor_5G", + "RADIO_VERSION": "Tensor_5G_01", + "FINGERPRINT": "Google/Pixel7/panther:13/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 10 Pro", + "PRODUCT": "OnePlus10Pro", + "DEVICE": "instantly", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "OnePlus10Pro_12.1.0", + "SERIAL": "OP12345678910", + "DISPLAY": "OnePlus10Pro_12.1.0", + "HOST": "oneplus_build_server", + "RADIO": "X55_LTE_5G", + "RADIO_VERSION": "X55_QCOM_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus 10 Pro/instantly:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Edge 20 Pro", + "PRODUCT": "MotorolaEdge20Pro", + "DEVICE": "motorola_edge", + "BOARD": "SM8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Edge20Pro_11.0.5", + "SERIAL": "MOT1234567890", + "DISPLAY": "Edge20Pro_11.0.5", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X55_5G", + "RADIO_VERSION": "Moto_X55_Stable", + "FINGERPRINT": "Motorola/Edge 20 Pro/motorola_edge:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Phone 1", + "PRODUCT": "A065", + "DEVICE": "A065", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Nothing_12.0.4", + "SERIAL": "NO1234567890", + "DISPLAY": "Phone1_12.0.4", + "HOST": "nothing_global", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "5G_Snapdragon", + "FINGERPRINT": "Nothing/Phone 1/A065:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme GT", + "PRODUCT": "RMX2202", + "DEVICE": "GT", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "RMX2202_11.2.4", + "SERIAL": "RMX220212345", + "DISPLAY": "Realme_GT_11.2.4", + "HOST": "realme_build_server", + "RADIO": "X55_LTE_5G", + "RADIO_VERSION": "QCOM_X55", + "FINGERPRINT": "Realme/RMX2202/Realme GT:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "V21e", + "PRODUCT": "V21e", + "DEVICE": "Vivo_V21e", + "BOARD": "mt6769v", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.010", + "Android_Version": "11", + "BOOTLOADER": "V21e_11.2.0", + "SERIAL": "VV9876543210", + "DISPLAY": "Vivo_V21e_11.2.0", + "HOST": "vivo_build_server", + "RADIO": "MT6769_LTE", + "RADIO_VERSION": "MTK_LTE_VIVO", + "FINGERPRINT": "Vivo/V21e/Vivo_V21e:11/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "OPPO Reno 5", + "PRODUCT": "CPH2145", + "DEVICE": "Reno5", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP2A.220505.002", + "Android_Version": "12", + "BOOTLOADER": "CPH2145_12.0.5", + "SERIAL": "OPPO987654321", + "DISPLAY": "OPPO_Reno5_12.0.5", + "HOST": "oppo_build_server", + "RADIO": "X55_LTE_5G", + "RADIO_VERSION": "QCOM_X55_OPPO", + "FINGERPRINT": "Oppo/CPH2145/Reno5:12/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Redmi Note 10", + "PRODUCT": "mojito", + "DEVICE": "mojito", + "BOARD": "SM7150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "mojito_11.0.5", + "SERIAL": "XM1234567890", + "DISPLAY": "RedmiNote10_11.0.5", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55", + "FINGERPRINT": "Xiaomi/Redmi Note 10/mojito:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Z6", + "PRODUCT": "V2163A", + "DEVICE": "V2163", + "BOARD": "sm6150", + "HARDWARE": "qcom", + "ID": "RP1A.200720.011", + "Android_Version": "12", + "BOOTLOADER": "iQOO_Z6_12.0.4", + "SERIAL": "IQZ6123456789", + "DISPLAY": "iQOOZ6_12.0.4", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/V2163A/iQOO Z6:12/RP1A.200720.011/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy A52", + "PRODUCT": "a52", + "DEVICE": "a52", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "A52_11.0.4", + "SERIAL": "SAMSUNG1234A52", + "DISPLAY": "GalaxyA52_11.0.4", + "HOST": "samsung_build_server", + "RADIO": "Exynos_5G", + "RADIO_VERSION": "Exynos_Exynos5", + "FINGERPRINT": "Samsung/Galaxy A52/a52:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 6", + "PRODUCT": "oriole", + "DEVICE": "oriole", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "oriole_13.0.3", + "SERIAL": "GOOGLE654321098", + "DISPLAY": "Pixel6_13.0.3", + "HOST": "google_build_server", + "RADIO": "Tensor_5G", + "RADIO_VERSION": "Tensor_5G_02", + "FINGERPRINT": "Google/Pixel6/oriole:13/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus Nord CE 2", + "PRODUCT": "EBBA", + "DEVICE": "EBBA", + "BOARD": "sm6375", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "12", + "BOOTLOADER": "OnePlus_NordCE2_12.1.4", + "SERIAL": "OPCE1234567890", + "DISPLAY": "NordCE2_12.1.4", + "HOST": "oneplus_build_server", + "RADIO": "X60_LTE_5G", + "RADIO_VERSION": "OnePlus_X60", + "FINGERPRINT": "OnePlus/OnePlus Nord CE 2/EBBA:12/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G60", + "PRODUCT": "potter", + "DEVICE": "potter", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Moto_G60_11.0.7", + "SERIAL": "MOTG12345678", + "DISPLAY": "MotoG60_11.0.7", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Moto", + "FINGERPRINT": "Motorola/Moto G60/potter:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Phone 2", + "PRODUCT": "A076", + "DEVICE": "A076", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Nothing_12.1.0", + "SERIAL": "NO9876543210", + "DISPLAY": "Phone2_12.1.0", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "5G_Snapdragon2", + "FINGERPRINT": "Nothing/Phone 2/A076:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme Narzo 50 Pro", + "PRODUCT": "RMX3381", + "DEVICE": "RMX3381", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "RMX3381_11.2.4", + "SERIAL": "RMX3381123456", + "DISPLAY": "Narzo50Pro_11.2.4", + "HOST": "realme_build_server", + "RADIO": "MTK_LTE_5G", + "RADIO_VERSION": "MTK_LTE_Realme", + "FINGERPRINT": "Realme/RMX3381/Realme Narzo 50 Pro:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "V23 5G", + "PRODUCT": "V2130", + "DEVICE": "V2130", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Vivo_V2130_12.0.1", + "SERIAL": "VV1234567890", + "DISPLAY": "VivoV23_12.0.1", + "HOST": "vivo_build_server", + "RADIO": "MTK_5G_LTE", + "RADIO_VERSION": "MTK_VIVO_LTE", + "FINGERPRINT": "Vivo/V2130/Vivo V23 5G:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo F19 Pro+", + "PRODUCT": "CPH2109", + "DEVICE": "F19Pro+", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP2A.220505.002", + "Android_Version": "11", + "BOOTLOADER": "CPH2109_11.0.6", + "SERIAL": "OPF190123456", + "DISPLAY": "F19ProPlus_11.0.6", + "HOST": "oppo_build_server", + "RADIO": "X55_5G", + "RADIO_VERSION": "QCOM_X55_OPPO", + "FINGERPRINT": "Oppo/CPH2109/F19Pro+:11/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Mi 10i", + "PRODUCT": "gauguin_in", + "DEVICE": "gauguin", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "gauguin_in_11.0.9", + "SERIAL": "XM987654321", + "DISPLAY": "Mi10i_11.0.9", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "QCOM_X55_Xiaomi", + "FINGERPRINT": "Xiaomi/Mi 10i/gauguin_in:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 7 Legend", + "PRODUCT": "V2171A", + "DEVICE": "V2171", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "12", + "BOOTLOADER": "iQOO_7_12.1.0", + "SERIAL": "IQ0000123456", + "DISPLAY": "iQOO7_12.1.0", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/V2171A/iQOO 7 Legend:12/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy A12", + "PRODUCT": "a12", + "DEVICE": "a12", + "BOARD": "Exynos850", + "HARDWARE": "exynos", + "ID": "RP1A.200720.010", + "Android_Version": "11", + "BOOTLOADER": "A12_11.1.2", + "SERIAL": "SAMSUNG12345A12", + "DISPLAY": "GalaxyA12_11.1.2", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos_850", + "FINGERPRINT": "Samsung/Galaxy A12/a12:11/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 5", + "PRODUCT": "redfin", + "DEVICE": "redfin", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "redfin_13.0.2", + "SERIAL": "GOOGLE1122334455", + "DISPLAY": "Pixel5_13.0.2", + "HOST": "google_build_server", + "RADIO": "Tensor_5G", + "RADIO_VERSION": "Tensor_5G_03", + "FINGERPRINT": "Google/Pixel5/redfin:13/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 9", + "PRODUCT": "LE2111", + "DEVICE": "LE", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "OnePlus_9_12.1.3", + "SERIAL": "OP1234098765", + "DISPLAY": "OnePlus9_12.1.3", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus 9/LE:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto Edge 30", + "PRODUCT": "sirocco", + "DEVICE": "sirocco", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "RP1A.200720.010", + "Android_Version": "12", + "BOOTLOADER": "Edge30_12.1.5", + "SERIAL": "MOTEDGE1234", + "DISPLAY": "MotoEdge30_12.1.5", + "HOST": "motorola_build_server", + "RADIO": "X60_LTE_5G", + "RADIO_VERSION": "QCOM_X60_Motorola", + "FINGERPRINT": "Motorola/Moto Edge 30/sirocco:12/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Phone 1", + "PRODUCT": "A065", + "DEVICE": "A065", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Nothing_12.0.4", + "SERIAL": "NO1234567890", + "DISPLAY": "Phone1_12.0.4", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "Snapdragon_5G_04", + "FINGERPRINT": "Nothing/Phone 1/A065:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 8 Pro", + "PRODUCT": "RMX3081", + "DEVICE": "RMX3081", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.011", + "Android_Version": "11", + "BOOTLOADER": "RMX3081_11.1.2", + "SERIAL": "RMX308112345", + "DISPLAY": "Realme8Pro_11.1.2", + "HOST": "realme_build_server", + "RADIO": "X55_5G", + "RADIO_VERSION": "QCOM_X55_Realme", + "FINGERPRINT": "Realme/RMX3081/Realme 8 Pro:11/RP1A.200720.011/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "V21", + "PRODUCT": "V2030", + "DEVICE": "V2030", + "BOARD": "mt6853", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Vivo_V2030_11.2.3", + "SERIAL": "VV9876543210", + "DISPLAY": "VivoV21_11.2.3", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_VIVO", + "FINGERPRINT": "Vivo/V2030/Vivo V21:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 6", + "PRODUCT": "CPH2201", + "DEVICE": "Reno6", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP2A.220505.002", + "Android_Version": "11", + "BOOTLOADER": "CPH2201_11.0.7", + "SERIAL": "OPPO220112345", + "DISPLAY": "Reno6_11.0.7", + "HOST": "oppo_build_server", + "RADIO": "X60_LTE_5G", + "RADIO_VERSION": "QCOM_X60_5G_OPPO", + "FINGERPRINT": "Oppo/CPH2201/Reno6:11/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Zero 8", + "PRODUCT": "X683", + "DEVICE": "X683", + "BOARD": "mt6785", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "X683_10.0.3", + "SERIAL": "INFINIX123456", + "DISPLAY": "Zero8_10.0.3", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE_5G", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X683/Zero 8:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X3 Pro", + "PRODUCT": "Vayu", + "DEVICE": "Vayu", + "BOARD": "sm8150", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "POCO_X3Pro_11.0.10", + "SERIAL": "POCOX3123456789", + "DISPLAY": "POCOX3Pro_11.0.10", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_POCO", + "FINGERPRINT": "POCO/POCO X3 Pro/Vayu:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Honor", + "BRAND": "Honor", + "MODEL": "Honor 10X Lite", + "PRODUCT": "YAL-L21", + "DEVICE": "YAL", + "BOARD": "kirin710", + "HARDWARE": "huawei", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "YAL-L21_10.0.3", + "SERIAL": "HONOR12345678", + "DISPLAY": "Honor10XLite_10.0.3", + "HOST": "honor_build_server", + "RADIO": "Kirin_LTE", + "RADIO_VERSION": "Kirin710_Honor", + "FINGERPRINT": "Honor/YAL-L21/Honor 10X Lite:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Camon 16", + "PRODUCT": "CG7", + "DEVICE": "CG7", + "BOARD": "mt6768", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.011", + "Android_Version": "10", + "BOOTLOADER": "Tecno_Camon16_10.0.4", + "SERIAL": "TECNO123456", + "DISPLAY": "TecnoCamon16_10.0.4", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/CG7/Tecno Camon 16:10/RP1A.200720.011/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Mi 11X", + "PRODUCT": "Alioth", + "DEVICE": "alioth", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "alioth_11.0.9", + "SERIAL": "XM9876543210", + "DISPLAY": "Mi11X_11.0.9", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "QCOM_X55_Xiaomi", + "FINGERPRINT": "Xiaomi/Mi 11X/alioth:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Z7", + "PRODUCT": "V2235A", + "DEVICE": "V2235", + "BOARD": "sm6375", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "12", + "BOOTLOADER": "iQOO_Z7_12.0.1", + "SERIAL": "IQZ7123456789", + "DISPLAY": "iQOOZ7_12.0.1", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/V2235A/iQOO Z7:12/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy S21", + "PRODUCT": "S21", + "DEVICE": "S21", + "BOARD": "Exynos2100", + "HARDWARE": "exynos", + "ID": "RP1A.200720.010", + "IMEI": "350336267465478", + "Android_Version": "12", + "BOOTLOADER": "GalaxyS21_12.1.2", + "SERIAL": "SAMSUNG12345S21", + "DISPLAY": "GalaxyS21_12.1.2", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE_5G", + "RADIO_VERSION": "Exynos_2100", + "FINGERPRINT": "Samsung/Galaxy S21/S21:12/RP1A.200720.010/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 6a", + "PRODUCT": "Bluejay", + "DEVICE": "bluejay", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "bluejay_13.0.3", + "SERIAL": "GOOGLE23456789", + "DISPLAY": "Pixel6a_13.0.3", + "HOST": "google_build_server", + "RADIO": "Tensor_5G", + "RADIO_VERSION": "Tensor_5G_02", + "FINGERPRINT": "Google/Pixel6a/bluejay:13/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 10 Pro", + "PRODUCT": "LE2121", + "DEVICE": "LE2121", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "OnePlus_10Pro_12.1.0", + "SERIAL": "OP1012345678", + "DISPLAY": "OnePlus10Pro_12.1.0", + "HOST": "oneplus_build_server", + "RADIO": "X60_5G", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus 10 Pro/LE2121:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G Power (2022)", + "PRODUCT": "hale", + "DEVICE": "hale", + "BOARD": "sm7225", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Moto_GPower_11.0.8", + "SERIAL": "MOTGPower1234", + "DISPLAY": "MotoGPower2022_11.0.8", + "HOST": "motorola_build_server", + "RADIO": "X60_5G", + "RADIO_VERSION": "QCOM_X60_Motorola", + "FINGERPRINT": "Motorola/Moto G Power 2022/hale:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone 2", + "PRODUCT": "A076", + "DEVICE": "A076", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Nothing_12.1.0", + "SERIAL": "NO876543210", + "DISPLAY": "NothingPhone2_12.1.0", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_5G", + "RADIO_VERSION": "Snapdragon_5G_04", + "FINGERPRINT": "Nothing/Phone 2/A076:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme Narzo 30 Pro", + "PRODUCT": "RMX2161", + "DEVICE": "RMX2161", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "RMX2161_10.0.3", + "SERIAL": "RMX2161N123", + "DISPLAY": "Narzo30Pro_10.0.3", + "HOST": "realme_build_server", + "RADIO": "X55_LTE_5G", + "RADIO_VERSION": "QCOM_X55_Realme", + "FINGERPRINT": "Realme/RMX2161/Realme Narzo 30 Pro:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo Y20", + "PRODUCT": "V2026", + "DEVICE": "V2026", + "BOARD": "mt6765", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "Vivo_V2026_10.0.3", + "SERIAL": "VV123456789", + "DISPLAY": "VivoY20_10.0.3", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_VIVO", + "FINGERPRINT": "Vivo/V2026/Vivo Y20:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo A15", + "PRODUCT": "CPH2185", + "DEVICE": "A15", + "BOARD": "mt6765", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "CPH2185_10.0.3", + "SERIAL": "OPPOA15123456", + "DISPLAY": "OppoA15_10.0.3", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OPPO", + "FINGERPRINT": "Oppo/CPH2185/Oppo A15:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Note 10", + "PRODUCT": "X695", + "DEVICE": "X695", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "X695_11.0.1", + "SERIAL": "INFINIX12345678", + "DISPLAY": "InfinixNote10_11.0.1", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE_5G", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X695/Infinix Note 10:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO M3", + "PRODUCT": "Lemongrab", + "DEVICE": "Lemongrab", + "BOARD": "sm6115", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "POCO_M3_10.0.2", + "SERIAL": "POCO123456M3", + "DISPLAY": "POCO_M3_10.0.2", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_POCO", + "FINGERPRINT": "POCO/POCO M3/Lemongrab:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Honor", + "BRAND": "Honor", + "MODEL": "Honor 30 Pro", + "PRODUCT": "NOH-NX9", + "DEVICE": "NOH", + "BOARD": "kirin990", + "HARDWARE": "huawei", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "NOH-NX9_10.0.0", + "SERIAL": "HONOR23456789", + "DISPLAY": "Honor30Pro_10.0.0", + "HOST": "honor_build_server", + "RADIO": "Kirin_LTE", + "RADIO_VERSION": "Kirin990_Honor", + "FINGERPRINT": "Honor/NOH-NX9/Honor 30 Pro:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Spark 7", + "PRODUCT": "KE5", + "DEVICE": "KE5", + "BOARD": "mt6765", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.011", + "Android_Version": "11", + "BOOTLOADER": "Tecno_Spark7_11.0.0", + "SERIAL": "TECNO234567", + "DISPLAY": "TecnoSpark7_11.0.0", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE5/Tecno Spark 7:11/RP1A.200720.011/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Redmi Note 10", + "PRODUCT": "Mojito", + "DEVICE": "mojito", + "BOARD": "sm6150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "mojito_11.0.9", + "SERIAL": "XM987654321", + "DISPLAY": "RedmiNote10_11.0.9", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X12", + "RADIO_VERSION": "QCOM_X12_Xiaomi", + "FINGERPRINT": "Xiaomi/Redmi Note 10/Mojito:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 7", + "PRODUCT": "PD2056", + "DEVICE": "PD2056", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "iQOO_7_11.1.2", + "SERIAL": "IQ70123456", + "DISPLAY": "iQOO7_11.1.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/PD2056/iQOO 7:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy A32", + "PRODUCT": "A32", + "DEVICE": "A32", + "BOARD": "exynos850", + "HARDWARE": "exynos", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "GalaxyA32_11.0.3", + "SERIAL": "SAMSUNG1234567A32", + "DISPLAY": "GalaxyA32_11.0.3", + "HOST": "samsung_build_server", + "RADIO": "Exynos_5G", + "RADIO_VERSION": "Exynos_850", + "FINGERPRINT": "Samsung/Galaxy A32/A32:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 6", + "PRODUCT": "Oriole", + "DEVICE": "oriole", + "BOARD": "gs101", + "HARDWARE": "tensor", + "ID": "SP2A.220505.002", + "Android_Version": "13", + "BOOTLOADER": "oriole_13.0.2", + "SERIAL": "GOOGLE98765432", + "DISPLAY": "Pixel6_13.0.2", + "HOST": "google_build_server", + "RADIO": "Tensor_5G", + "RADIO_VERSION": "Tensor_5G_03", + "FINGERPRINT": "Google/Pixel6/oriole:13/SP2A.220505.002/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 9 Pro", + "PRODUCT": "LE2123", + "DEVICE": "LE2123", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "OnePlus_9Pro_12.1.0", + "SERIAL": "OP991234567", + "DISPLAY": "OnePlus9Pro_12.1.0", + "HOST": "oneplus_build_server", + "RADIO": "X60_5G", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus 9 Pro/LE2123:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto Edge 20", + "PRODUCT": "Edge 20", + "DEVICE": "Edge20", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Moto_Edge_20_11.0.2", + "SERIAL": "MOTEdge2021234", + "DISPLAY": "MotoEdge20_11.0.2", + "HOST": "motorola_build_server", + "RADIO": "X60_5G", + "RADIO_VERSION": "QCOM_X60_Motorola", + "FINGERPRINT": "Motorola/Moto Edge 20/Edge20:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone 1", + "PRODUCT": "A063", + "DEVICE": "A063", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Nothing_12.0.5", + "SERIAL": "NO123456789", + "DISPLAY": "NothingPhone1_12.0.5", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Nothing", + "FINGERPRINT": "Nothing/Phone1/A063:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme GT 5G", + "PRODUCT": "RMX2202", + "DEVICE": "RMX2202", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "RMX2202_11.0.4", + "SERIAL": "RMX2202GT1234", + "DISPLAY": "RealmeGT5G_11.0.4", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Realme", + "FINGERPRINT": "Realme/RMX2202/Realme GT 5G:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V21", + "PRODUCT": "V2101", + "DEVICE": "V2101", + "BOARD": "mt6853", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Vivo_V2101_11.0.1", + "SERIAL": "VV987654321", + "DISPLAY": "VivoV21_11.0.1", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_VIVO", + "FINGERPRINT": "Vivo/V2101/Vivo V21:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo F19 Pro+", + "PRODUCT": "CPH2219", + "DEVICE": "F19ProPlus", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Oppo_F19ProPlus_11.0.1", + "SERIAL": "OPPOF1923456", + "DISPLAY": "OppoF19ProPlus_11.0.1", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OPPO", + "FINGERPRINT": "Oppo/CPH2219/Oppo F19 Pro+:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 5G", + "PRODUCT": "X6815", + "DEVICE": "X6815", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "X6815_11.0.2", + "SERIAL": "INFINIX87654321", + "DISPLAY": "Zero5G_11.0.2", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE_5G", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6815/Infinix Zero 5G:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X4 Pro", + "PRODUCT": "2201116PG", + "DEVICE": "2201116PG", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "POCO_X4_11.0.1", + "SERIAL": "POCOX4Pro1234", + "DISPLAY": "POCOX4Pro_11.0.1", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_POCO", + "FINGERPRINT": "POCO/POCO X4 Pro/2201116PG:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 8", + "PRODUCT": "X688C", + "DEVICE": "X688C", + "BOARD": "mt6785", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "X688C_10.0.0", + "SERIAL": "INFINIX123456", + "DISPLAY": "Zero8_10.0.0", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X688C/Infinix Zero 8:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO F2 Pro", + "PRODUCT": "Everest", + "DEVICE": "Everest", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "POCO_F2Pro_11.0.1", + "SERIAL": "POCOF212345", + "DISPLAY": "POCOF2Pro_11.0.1", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_POCO", + "FINGERPRINT": "POCO/POCO F2 Pro/Everest:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Honor", + "BRAND": "Honor", + "MODEL": "Honor 9X", + "PRODUCT": "HRY-AL00", + "DEVICE": "HRY", + "BOARD": "kirin710", + "HARDWARE": "huawei", + "ID": "SP1A.210812.016", + "Android_Version": "9", + "BOOTLOADER": "HRY-AL00_9.1.0", + "SERIAL": "HONOR987654", + "DISPLAY": "Honor9X_9.1.0", + "HOST": "honor_build_server", + "RADIO": "Kirin_LTE", + "RADIO_VERSION": "Kirin710_Honor", + "FINGERPRINT": "Honor/HRY-AL00/Honor 9X:9/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Camon 17", + "PRODUCT": "KE7", + "DEVICE": "KE7", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "TecnoCamon17_11.0.0", + "SERIAL": "TECNO12345", + "DISPLAY": "TecnoCamon17_11.0.0", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE7/Tecno Camon 17:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Redmi Note 9 Pro", + "PRODUCT": "Curtana", + "DEVICE": "Curtana", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "RedmiNote9Pro_11.0.6", + "SERIAL": "XM123456789", + "DISPLAY": "RedmiNote9Pro_11.0.6", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Xiaomi", + "FINGERPRINT": "Xiaomi/Redmi Note 9 Pro/Curtana:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Z3", + "PRODUCT": "V2124A", + "DEVICE": "V2124A", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "iQOOZ3_11.0.1", + "SERIAL": "IQO01234567", + "DISPLAY": "iQOOZ3_11.0.1", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_iQOO", + "FINGERPRINT": "iQOO/V2124A/iQOO Z3:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy M32", + "PRODUCT": "SM-M325F", + "DEVICE": "SM-M325F", + "BOARD": "exynos9611", + "HARDWARE": "exynos", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "GalaxyM32_11.0.4", + "SERIAL": "SAMSUNG987654", + "DISPLAY": "GalaxyM32_11.0.4", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos_9611", + "FINGERPRINT": "Samsung/Galaxy M32/SM-M325F:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 5", + "PRODUCT": "Redfin", + "DEVICE": "redfin", + "BOARD": "qcom", + "HARDWARE": "google", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "Pixel5_11.0.1", + "SERIAL": "GOOGLE12345", + "DISPLAY": "Pixel5_11.0.1", + "HOST": "google_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Google", + "FINGERPRINT": "Google/Pixel5/redfin:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus Nord 2", + "PRODUCT": "AC2003", + "DEVICE": "AC2003", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "OnePlusNord2_11.0.2", + "SERIAL": "OP1234567890", + "DISPLAY": "OnePlusNord2_11.0.2", + "HOST": "oneplus_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus Nord 2/AC2003:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G60", + "PRODUCT": "corn", + "DEVICE": "corn", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "MotoG60_11.0.1", + "SERIAL": "MOTG6012345", + "DISPLAY": "MotoG60_11.0.1", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Motorola", + "FINGERPRINT": "Motorola/Moto G60/corn:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone 2", + "PRODUCT": "A066", + "DEVICE": "A066", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "13", + "BOOTLOADER": "NothingPhone2_13.0.2", + "SERIAL": "NOTHING987654", + "DISPLAY": "NothingPhone2_13.0.2", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "QCOM_X65_Nothing", + "FINGERPRINT": "Nothing/Phone2/A066:13/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 7 Pro", + "PRODUCT": "RMX2170", + "DEVICE": "RMX2170", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "RMX2170_10.0.0", + "SERIAL": "RMX21701234", + "DISPLAY": "Realme7Pro_10.0.0", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Realme", + "FINGERPRINT": "Realme/RMX2170/Realme 7 Pro:10/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V21e", + "PRODUCT": "V2050", + "DEVICE": "V2050", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Vivo_V2050_11.0.0", + "SERIAL": "VV987654321", + "DISPLAY": "VivoV21e_11.0.0", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_VIVO", + "FINGERPRINT": "Vivo/V2050/Vivo V21e:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 5 Pro", + "PRODUCT": "CPH2201", + "DEVICE": "Reno5Pro", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OppoReno5Pro_11.0.4", + "SERIAL": "OPPO9876543", + "DISPLAY": "OppoReno5Pro_11.0.4", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OPPO", + "FINGERPRINT": "Oppo/CPH2201/Oppo Reno 5 Pro:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Smart 5", + "PRODUCT": "X657", + "DEVICE": "X657", + "BOARD": "mt6761", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "InfinixSmart5_10.0.0", + "SERIAL": "INFINIX7654321", + "DISPLAY": "InfinixSmart5_10.0.0", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X657/Infinix Smart 5:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO M2 Pro", + "PRODUCT": "Salta", + "DEVICE": "Salta", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "POCO_M2Pro_10.0.4", + "SERIAL": "POCO1234567890", + "DISPLAY": "POCO_M2Pro_10.0.4", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_POCO", + "FINGERPRINT": "POCO/POCO M2 Pro/Salta:10/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme X7", + "PRODUCT": "RMX3092", + "DEVICE": "RMX3092", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "RealmeX7_10.0.1", + "SERIAL": "RMX987654321", + "DISPLAY": "RealmeX7_10.0.1", + "HOST": "realme_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Realme", + "FINGERPRINT": "Realme/RMX3092/Realme X7:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V20", + "PRODUCT": "V2026", + "DEVICE": "V2026", + "BOARD": "sd720g", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Vivo_V2026_11.0.0", + "SERIAL": "VV123456789", + "DISPLAY": "VivoV20_11.0.0", + "HOST": "vivo_build_server", + "RADIO": "Snapdragon_X12", + "RADIO_VERSION": "QCOM_X12_VIVO", + "FINGERPRINT": "Vivo/V2026/Vivo V20:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo F19 Pro", + "PRODUCT": "CPH2109", + "DEVICE": "CPH2109", + "BOARD": "mt6779", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OppoF19Pro_11.0.3", + "SERIAL": "OPPO12345678", + "DISPLAY": "OppoF19Pro_11.0.3", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OPPO", + "FINGERPRINT": "Oppo/CPH2109/Oppo F19 Pro:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Note 10", + "PRODUCT": "X695", + "DEVICE": "X695", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "InfinixNote10_11.0.1", + "SERIAL": "INFINIX123456", + "DISPLAY": "InfinixNote10_11.0.1", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X695/Infinix Note 10:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO M3", + "PRODUCT": "Lemax", + "DEVICE": "Lemax", + "BOARD": "sm6115", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "POCO_M3_10.0.2", + "SERIAL": "POCO987654321", + "DISPLAY": "POCO_M3_10.0.2", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_POCO", + "FINGERPRINT": "POCO/POCO M3/Lemax:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Spark 6", + "PRODUCT": "KE5", + "DEVICE": "KE5", + "BOARD": "mt6761", + "HARDWARE": "mediatek", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "TecnoSpark6_10.0.0", + "SERIAL": "TECNO987654", + "DISPLAY": "TecnoSpark6_10.0.0", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE5/Tecno Spark 6:10/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto G9", + "PRODUCT": "guacamole", + "DEVICE": "guacamole", + "BOARD": "sm6125", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoG9_10.0.2", + "SERIAL": "MOTO123456789", + "DISPLAY": "MotoG9_10.0.2", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Moto", + "FINGERPRINT": "Motorola/Moto G9/guacamole:10/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Redmi Note 10 Pro", + "PRODUCT": "Sweet", + "DEVICE": "Sweet", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "RedmiNote10Pro_11.0.5", + "SERIAL": "XM987654321", + "DISPLAY": "RedmiNote10Pro_11.0.5", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Xiaomi", + "FINGERPRINT": "Xiaomi/Redmi Note 10 Pro/Sweet:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 7", + "PRODUCT": "V2056A", + "DEVICE": "V2056A", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "iQOO7_11.0.1", + "SERIAL": "IQO012345678", + "DISPLAY": "iQOO7_11.0.1", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_iQOO", + "FINGERPRINT": "iQOO/V2056A/iQOO 7:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy S21", + "PRODUCT": "SM-G991B", + "DEVICE": "SM-G991B", + "BOARD": "exynos2100", + "HARDWARE": "samsung", + "ID": "RP1A.200720.012", + "IMEI": "350336263545489", + "Android_Version": "11", + "BOOTLOADER": "GalaxyS21_11.0.4", + "SERIAL": "SAMSUNG123456", + "DISPLAY": "GalaxyS21_11.0.4", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos_2100_Samsung", + "FINGERPRINT": "Samsung/Galaxy S21/SM-G991B:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 9", + "PRODUCT": "LE2111", + "DEVICE": "LE2111", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "OnePlus9_11.0.3", + "SERIAL": "OP123456789", + "DISPLAY": "OnePlus9_11.0.3", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/OnePlus 9/LE2111:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G Power", + "PRODUCT": "guacamole", + "DEVICE": "guacamole", + "BOARD": "sm6125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoGPower_10.0.1", + "SERIAL": "MOTG987654", + "DISPLAY": "MotoGPower_10.0.1", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Motorola", + "FINGERPRINT": "Motorola/Moto G Power/guacamole:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone 1", + "PRODUCT": "A063", + "DEVICE": "A063", + "BOARD": "SM8450", + "HARDWARE": "qcom", + "ID": "RP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "NothingPhone1_12.0.4", + "SERIAL": "NOTHING123456", + "DISPLAY": "NothingPhone1_12.0.4", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Nothing", + "FINGERPRINT": "Nothing/Phone1/A063:12/RP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 6", + "PRODUCT": "Raven", + "DEVICE": "raven", + "BOARD": "google", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Pixel6_12.0.1", + "SERIAL": "GOOGLE1234567", + "DISPLAY": "Pixel6_12.0.1", + "HOST": "google_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Google", + "FINGERPRINT": "Google/Pixel6/raven:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 8 Pro", + "PRODUCT": "RMX3081", + "DEVICE": "RMX3081", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Realme8Pro_11.0.2", + "SERIAL": "RMX123456789", + "DISPLAY": "Realme8Pro_11.0.2", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Realme", + "FINGERPRINT": "Realme/RMX3081/Realme 8 Pro:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo Y20", + "PRODUCT": "V2027", + "DEVICE": "V2027", + "BOARD": "sd460", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "VivoY20_10.0.2", + "SERIAL": "VV1234567890", + "DISPLAY": "VivoY20_10.0.2", + "HOST": "vivo_build_server", + "RADIO": "Snapdragon_X6", + "RADIO_VERSION": "QCOM_X6_Vivo", + "FINGERPRINT": "Vivo/V2027/Vivo Y20:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 5", + "PRODUCT": "CPH2145", + "DEVICE": "CPH2145", + "BOARD": "mt6877", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OppoReno5_11.0.1", + "SERIAL": "OPPO987654321", + "DISPLAY": "OppoReno5_11.0.1", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OPPO", + "FINGERPRINT": "Oppo/CPH2145/Oppo Reno 5:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 8", + "PRODUCT": "X686", + "DEVICE": "X686", + "BOARD": "mt6785", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "InfinixZero8_10.0.0", + "SERIAL": "INFINIX987654", + "DISPLAY": "InfinixZero8_10.0.0", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X686/Infinix Zero 8:10/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO F3", + "PRODUCT": "Alioth", + "DEVICE": "Alioth", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "POCOF3_11.0.4", + "SERIAL": "POCO123456789", + "DISPLAY": "POCOF3_11.0.4", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_POCO", + "FINGERPRINT": "POCO/POCO F3/Alioth:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Camon 17", + "PRODUCT": "KE7", + "DEVICE": "KE7", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "TecnoCamon17_11.0.1", + "SERIAL": "TECNO987654", + "DISPLAY": "TecnoCamon17_11.0.1", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE7/Tecno Camon 17:11/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto E", + "PRODUCT": "go", + "DEVICE": "go", + "BOARD": "sm4250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoE_10.0.0", + "SERIAL": "MOTO987654", + "DISPLAY": "MotoE_10.0.0", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Moto", + "FINGERPRINT": "Motorola/Moto E/go:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Redmi", + "BRAND": "Redmi", + "MODEL": "Redmi Note 9 Pro", + "PRODUCT": "Joyeuse", + "DEVICE": "Joyeuse", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "RedmiNote9Pro_10.0.1", + "SERIAL": "REDMI123456", + "DISPLAY": "RedmiNote9Pro_10.0.1", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Redmi", + "FINGERPRINT": "Xiaomi/Redmi Note 9 Pro/Joyeuse:10/SP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Z3", + "PRODUCT": "V2054A", + "DEVICE": "V2054A", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "iQOOZ3_11.0.2", + "SERIAL": "IQO0123456", + "DISPLAY": "iQOOZ3_11.0.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_iQOO", + "FINGERPRINT": "iQOO/V2054A/iQOO Z3:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy A51", + "PRODUCT": "SM-A515F", + "DEVICE": "SM-A515F", + "BOARD": "exynos9611", + "HARDWARE": "samsung", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "GalaxyA51_11.0.4", + "SERIAL": "SAMSUNG1234", + "DISPLAY": "GalaxyA51_11.0.4", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos_9611_Samsung", + "FINGERPRINT": "Samsung/Galaxy A51/SM-A515F:11/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus Nord 2", + "PRODUCT": "DN2101", + "DEVICE": "DN2101", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OnePlusNord2_11.0.3", + "SERIAL": "OP1234567", + "DISPLAY": "OnePlusNord2_11.0.3", + "HOST": "oneplus_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_OnePlus", + "FINGERPRINT": "OnePlus/DN2101/OnePlus Nord 2:11/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G60", + "PRODUCT": "cornsilk", + "DEVICE": "cornsilk", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoG60_10.0.1", + "SERIAL": "MOTG123456", + "DISPLAY": "MotoG60_10.0.1", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X11", + "RADIO_VERSION": "QCOM_X11_Motorola", + "FINGERPRINT": "Motorola/Moto G60/cornsilk:10/RP1A.200720.012/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 5", + "PRODUCT": "Redfin", + "DEVICE": "redfin", + "BOARD": "google", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "12", + "BOOTLOADER": "Pixel5_12.0.1", + "SERIAL": "GOOGLE12345", + "DISPLAY": "Pixel5_12.0.1", + "HOST": "google_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "QCOM_X65_Google", + "FINGERPRINT": "Google/Pixel5/redfin:12/SP1A.210812.016/Stable:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 9 Pro", + "PRODUCT": "RMX3471", + "DEVICE": "RMX3471", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "12", + "BOOTLOADER": "Realme9Pro_12.0.3", + "SERIAL": "RMX123654789", + "DISPLAY": "Realme9Pro_12.0.3", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Realme", + "FINGERPRINT": "Realme/RMX3471/Realme 9 Pro:12/RP1A.200720.012/R.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V21", + "PRODUCT": "V2050", + "DEVICE": "V2050", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "VivoV21_11.0.5", + "SERIAL": "VV987654321", + "DISPLAY": "VivoV21_11.0.5", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2050/Vivo V21:11/RP1A.200720.012/R.4f82f39-76311:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo F19 Pro", + "PRODUCT": "CPH2109", + "DEVICE": "CPH2109", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OppoF19Pro_11.0.2", + "SERIAL": "OPPO987654321", + "DISPLAY": "OppoF19Pro_11.0.2", + "HOST": "oppo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Oppo", + "FINGERPRINT": "Oppo/CPH2109/Oppo F19 Pro:11/SP1A.210812.016/R.6d11f15-18412:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Note 10", + "PRODUCT": "X693", + "DEVICE": "X693", + "BOARD": "mt6768", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "InfinixNote10_11.0.1", + "SERIAL": "INFINIX123654", + "DISPLAY": "InfinixNote10_11.0.1", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X693/Infinix Note 10:11/SP1A.210812.016/R.1a23b54-98102:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X3 Pro", + "PRODUCT": "Vayu", + "DEVICE": "Vayu", + "BOARD": "sm8150", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "POCOX3Pro_11.0.4", + "SERIAL": "POCO123987", + "DISPLAY": "POCOX3Pro_11.0.4", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_POCO", + "FINGERPRINT": "POCO/POCO X3 Pro/Vayu:11/SP1A.210812.016/R.8f37b12-65141:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Spark 7", + "PRODUCT": "KE7", + "DEVICE": "KE7", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "TecnoSpark7_11.0.3", + "SERIAL": "TECNO654321", + "DISPLAY": "TecnoSpark7_11.0.3", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE7/Tecno Spark 7:11/RP1A.200720.012/R.9d61e03-72136:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto G60", + "PRODUCT": "cornsilk", + "DEVICE": "cornsilk", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoG60_10.0.2", + "SERIAL": "MOTG987654", + "DISPLAY": "MotoG60_10.0.2", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Moto", + "FINGERPRINT": "Motorola/Moto G60/cornsilk:10/SP1A.200720.012/R.1b97a61-84902:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Mi 11X Pro", + "PRODUCT": "Alioth", + "DEVICE": "Alioth", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "Mi11XPro_11.0.5", + "SERIAL": "MI123456789", + "DISPLAY": "Mi11XPro_11.0.5", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Xiaomi", + "FINGERPRINT": "Xiaomi/Mi 11X Pro/Alioth:11/RP1A.200720.012/R.6d2a7f9-59223:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 7", + "PRODUCT": "V2043", + "DEVICE": "V2043", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "iQOO7_11.0.2", + "SERIAL": "IQO1234567", + "DISPLAY": "iQOO7_11.0.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/V2043/iQOO 7:11/RP1A.200720.012/R.2b81d40-45112:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy A72", + "PRODUCT": "SM-A725F", + "DEVICE": "SM-A725F", + "BOARD": "exynos9611", + "HARDWARE": "samsung", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "GalaxyA72_11.0.3", + "SERIAL": "SAMSUNG123654", + "DISPLAY": "GalaxyA72_11.0.3", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos_9611_Samsung", + "FINGERPRINT": "Samsung/Galaxy A72/SM-A725F:11/RP1A.200720.012/R.3a64e92-30215:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 9", + "PRODUCT": "LE2111", + "DEVICE": "LE2111", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "11", + "BOOTLOADER": "OnePlus9_11.0.1", + "SERIAL": "OP987654321", + "DISPLAY": "OnePlus9_11.0.1", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/LE2111/OnePlus 9:11/SP1A.210812.016/R.8c5d39b-20976:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G Power", + "PRODUCT": "cornsilk", + "DEVICE": "cornsilk", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "MotoGPower_10.0.3", + "SERIAL": "MOTG654321", + "DISPLAY": "MotoGPower_10.0.3", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Motorola", + "FINGERPRINT": "Motorola/Moto G Power/cornsilk:10/SP1A.200720.012/R.7f4a90f-12543:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme Narzo 30 Pro", + "PRODUCT": "RMX2020", + "DEVICE": "RMX2020", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "RealmeNarzo30_10.0.3", + "SERIAL": "RMX123987654", + "DISPLAY": "RealmeNarzo30_10.0.3", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Realme", + "FINGERPRINT": "Realme/RMX2020/Realme Narzo 30 Pro:10/RP1A.200720.012/M.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo Y51", + "PRODUCT": "V2030", + "DEVICE": "V2030", + "BOARD": "sm6125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "VivoY51_10.0.5", + "SERIAL": "VIVO1234567", + "DISPLAY": "VivoY51_10.0.5", + "HOST": "vivo_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Vivo", + "FINGERPRINT": "Vivo/V2030/Vivo Y51:10/RP1A.200720.012/M.1b90f18-71521:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo A53", + "PRODUCT": "CPH2127", + "DEVICE": "CPH2127", + "BOARD": "sm6125", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "OppoA53_10.0.3", + "SERIAL": "OPPO12345678", + "DISPLAY": "OppoA53_10.0.3", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X55", + "RADIO_VERSION": "QCOM_X55_Oppo", + "FINGERPRINT": "Oppo/CPH2127/Oppo A53:10/RP1A.200720.012/M.3d92c37-48190:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 8", + "PRODUCT": "X6810", + "DEVICE": "X6810", + "BOARD": "mt6769", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "10", + "BOOTLOADER": "InfinixZero8_10.0.4", + "SERIAL": "INFINIX123654", + "DISPLAY": "InfinixZero8_10.0.4", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6810/Infinix Zero 8:10/SP1A.210812.016/M.5e40d29-89216:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO M2 Pro", + "PRODUCT": "gram", + "DEVICE": "gram", + "BOARD": "sm7125", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "10", + "BOOTLOADER": "POCO_M2Pro_10.0.4", + "SERIAL": "POCO123987", + "DISPLAY": "POCO_M2Pro_10.0.4", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_POCO", + "FINGERPRINT": "POCO/POCO M2 Pro/gram:10/SP1A.200812.016/M.7c1b34d-61256:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Camon 16", + "PRODUCT": "KE5", + "DEVICE": "KE5", + "BOARD": "mt6768", + "HARDWARE": "mediatek", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "TecnoCamon16_10.0.4", + "SERIAL": "TECNO654321", + "DISPLAY": "TecnoCamon16_10.0.4", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE5/Tecno Camon 16:10/RP1A.200720.012/M.1c72f60-62139:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto G60", + "PRODUCT": "cornflower", + "DEVICE": "cornflower", + "BOARD": "sm7250", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "11", + "BOOTLOADER": "MotoG60_11.0.2", + "SERIAL": "MOTG987654", + "DISPLAY": "MotoG60_11.0.2", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Moto", + "FINGERPRINT": "Motorola/Moto G60/cornflower:11/SP1A.200812.016/M.3f18e12-68415:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Redmi Note 10 Pro", + "PRODUCT": "sweet", + "DEVICE": "sweet", + "BOARD": "sm7150", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "RedmiNote10Pro_11.0.4", + "SERIAL": "MI123456789", + "DISPLAY": "RedmiNote10Pro_11.0.4", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Xiaomi", + "FINGERPRINT": "Xiaomi/Redmi Note 10 Pro/sweet:11/RP1A.200720.012/M.9d72f43-83265:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 3", + "PRODUCT": "I1927", + "DEVICE": "I1927", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "10", + "BOOTLOADER": "iQOO3_10.0.5", + "SERIAL": "IQO1234567", + "DISPLAY": "iQOO3_10.0.5", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/I1927/iQOO 3:10/RP1A.200720.012/M.2d74f11-93561:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy M32", + "PRODUCT": "SM-M325F", + "DEVICE": "SM-M325F", + "BOARD": "exynos9611", + "HARDWARE": "samsung", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "GalaxyM32_11.0.4", + "SERIAL": "SAMSUNG987654", + "DISPLAY": "GalaxyM32_11.0.4", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos9611_Samsung", + "FINGERPRINT": "Samsung/Galaxy M32/SM-M325F:11/RP1A.200720.012/M.5e92c43-74129:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus Nord 2", + "PRODUCT": "DN2101", + "DEVICE": "DN2101", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "11", + "BOOTLOADER": "OnePlusNord2_11.0.3", + "SERIAL": "OP987654321", + "DISPLAY": "OnePlusNord2_11.0.3", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/DN2101/OnePlus Nord 2:11/SP1A.200812.016/M.4a75e90-95314:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto Edge", + "PRODUCT": "edge", + "DEVICE": "edge", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "RP1A.200720.012", + "Android_Version": "11", + "BOOTLOADER": "MotoEdge_11.0.3", + "SERIAL": "MOTG876543", + "DISPLAY": "MotoEdge_11.0.3", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Motorola", + "FINGERPRINT": "Motorola/Moto Edge/edge:11/RP1A.200720.012/M.2b45f13-51239:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone (1)", + "PRODUCT": "A065", + "DEVICE": "A065", + "BOARD": "qcom", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "12", + "BOOTLOADER": "NothingPhone1_12.0.2", + "SERIAL": "NOTHING123", + "DISPLAY": "NothingPhone1_12.0.2", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Nothing", + "FINGERPRINT": "Nothing/A065/Nothing Phone (1):12/SP1A.200812.016/M.7d3c92b-90123:user/release-keys" + }, + { + "MANUFACTURER": "Google", + "BRAND": "Google", + "MODEL": "Pixel 5", + "PRODUCT": "redfin", + "DEVICE": "redfin", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "11", + "BOOTLOADER": "Pixel5_11.0.2", + "SERIAL": "GOOG1234567", + "DISPLAY": "Pixel5_11.0.2", + "HOST": "google_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Google", + "FINGERPRINT": "Google/redfin/Pixel 5:11/SP1A.200812.016/M.8a72f81-15647:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme GT 2 Pro", + "PRODUCT": "RMX3301", + "DEVICE": "RMX3301", + "BOARD": "sm8250", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "RealmeGT2Pro_13.0.3", + "SERIAL": "RMX123987654", + "DISPLAY": "RealmeGT2Pro_13.0.3", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Realme", + "FINGERPRINT": "Realme/RMX3301/Realme GT 2 Pro:13/TP1A.220905.001/M.4b73e10-56123:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V23e 5G", + "PRODUCT": "V2131", + "DEVICE": "V2131", + "BOARD": "mt6833", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "VivoV23e_13.0.2", + "SERIAL": "VIVO87654321", + "DISPLAY": "VivoV23e_13.0.2", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2131/Vivo V23e 5G:13/TP1A.220905.001/M.3f74c23-19874:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Find X5 Pro", + "PRODUCT": "CPH2305", + "DEVICE": "CPH2305", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "OppoFindX5Pro_13.0.4", + "SERIAL": "OPPO123456789", + "DISPLAY": "OppoFindX5Pro_13.0.4", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Oppo", + "FINGERPRINT": "Oppo/CPH2305/Oppo Find X5 Pro:13/TP1A.220905.001/M.2b84d71-67215:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero Ultra", + "PRODUCT": "X6812", + "DEVICE": "X6812", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "InfinixZeroUltra_13.0.2", + "SERIAL": "INFINIX1234567", + "DISPLAY": "InfinixZeroUltra_13.0.2", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6812/Infinix Zero Ultra:13/TP1A.220905.001/M.5f72c83-92115:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X4 GT", + "PRODUCT": "redmi", + "DEVICE": "redmi", + "BOARD": "sm7325", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "POCOX4GT_13.0.3", + "SERIAL": "POCO987654321", + "DISPLAY": "POCOX4GT_13.0.3", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_POCO", + "FINGERPRINT": "POCO/redmi/POCO X4 GT:13/TP1A.220905.001/M.6b92f47-12456:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Phantom X2", + "PRODUCT": "KE6", + "DEVICE": "KE6", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "TecnoPhantomX2_13.0.5", + "SERIAL": "TECNO123987", + "DISPLAY": "TecnoPhantomX2_13.0.5", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/KE6/Tecno Phantom X2:13/TP1A.220905.001/M.1c92f47-80123:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto G200 5G", + "PRODUCT": "corned-beef", + "DEVICE": "corned-beef", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "MotoG200_13.0.2", + "SERIAL": "MOTG123456", + "DISPLAY": "MotoG200_13.0.2", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Moto", + "FINGERPRINT": "Motorola/Moto G200/corned-beef:13/TP1A.220905.001/M.2a73c25-98274:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Xiaomi 12 Pro", + "PRODUCT": "cypress", + "DEVICE": "cypress", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "Xiaomi12Pro_13.0.4", + "SERIAL": "MI12345678", + "DISPLAY": "Xiaomi12Pro_13.0.4", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Xiaomi", + "FINGERPRINT": "Xiaomi/cypress/Xiaomi 12 Pro:13/TP1A.220905.001/M.3b85d32-74629:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 9 Pro", + "PRODUCT": "I2126", + "DEVICE": "I2126", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "iQOO9Pro_13.0.2", + "SERIAL": "IQO1234567", + "DISPLAY": "iQOO9Pro_13.0.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_iQOO", + "FINGERPRINT": "iQOO/I2126/iQOO 9 Pro:13/TP1A.220905.001/M.2b75e11-63215:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy S22 Ultra", + "PRODUCT": "SM-S908B", + "DEVICE": "SM-S908B", + "BOARD": "exynos2200", + "HARDWARE": "samsung", + "ID": "TP1A.220905.001", + "IMEI": "350280388762357", + "Android_Version": "13", + "BOOTLOADER": "GalaxyS22Ultra_13.0.3", + "SERIAL": "SAMSUNG123456", + "DISPLAY": "GalaxyS22Ultra_13.0.3", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos2200_Samsung", + "FINGERPRINT": "Samsung/SM-S908B/Galaxy S22 Ultra:13/TP1A.220905.001/M.3f92e41-76291:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 10 Pro", + "PRODUCT": "LE2120", + "DEVICE": "LE2120", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "OnePlus10Pro_13.0.4", + "SERIAL": "OP987654321", + "DISPLAY": "OnePlus10Pro_13.0.4", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_OnePlus", + "FINGERPRINT": "OnePlus/LE2120/OnePlus 10 Pro:13/TP1A.220905.001/M.1a84d32-67381:user/release-keys" + }, + { + "MANUFACTURER": "Motorola", + "BRAND": "Motorola", + "MODEL": "Moto G Power (2023)", + "PRODUCT": "XT2315", + "DEVICE": "XT2315", + "BOARD": "sm7225", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "MotoGPower2023_14.0.3", + "SERIAL": "MOTG987654", + "DISPLAY": "MotoGPower2023_14.0.3", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Motorola", + "FINGERPRINT": "Motorola/Moto G Power (2023)/XT2315:14/TP1A.220905.001/M.3d17b98-92543:user/release-keys" + }, + { + "MANUFACTURER": "Nothing", + "BRAND": "Nothing", + "MODEL": "Nothing Phone (2)", + "PRODUCT": "A072", + "DEVICE": "A072", + "BOARD": "qcom", + "HARDWARE": "qcom", + "ID": "SP1A.200812.016", + "Android_Version": "14", + "BOOTLOADER": "NothingPhone2_14.0.1", + "SERIAL": "NOTHING87654321", + "DISPLAY": "NothingPhone2_14.0.1", + "HOST": "nothing_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Nothing", + "FINGERPRINT": "Nothing/A072/Nothing Phone (2):14/SP1A.200812.016/M.9d51f90-74182:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 10 Pro+", + "PRODUCT": "RMX3686", + "DEVICE": "RMX3686", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "Realme10ProPlus_14.0.2", + "SERIAL": "RMX1009876", + "DISPLAY": "Realme10ProPlus_14.0.2", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Realme", + "FINGERPRINT": "Realme/RMX3686/Realme 10 Pro+:14/TP1A.220905.001/A.3a72d92-19415:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo X90 Pro", + "PRODUCT": "V2219A", + "DEVICE": "V2219A", + "BOARD": "mt6895", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "VivoX90Pro_15.0.1", + "SERIAL": "VIVO890123", + "DISPLAY": "VivoX90Pro_15.0.1", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2219A/Vivo X90 Pro:15/SP1A.210812.016/A.5e73c84-78412:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 8 Pro", + "PRODUCT": "CPH2359", + "DEVICE": "CPH2359", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "OppoReno8Pro_15.0.2", + "SERIAL": "OPPO1098765", + "DISPLAY": "OppoReno8Pro_15.0.2", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "QCOM_X65_Oppo", + "FINGERPRINT": "Oppo/CPH2359/Oppo Reno 8 Pro:15/SP1A.210812.016/A.8f72d72-90231:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 5G 2023", + "PRODUCT": "X6813", + "DEVICE": "X6813", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "InfinixZero5G2023_15.0.2", + "SERIAL": "INFINIX332156", + "DISPLAY": "InfinixZero5G2023_15.0.2", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6813/Infinix Zero 5G 2023:15/TP1A.220905.001/A.4e62b19-89512:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO F4 GT", + "PRODUCT": "Mondrian", + "DEVICE": "Mondrian", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "POCOF4GT_14.0.1", + "SERIAL": "POCO789654", + "DISPLAY": "POCOF4GT_14.0.1", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "QCOM_X65_POCO", + "FINGERPRINT": "POCO/Mondrian/POCO F4 GT:14/TP1A.220905.001/A.6e93d15-81423:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Camon 20 Pro", + "PRODUCT": "AD9", + "DEVICE": "AD9", + "BOARD": "mt6895", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "TecnoCamon20Pro_15.0.3", + "SERIAL": "TECNO7654321", + "DISPLAY": "TecnoCamon20Pro_15.0.3", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/AD9/Tecno Camon 20 Pro:15/TP1A.220905.001/A.2d75b19-93215:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto Edge 40 Pro", + "PRODUCT": "edge40pro", + "DEVICE": "edge40pro", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "MotoEdge40Pro_15.0.1", + "SERIAL": "MOTG654321", + "DISPLAY": "MotoEdge40Pro_15.0.1", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Moto", + "FINGERPRINT": "Motorola/Moto Edge 40 Pro/edge40pro:15/TP1A.220905.001/A.3a71b93-97124:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Xiaomi 13", + "PRODUCT": "nuwa", + "DEVICE": "nuwa", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "Xiaomi13_14.0.2", + "SERIAL": "MI1098765", + "DISPLAY": "Xiaomi13_14.0.2", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Xiaomi", + "FINGERPRINT": "Xiaomi/nuwa/Xiaomi 13:14/TP1A.220905.001/A.7a91d19-63345:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Neo 7", + "PRODUCT": "I2206", + "DEVICE": "I2206", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "14", + "BOOTLOADER": "iQOONeo7_14.0.3", + "SERIAL": "IQO0987654", + "DISPLAY": "iQOONeo7_14.0.3", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_iQOO", + "FINGERPRINT": "iQOO/I2206/iQOO Neo 7:14/SP1A.210812.016/A.9a85b26-67134:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy Z Fold 5", + "PRODUCT": "SM-F946B", + "DEVICE": "SM-F946B", + "BOARD": "exynos2200", + "HARDWARE": "samsung", + "ID": "TP1A.220905.001", + "IMEI": "351561160767485", + "Android_Version": "14", + "BOOTLOADER": "GalaxyZFold5_14.0.1", + "SERIAL": "SAMSUNG123456", + "DISPLAY": "GalaxyZFold5_14.0.1", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos2200_Samsung", + "FINGERPRINT": "Samsung/Galaxy Z Fold 5/SM-F946B:14/TP1A.220905.001/A.2a92d83-66125:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 10 Pro", + "PRODUCT": "NE2210", + "DEVICE": "NE2210", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "OnePlus10Pro_15.0.2", + "SERIAL": "OP98765432", + "DISPLAY": "OnePlus10Pro_15.0.2", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_OnePlus", + "FINGERPRINT": "OnePlus/NE2210/OnePlus 10 Pro:15/SP1A.210812.016/A.3b91f82-91372:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme 9 Pro+", + "PRODUCT": "RMX3393", + "DEVICE": "RMX3393", + "BOARD": "sm6350", + "HARDWARE": "qcom", + "ID": "SP1A.220812.016", + "Android_Version": "14", + "BOOTLOADER": "Realme9Pro+_14.0.2", + "SERIAL": "RMX1234567", + "DISPLAY": "Realme9Pro+_14.0.2", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Realme", + "FINGERPRINT": "Realme/RMX3393/Realme 9 Pro+:14/SP1A.220812.016/G.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V27 Pro", + "PRODUCT": "V2246", + "DEVICE": "V2246", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "VivoV27Pro_15.0.1", + "SERIAL": "VIVO7654321", + "DISPLAY": "VivoV27Pro_15.0.1", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2246/Vivo V27 Pro:15/SP1A.210812.016/G.7a75c12-47351:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Find X5 Pro", + "PRODUCT": "CPH2201", + "DEVICE": "CPH2201", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "OppoFindX5Pro_15.0.2", + "SERIAL": "OPPO0987654", + "DISPLAY": "OppoFindX5Pro_15.0.2", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X65", + "RADIO_VERSION": "QCOM_X65_Oppo", + "FINGERPRINT": "Oppo/CPH2201/Oppo Find X5 Pro:15/SP1A.210812.016/G.4a63c29-78421:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero Ultra", + "PRODUCT": "X6813", + "DEVICE": "X6813", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "InfinixZeroUltra_14.0.1", + "SERIAL": "INFINIX563785", + "DISPLAY": "InfinixZeroUltra_14.0.1", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6813/Infinix Zero Ultra:14/TP1A.220905.001/G.1a72c29-67451:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X5 Pro", + "PRODUCT": "mondrian", + "DEVICE": "mondrian", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "POCOX5Pro_13.0.1", + "SERIAL": "POCO12344321", + "DISPLAY": "POCOX5Pro_13.0.1", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_POCO", + "FINGERPRINT": "POCO/mondrian/POCO X5 Pro:13/TP1A.220905.001/G.3a61d92-57341:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Phantom X2", + "PRODUCT": "AD8", + "DEVICE": "AD8", + "BOARD": "mt6895", + "HARDWARE": "mediatek", + "ID": "SP1A.210812.016", + "Android_Version": "14", + "BOOTLOADER": "TecnoPhantomX2_14.0.1", + "SERIAL": "TECNO198765", + "DISPLAY": "TecnoPhantomX2_14.0.1", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/AD8/Tecno Phantom X2:14/SP1A.210812.016/G.2b75b24-81932:user/release-keys" + }, + { + "MANUFACTURER": "Moto", + "BRAND": "Moto", + "MODEL": "Moto Edge 30", + "PRODUCT": "edge30", + "DEVICE": "edge30", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "14", + "BOOTLOADER": "MotoEdge30_14.0.3", + "SERIAL": "MOTG456789", + "DISPLAY": "MotoEdge30_14.0.3", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Moto", + "FINGERPRINT": "Motorola/Moto Edge 30/edge30:14/SP1A.210812.016/G.4b73d91-38128:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Xiaomi 12", + "PRODUCT": "cody", + "DEVICE": "cody", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "Xiaomi12_15.0.1", + "SERIAL": "MI2345678", + "DISPLAY": "Xiaomi12_15.0.1", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Xiaomi", + "FINGERPRINT": "Xiaomi/cody/Xiaomi 12:15/TP1A.220905.001/G.1a91d17-65328:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO 11", + "PRODUCT": "I2202", + "DEVICE": "I2202", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "iQOO11_14.0.2", + "SERIAL": "IQO332546", + "DISPLAY": "iQOO11_14.0.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_iQOO", + "FINGERPRINT": "iQOO/I2202/iQOO 11:14/TP1A.220905.001/G.3b65d82-87341:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy S22 Ultra", + "PRODUCT": "SM-S908E", + "DEVICE": "SM-S908E", + "BOARD": "exynos2200", + "HARDWARE": "samsung", + "ID": "TP1A.220905.001", + "IMEI": "350280381492614", + "Android_Version": "14", + "BOOTLOADER": "GalaxyS22Ultra_14.0.3", + "SERIAL": "SAMSUNG876543", + "DISPLAY": "GalaxyS22Ultra_14.0.3", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos2200_Samsung", + "FINGERPRINT": "Samsung/Galaxy S22 Ultra/SM-S908E:14/TP1A.220905.001/G.2b75c27-38172:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 9 Pro", + "PRODUCT": "LE2121", + "DEVICE": "LE2121", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "OnePlus9Pro_15.0.3", + "SERIAL": "OP7654321", + "DISPLAY": "OnePlus9Pro_15.0.3", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_OnePlus", + "FINGERPRINT": "OnePlus/LE2121/OnePlus 9 Pro:15/SP1A.210812.016/G.7a61d35-58239:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme GT 2 Pro", + "PRODUCT": "RMX3300", + "DEVICE": "RMX3300", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "15", + "BOOTLOADER": "RealmeGT2Pro_15.0.2", + "SERIAL": "RMX44321", + "DISPLAY": "RealmeGT2Pro_15.0.2", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Realme", + "FINGERPRINT": "Realme/RMX3300/Realme GT 2 Pro:15/SP1A.210812.016/K.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V23 Pro", + "PRODUCT": "V2132", + "DEVICE": "V2132", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "VivoV23Pro_14.0.3", + "SERIAL": "VIVO987654", + "DISPLAY": "VivoV23Pro_14.0.3", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2132/Vivo V23 Pro:14/TP1A.220905.001/K.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 8 Pro", + "PRODUCT": "CPH2343", + "DEVICE": "CPH2343", + "BOARD": "sm7325", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "OppoReno8Pro_15.0.1", + "SERIAL": "OPPO654321", + "DISPLAY": "OppoReno8Pro_15.0.1", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Oppo", + "FINGERPRINT": "Oppo/CPH2343/Oppo Reno 8 Pro:15/TP1A.220905.001/K.4a76b17-58421:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 5G", + "PRODUCT": "X6810", + "DEVICE": "X6810", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "SP1A.220812.016", + "Android_Version": "14", + "BOOTLOADER": "InfinixZero5G_14.0.2", + "SERIAL": "INFINIX789101", + "DISPLAY": "InfinixZero5G_14.0.2", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6810/Infinix Zero 5G:14/SP1A.220812.016/K.2b75d92-58451:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO F4", + "PRODUCT": "mondrian", + "DEVICE": "mondrian", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "POCOF4_14.0.1", + "SERIAL": "POCO987654", + "DISPLAY": "POCOF4_14.0.1", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_POCO", + "FINGERPRINT": "POCO/mondrian/POCO F4:14/TP1A.220905.001/K.3a75c19-67221:user/release-keys" + }, + { + "MANUFACTURER": "Tecno", + "BRAND": "Tecno", + "MODEL": "Tecno Spark 9 Pro", + "PRODUCT": "AD7", + "DEVICE": "AD7", + "BOARD": "mt6785", + "HARDWARE": "mediatek", + "ID": "SP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "TecnoSpark9Pro_13.0.2", + "SERIAL": "TECNO234987", + "DISPLAY": "TecnoSpark9Pro_13.0.2", + "HOST": "tecno_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Tecno", + "FINGERPRINT": "Tecno/AD7/Tecno Spark 9 Pro:13/SP1A.220905.001/K.5a75c28-88222:user/release-keys" + }, + { + "MANUFACTURER": "Moto Fusion", + "BRAND": "Moto", + "MODEL": "Moto Fusion 5G", + "PRODUCT": "fusion", + "DEVICE": "fusion", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "14", + "BOOTLOADER": "MotoFusion_14.0.3", + "SERIAL": "MOTO654321", + "DISPLAY": "MotoFusion_14.0.3", + "HOST": "motorola_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Moto", + "FINGERPRINT": "Motorola/Moto Fusion 5G/fusion:14/SP1A.210812.016/K.3a71c12-19318:user/release-keys" + }, + { + "MANUFACTURER": "Xiaomi", + "BRAND": "Xiaomi", + "MODEL": "Xiaomi 11T Pro", + "PRODUCT": "cody", + "DEVICE": "cody", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "13", + "BOOTLOADER": "Xiaomi11TPro_13.0.2", + "SERIAL": "MI5674321", + "DISPLAY": "Xiaomi11TPro_13.0.2", + "HOST": "xiaomi_build_server", + "RADIO": "Snapdragon_X60", + "RADIO_VERSION": "QCOM_X60_Xiaomi", + "FINGERPRINT": "Xiaomi/cody/Xiaomi 11T Pro:13/TP1A.220905.001/K.7a76b15-58239:user/release-keys" + }, + { + "MANUFACTURER": "iQOO", + "BRAND": "iQOO", + "MODEL": "iQOO Neo 6", + "PRODUCT": "I2205", + "DEVICE": "I2205", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "iQOONeo6_14.0.2", + "SERIAL": "IQO5678123", + "DISPLAY": "iQOONeo6_14.0.2", + "HOST": "iqoo_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_iQOO", + "FINGERPRINT": "iQOO/I2205/iQOO Neo 6:14/SP1A.220905.001/K.6a75b19-49321:user/release-keys" + }, + { + "MANUFACTURER": "Samsung", + "BRAND": "Samsung", + "MODEL": "Galaxy Z Fold 4", + "PRODUCT": "SM-F936U", + "DEVICE": "SM-F936U", + "BOARD": "exynos2200", + "HARDWARE": "samsung", + "ID": "TP1A.220905.001", + "IMEI": "351561165602935", + "Android_Version": "15", + "BOOTLOADER": "GalaxyZF4_15.0.3", + "SERIAL": "SAMSUNG432109", + "DISPLAY": "GalaxyZF4_15.0.3", + "HOST": "samsung_build_server", + "RADIO": "Exynos_LTE", + "RADIO_VERSION": "Exynos2200_Samsung", + "FINGERPRINT": "Samsung/Galaxy Z Fold 4/SM-F936U:15/TP1A.220905.001/K.3a76b12-90321:user/release-keys" + }, + { + "MANUFACTURER": "OnePlus", + "BRAND": "OnePlus", + "MODEL": "OnePlus 10 Pro", + "PRODUCT": "LE2123", + "DEVICE": "LE2123", + "BOARD": "sm8350", + "HARDWARE": "qcom", + "ID": "SP1A.210812.016", + "Android_Version": "14", + "BOOTLOADER": "OnePlus10Pro_14.0.2", + "SERIAL": "OP9876543", + "DISPLAY": "OnePlus10Pro_14.0.2", + "HOST": "oneplus_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_OnePlus", + "FINGERPRINT": "OnePlus/LE2123/OnePlus 10 Pro:14/SP1A.210812.016/K.5a72d15-47312:user/release-keys" + }, + { + "MANUFACTURER": "Realme", + "BRAND": "Realme", + "MODEL": "Realme GT 2 Pro", + "PRODUCT": "RMX3300", + "DEVICE": "RMX3300", + "BOARD": "sm8450", + "HARDWARE": "qcom", + "ID": "SP1A.220812.016", + "Android_Version": "15", + "BOOTLOADER": "RealmeGT2Pro_15.0.1", + "SERIAL": "RMX567123", + "DISPLAY": "RealmeGT2Pro_15.0.1", + "HOST": "realme_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Realme", + "FINGERPRINT": "Realme/RMX3300/Realme GT 2 Pro:15/SP1A.220812.016/K.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "Vivo", + "BRAND": "Vivo", + "MODEL": "Vivo V23 Pro", + "PRODUCT": "V2132", + "DEVICE": "V2132", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "VivoV23Pro_14.0.2", + "SERIAL": "VIVO234567", + "DISPLAY": "VivoV23Pro_14.0.2", + "HOST": "vivo_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Vivo", + "FINGERPRINT": "Vivo/V2132/Vivo V23 Pro:14/TP1A.220905.001/K.3b75c19-45231:user/release-keys" + }, + { + "MANUFACTURER": "Oppo", + "BRAND": "Oppo", + "MODEL": "Oppo Reno 8 Pro", + "PRODUCT": "CPH2343", + "DEVICE": "CPH2343", + "BOARD": "sm7325", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "15", + "BOOTLOADER": "OppoReno8Pro_15.0.2", + "SERIAL": "OPPO987654", + "DISPLAY": "OppoReno8Pro_15.0.2", + "HOST": "oppo_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_Oppo", + "FINGERPRINT": "Oppo/CPH2343/Oppo Reno 8 Pro:15/TP1A.220905.001/K.4a75b19-54321:user/release-keys" + }, + { + "MANUFACTURER": "Infinix", + "BRAND": "Infinix", + "MODEL": "Infinix Zero 5G", + "PRODUCT": "X6810", + "DEVICE": "X6810", + "BOARD": "mt6893", + "HARDWARE": "mediatek", + "ID": "SP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "InfinixZero5G_14.0.3", + "SERIAL": "INFINIX891011", + "DISPLAY": "InfinixZero5G_14.0.3", + "HOST": "infinix_build_server", + "RADIO": "MTK_LTE", + "RADIO_VERSION": "MTK_LTE_Infinix", + "FINGERPRINT": "Infinix/X6810/Infinix Zero 5G:14/SP1A.220905.001/K.2a75b19-19315:user/release-keys" + }, + { + "MANUFACTURER": "POCO", + "BRAND": "POCO", + "MODEL": "POCO X4 Pro 5G", + "PRODUCT": "mondrian", + "DEVICE": "mondrian", + "BOARD": "sm8550", + "HARDWARE": "qcom", + "ID": "TP1A.220905.001", + "Android_Version": "14", + "BOOTLOADER": "POCOX4Pro_14.0.2", + "SERIAL": "POCO123456", + "DISPLAY": "POCOX4Pro_14.0.2", + "HOST": "poco_build_server", + "RADIO": "Snapdragon_X70", + "RADIO_VERSION": "QCOM_X70_POCO", + "FINGERPRINT": "POCO/mondrian/POCO X4 Pro 5G:14/TP1A.220905.001/K.5a75b19-40234:user/release-keys" + } + + ] + self.selected_device = {} + + + # ---------------- Get Random Device Info ---------------- + def get_random_device_info(self): + + self.selected_device = M.random.choice(self.device_info_list) + + print(f'{C.X}{C.C} Fake Device Info Generate\n\n') + + for key, value in self.selected_device.items(): + setattr(self, f"is_{key.lower()}", value) + print(f'{C.G}︻デ═一 {C.C}{key} {C.OG}➸❥ {C.Y}{value}') + + print(f"\n{C.CC}{'_' * 61}\n\n") diff --git a/ApkPatcher/Patch/Smali_Patch.py b/ApkPatcher/Patch/Smali_Patch.py new file mode 100644 index 0000000..cbac18f --- /dev/null +++ b/ApkPatcher/Patch/Smali_Patch.py @@ -0,0 +1,400 @@ +from.Package import P + +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +C_Line = f"{C.CC}{'_' * 61}" + + +# ---------------- Scan Target Regex ---------------- +def Regex_Scan(Smali_Path, Target_Regex, Count, Lock, isPKG, isCoreX): + + if isPKG: + Target_Regex = [P.Match_Regex[1:-1]] if Smali_Path.endswith('.xml') else Target_Regex + [P.Match_Regex] if Smali_Path.endswith('.smali') else [] + + if isCoreX: + Target_Regex = Target_Regex + [ r'\.class public Lcom/pairip/VMRunner;\n'] + + Smali = open(Smali_Path, 'r', encoding='utf-8', errors='ignore').read() + + Regexs = [M.re.compile(r) for r in Target_Regex] + + # ---------------- For Regex Scan ---------------- + for Regex in Regexs: + if Regex.search(Smali): + + if Lock: + try: + with Lock: + Count.value += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count.value}", end='', flush=True) + + except Exception: + return None + + else: + Count[0] += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count[0]}", end='', flush=True) + + return Smali_Path + + # ---------------- For String Scan ( Without Regex ) ---------------- + #for String in Target_String: + #if String in Smali: + #with Lock: + #Count.value += 1 + #print(f"\r[ Find Target Smali ] ➸❥ {Count.value}", end='', flush=True) + #return Smali_Path + + +# ---------------- Apply Smali_Patch ---------------- +def Smali_Patch(decompile_dir, smali_folders, isAPKEditor, CA_Cert, isID, isPairip, isPairip_lib, isPKG, isPurchased, isScreenShot, Skip_Patch, isUSB, isCoreX): + + Smali_Paths, Match_Smali = [], [] + + patterns = [ + # ---------------- VPN Bypass ---------------- + ( + r'(const/4 [pv]\d+, 0x4[^>]*?invoke-\w+ \{[^\}]*\}, Landroid/net/NetworkCapabilities;->hasTransport\(I\)Z[^>]*?)move-result ([pv]\d+)', + r'\1const/4 \2, 0x0', + "Bypassed Vpn/Proxy Detection NetworkCapabilities hasTransport" + ), + ( + r'(Ljava/net/NetworkInterface;->(?:isUp|isVirtual|isLoopback)\(\)Z[^>]*?)move-result ([pv]\d+)', + r'\1const/4 \2, 0x0', + "Bypassed Vpn/Proxy Detection NetworkInterface isUp" + ), + ( + r'(const-string [pv]\d+, "(tun|tunl0|tun0|utun0|utun1|utun2|utun3|utun4|pptp|ppp|pp0|ppp0|p2p0|ccmni0|ipsec)"[^>]*?invoke-\w+ \{[^\}]*\}, L[^\(]+;->\S+\(Ljava/lang/CharSequence;\)Z[^>]*?)move-result ([pv]\d+)', + r'\1const/4 \3, 0x0', + "Bypassed Vpn/Proxy Detection NetworkInterface" + ), + + # ---------------- Mock Location & Update & Pkg Install Fixed ---------------- + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/location/Location;->(?:isFromMockProvider|isMock)\(\)Z[^>]*?)move-result ([pv]\d+)', + r'\1const/4 \2, 0x0', + "Bypassed Mock Detection" + ), + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/content/pm/PackageManager;->getInstallerPackageName\(Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + r'\1const-string \2, "com.android.vending"', + "Fixed Installer" + ), + + # ---------------- SSL BYPASS ( MITM ) ---------------- + ( + r'(\.method [^(]*verify\([^\)]*(?:Ljavax/net/ssl/SSLSession;|Ljava/security/cert/X509Certificate;)[^\)]*\)Z\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n' + r' const v0, 0x1\n' + r' return v0\2', + "Verify SSLSession & X509Certificate" + ), + ( + r'(\.method [^(]*checkServerTrusted\([^\)]*Ljava/security/cert/X509Certificate;[^\)]*\)Ljava/util/List;\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n' + r' new-instance v0, Ljava/util/ArrayList;\n' + r' invoke-direct {v0}, Ljava/util/ArrayList;->()V\n' + r' return-object v0\2', + "checkServerTrusted" + ), + ( + r'(\.method [^(]*check(?:Client|Server)Trusted\([^\)]*Ljava/security/cert/X509Certificate;[^\)]*\)V\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n\treturn-void\2', + "check(Client|Server)Trusted" + ), + ( + r'(\.method [^(]*check\(Ljava/lang/String;(?:Ljava/util/List;|\[Ljava/security/cert/Certificate;)\)V\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n\treturn-void\2', + "CertificatePinner & HostnameVerifier" + ), + ( + r'(\.method [^(]*check\$okhttp\(Ljava/lang/String;[^\)]*\)V\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n\treturn-void\2', + "check$okhttp" + ), + ( + r'(\.method [^(]*getAcceptedIssuers\(\)\[Ljava/security/cert/X509Certificate;\s+.locals \d+)[\s\S]*?(\n.end method)', + r'\1\n' + r' const/4 v0, 0x0\n' + r' new-array v0, v0, [Ljava/security/cert/X509Certificate;\n' + r' return-object v0\2', + "getAcceptedIssuers" + ), + ( + r'(\.method [^(]*\S+\(Ljava/lang/String;[^\)]*\)V\s+.locals \d+)(?:(?!\.end method)[\s\S])*?(?:check-cast [pv]\d+, Ljava/security/cert/X509Certificate;|Ljavax/net/ssl/SSLPeerUnverifiedException;)(?:(?!\.end method)[\s\S])*?(\n.end method)', + r'\1\n\treturn-void\2', + "" + ), + + # ---------------- Fix Play ---------------- + ( + r'(invoke-interface \{[^\}]*\}, Lcom/google/android/vending/licensing/Policy;->allowAccess\(\)Z[^>]*?\s+)move-result ([pv]\d+)', + r'\1const/4 \2, 0x1', + "Bypass Client-Side LVL (allowAccess)" + ), + ( + r'(\.method [^(]*connectToLicensingService\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "connectToLicensingService" + ), + ( + r'(\.method [^(]*initializeLicenseCheck\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "initializeLicenseCheck" + ), + ( + r'(\.method [^(]*processResponse\(ILandroid/os/Bundle;\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "processResponse" + ) + ] + + # if CA_Cert: + # sha1, sha256 = P().Hash(CA_Cert[0]) + # ---------------- SHA-256 & SHA-1 ---------------- + # patterns.extend([ + # (r'(\.method [^(]*\S+\((?:Ljava/security/cert/X509Certificate;|[^)]*)\)Ljava/lang/String;\s+.locals \d+)(?:(?!\.end\smethod)[\s\S])*?"sha256/[^"]*"(?:(?!\.end\smethod)[\s\S])*?(([pv]\d+)\n.end method)', fr'\1\n\tconst-string \3, "sha256/{sha256}"\n\treturn-object \2', f"SHA-256 ➸❥ {C.OG}{sha256}"), + # (r'(\.method public [^(]*\S+\((?:Ljava/security/cert/X509Certificate;|[^)]*)\)Ljava/lang/String;\s+.*\s+)(?:(?!\.end\smethod)[\s\S])*?"sha1/[^"]*"(?:(?!\.end\smethod)[\s\S])*?(([pv]\d+)\n.end method)', fr'\1\n\tconst-string \3, "sha1/{sha1}"\n\treturn-object \2', f"SHA-1 ➸❥ {C.OG}{sha1}") + # ]) + + + # ---------------- Custom Device ID ---------------- + if isID: + patterns.append( + ( + r'(const-string [pv]\d+, "android_id"[^>]*?invoke-static \{[^\}]*\}, Landroid/provider/Settings\$Secure;->getString\(Landroid/content/ContentResolver;Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isID}"', + f"Custom Android ID ➸❥ {C.OG}{isID}" + ) + ) + + + # ---------------- isPairip ---------------- + if isPairip and isPairip_lib: + patterns.extend( + [ + ( + r'invoke-static \{[^\}]*\}, Lcom/pairip/SignatureCheck;->verifyIntegrity\(Landroid/content/Context;\)V', + r'#', + "VerifyIntegrity" + ), + ( + r'(\.method [^(]*verifyIntegrity\(Landroid/content/Context;\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "VerifyIntegrity" + ), + ( + r'(\.method [^(]*verifySignatureMatches\(Ljava/lang/String;\)Z\s+.locals \d+\s+)[\s\S]*?(\s+return ([pv]\d+)\n.end method)', + r'\1const/4 \3, 0x1\2', + "verifySignatureMatches" + ) + ] + ) + + + # ---------------- Bypass Package Detection ---------------- + if isPKG: + patterns.extend( + [ + # ---------------- Kill Process & Exit ---------------- + ( + r'invoke-static \{[^\}]*\}, (?:Ljava/lang/System;->exit|Landroid/os/Process;->killProcess)\(I\)V', + 'nop', + "Blocked System.exit & Process.killProcess" + ), + + # ---------------- Xposed Bypass & Frida Bypass ---------------- + ( + r'(const-string [pv]\d+, )"de.robv.android.xposed', + r'\1"com.Fuck.U', + "Bypassed Xposed Detection" + ), + ( + r'const-string [pv]\d+, "(generic|goldfish)"[^>]*?invoke-static \{[^\}]*\}, Landroid/os/Build;->get(Device|Hardware)\(\)Ljava/lang/String;[^>]*?move-result-object [pv]\d+[^>]*?invoke-virtual \{[^\}]*\}, Ljava/lang/String;->contains\(Ljava/lang/CharSequence;\)Z[^>]*move-result ([pv]\d+)', + r'const/4 \3, 0x0', + "Bypassed Device detection" + ), + ( + r'const-string [pv]\d+, "/data/local/tmp/(?:frida|frida-server)"[^>]*?invoke-static \{[^\}]*\}, Ljava/io/File;->exists\(\)Z[^>]*?move-result ([pv]\d+)', + r'const/4 \1, 0x0', + "Bypassed Frida Detection" + ) + ] + ) + + + # ---------------- Purchased Status ---------------- + if isPurchased: + patterns.extend( + [ + ( + r'(\.method [^(]*(?:getPrice|getMrp|getPro_mrp|getTotal(?:_)?Price|getOffer(?:_)?price|getSub_pack_price|getSub_actual_price|getActual_price|getDiscount(?:_)?price|getRegistration_price|getProduct_amount|getIs_locked)\(\)Ljava/lang/String;(?:(?!const-string [pv]\d+, "0")[\s\S])*?)(return-object ([pv]\d+)\n.end method)', + r'\1const-string \3, "0"\n\t\2', + "Patch 1" + ), + ( + r'(\.method [^(]*(?:is(?:_)?Paid|getIs(?:_)?Paid|is(?:_)?purchase(?:d)?|get(?:_)?Purchase(?:d)?|getIs(?:_)?purchase(?:d)?|getPurchaseStatus|getIs_pass|getIs_pro|getIs_pro_purchased|getIs_pro_content|isOwn|isLifetime|is(?:_)?Trial)\(.*\)(?:Ljava/lang/String;|Ljava/lang/Integer;)(?:(?!const-string [pv]\d+, "1")[\s\S])*?)(return-object ([pv]\d+)\n.end method)', + r'\1const-string \3, "1"\n\t\2', + "Patch 2" + ), + ( + r'(\.method [^(]*(?:is(?:_)?Paid|getInsIspaid|is(?:_)?purchase(?:d)?|getUser_purchase_status|getPurchaseId|is(?:_)?Trial)\(\)(?:I|Z)(?:(?!const [pv]\d+, 0x1)[\s\S])*?)(return ([pv]\d+)\n.end method)', + r'\1const \3, 0x1\n\t\2', + "Patch 3" + ) + ] + ) + + + # ---------------- Bypass SS ---------------- + if isScreenShot: + patterns.extend( + [ + ( + r'(const/16 [pv]\d+, 0x)200(0\s+(.line \d+\s+)*?invoke-virtual \{[^\}]*\}, Landroid/view/Window;->(?:add|set)Flags\(II\)V)', + r'\1\2', + "Bypassed Anti-Screen Detection <(add|set)Flags>" + ), + ( + r'(invoke-static \{[^\}]*\}, L[^\(]+;->isSecuredNow\(Landroid/view/Window;\)Z\s+(.line \d+\s+)*?move-result [pv]\d+\s+(.line \d+\s+)*?const/16 ([pv]\d+),) 0x2000', + r'\1 0x0', + "Bypassed Anti-Screen Detection " + ), + ( + r'(iget [pv]\d+, [pv]\d+, Landroid/view/WindowManager\$LayoutParams;->flags:I\s+(.line \d+\s+)*?or-int/lit16 [pv]\d+, [pv]\d+,) 0x2000', + r'\1 0x0', + "Bypassed Anti-Screen Detection " + ), + ( + r'(invoke-virtual \{([pv]\d+), ([pv]\d+)\}, Landroid/view/SurfaceView;->setSecure\(Z\)V)', + r'const/4 \3, 0x0\n\n\t\1', + "Bypassed Anti-Screen Detection " + ) + ] + ) + + + # ---------------- Remove USB Debugging ---------------- + if isUSB: + patterns.extend( + [ + ( + r'(const-string [pv]\d+, "development_settings_enabled"[^>]*invoke-static \{[^\}]*\}, L[^\(]+;->getInt\([^\)]*Ljava\/lang\/String;I\)I[^>]*)move-result ([pv]\d+)', + r'\1const/4 \2, 0x0', + 'Remove USB Debugging ' + ), + ( + r'(const-string [pv]\d+, "adb_enabled"[^>]*invoke-static \{[^\}]*\}, L[^\(]+;->getInt\([^\(]*Ljava\/lang\/String;I\)I[^>]*)move-result ([pv]\d+)', + r'\1const/4 \2, 0x0', + 'Remove USB Debugging ' + ) + ] + ) + + + Target_Regex = [p[0] for p in patterns] + + + # ---------------- Spoof Package Detection ---------------- + if isPKG: + counter = [1] + patterns.extend( + [ + ( + rf'{P.Match_Regex}', lambda m: + f'"com.Fuck.Me{(lambda x: counter.__setitem__(0, x+1) or x)(counter[0])}"', + 'Spoof Package Detection in Dex' + ), + ( + rf'{P.Match_Regex[1:-1]}', lambda m: + f'"com.Fuck.Me{(lambda x: counter.__setitem__(0, x+1) or x)(counter[0])}"', + 'Spoof Package Detection in Res' + ) + ] + ) + + + # ---------------- loadLibrary ➢ '_Pairip_CoreX' ---------------- + if isCoreX: + patterns.append( + ( + r'(\.method [^<]*\(\)V\s+.locals \d+\n)', + r'\1' + r' const-string v0, "_Pairip_CoreX"\n' + r' invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V\n', + f'CoreX_Hook ➸❥ {C.OG}"lib_Pairip_CoreX.so"' + ) + ) + + if isPKG: + smali_folders = [M.os.path.join(decompile_dir, 'resources' if isAPKEditor else 'res')] + smali_folders + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + if file.endswith(('.xml', '.smali') if isPKG else ('.smali')): + Smali_Paths.append(M.os.path.join(root, file)) + + try: + # ---------------- Multi Threading ---------------- + with M.Manager() as MT: + Count = MT.Value('i', 0); Lock = MT.Lock() + with M.Pool(M.cpu_count()) as PL: + Match_Smali = [path for path in PL.starmap(Regex_Scan, [(Smali_Path, Target_Regex, Count, Lock, isPKG, isCoreX) for Smali_Path in Smali_Paths]) if path] + + except Exception: + # ---------------- Single Threading ---------------- + Count = [0] + for Smali_Path in Smali_Paths: + result = Regex_Scan(Smali_Path, Target_Regex, Count, None, isPKG, isCoreX) + + if result: + Match_Smali.append(result) + + print(f" {C.G} ✔", flush=True) + + print(f'\n{C_Line}\n') + + if Match_Smali: + for pattern, replacement, description in patterns: + + Count_Applied = 0 + + Applied_Files = set() + + if description in Skip_Patch: + print(f"\n{C.S} Skip Patch {C.E} {C.OG}➸❥ {C.G}{description}\n") + + continue + + for file_path in Match_Smali: + if description.startswith("CoreX_Hook") and not file_path.endswith("VMRunner.smali"): + continue + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + if file_path not in Applied_Files: + Applied_Files.add(file_path) + + Count_Applied += 1 + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + if Count_Applied > 0: + print(f"\n{C.S} Tag {C.E} {C.G}{description}") + + print(f"\n{C.S} Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}") + + for file_path in Applied_Files: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{M.os.path.basename(file_path)} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{Count_Applied} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) \ No newline at end of file diff --git a/ApkPatcher/Patch/Spoof_Patch.py b/ApkPatcher/Patch/Spoof_Patch.py new file mode 100644 index 0000000..19b09e6 --- /dev/null +++ b/ApkPatcher/Patch/Spoof_Patch.py @@ -0,0 +1,328 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from.Random_INFO import R_I; RI = R_I() + +C_Line = f"{C.CC}{'_' * 61}" + + +# ---------------- Generate IMEI ---------------- +def generate_imei(): + imei = ''.join(str(M.random.randint(0, 9)) for _ in range(14)) + check_digit = (sum(int(d) if i % 2 == 0 else sum(divmod(int(d) * 2, 10)) for i, d in enumerate(imei)) * 9) % 10 + return imei + str(check_digit) + + +isIMEI = generate_imei() + + +# ---------------- Generate lat lon hex ---------------- +def generate_lat_lon_hex(): + scale_factor = 10**12 + lat, lon = round(M.random.uniform(-90.0, 90.0), 6), round(M.random.uniform(-180.0, 180.0), 6) + lat_hex = hex(int(abs(lat) * scale_factor)) + "L" + lon_hex = hex(int(abs(lon) * scale_factor)) + "L" + return lat_hex, lon_hex + + +lat_hex, lon_hex = generate_lat_lon_hex() + + +# ---------------- Generate Mac Add ---------------- +def generate_mac_add(): + return ':'.join([''.join(M.random.choices('0123456789ABCDEF', k=2)) for _ in range(6)]) + + +isMac1, isMac2, isMac3, isMac4 = [generate_mac_add() for _ in range(4)] + + +# ---------------- Generate Device ID ---------------- +def generateDeviceId(): + volatile_seed = "12345" + seed = ''.join(M.random.choice(M.string.ascii_letters + M.string.digits) for _ in range(16)) + m = M.hashlib.md5() + m.update(seed.encode('utf-8') + volatile_seed.encode('utf-8')) + return m.hexdigest()[:16], seed + + +device_id, random_seed = generateDeviceId() + + +# ---------------- Regex Scan ---------------- +def Regex_Scan(Smali_Path, Target_Regex, Count, Lock): + + Smali = open(Smali_Path, 'r', encoding='utf-8', errors='ignore').read() + + Regexs = [M.re.compile(r) for r in Target_Regex] + + for Regex in Regexs: + if Regex.search(Smali): + + if Lock: + try: + with Lock: + Count.value += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count.value}", end='', flush=True) + + except Exception: + return None + + else: + Count[0] += 1 + + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count[0]}", end='', flush=True) + + return Smali_Path + + +# ---------------- Patch Random Info ---------------- +def Patch_Random_Info(smali_folders, isID): + + RI.get_random_device_info() + + Smali_Paths, Match_Smali = [], [] + + patterns = [ + # ---------------- Build Info ---------------- + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;', + rf'const-string \1, "{RI.is_manufacturer}"', + f"MANUFACTURER ➸❥ {C.OG}{RI.is_manufacturer}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->BRAND:Ljava/lang/String;', + rf'const-string \1, "{RI.is_brand}"', + f"BRAND ➸❥ {C.OG}{RI.is_brand}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->MODEL:Ljava/lang/String;', + rf'const-string \1, "{RI.is_model}"', + f"MODEL ➸❥ {C.OG}{RI.is_model}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->PRODUCT:Ljava/lang/String;', + rf'const-string \1, "{RI.is_product}"', + f"PRODUCT ➸❥ {C.OG}{RI.is_product}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->DEVICE:Ljava/lang/String;', + rf'const-string \1, "{RI.is_device}"', + f"DEVICE ➸❥ {C.OG}{RI.is_device}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->BOARD:Ljava/lang/String;', + rf'const-string \1, "{RI.is_board}"', + f"BOARD ➸❥ {C.OG}{RI.is_board}" + ), + ( + r'invoke-static \{\}, Landroid/os/Build;->getRadioVersion\(\)Ljava/lang/String;[^>]*?move-result-object ([pv]\d+)', + rf'const-string \1, "Unknown"', + f"getRadioVersion ➸❥ {C.OG}Unknown" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->RADIO:Ljava/lang/String;', + rf'const-string \1, "Unknown"', + f"RADIO ➸❥ {C.OG}Unknown" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->HARDWARE:Ljava/lang/String;', + rf'const-string \1, "{RI.is_hardware}"', + f"HARDWARE ➸❥ {C.OG}{RI.is_hardware}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->BOOTLOADER:Ljava/lang/String;', + rf'const-string \1, "Unknown"', + f"BOOTLOADER ➸❥ {C.OG}Unknown" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->FINGERPRINT:Ljava/lang/String;', + rf'const-string \1, "{RI.is_fingerprint}"', + f"FINGERPRINT ➸❥ {C.OG}{RI.is_fingerprint}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->ID:Ljava/lang/String;', + rf'const-string \1, "{RI.is_id}"', + f"ID ➸❥ {C.OG}{RI.is_id}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->SERIAL:Ljava/lang/String;', + rf'const-string \1, "Unknown"', + f"SERIAL ➸❥ {C.OG}Unknown" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->DISPLAY:Ljava/lang/String;', + rf'const-string \1, "{RI.is_display}"', + f"DISPLAY ➸❥ {C.OG}{RI.is_display}" + ), + ( + r'sget-object ([pv]\d+), Landroid/os/Build;->HOST:Ljava/lang/String;', + rf'const-string \1, "localhost"', + f"HOST ➸❥ {C.OG}localhost" + ), + ( + r'const-string [pv]\d+, "(?:generic|goldfish)"[^>]*?invoke-static \{[^\}]*\}, Landroid/os/Build;->get(?:Device|Hardware)\(\)Ljava/lang/String;[^>]*?move-result-object [pv]\d+[^>]*?invoke-virtual \{[^\}]*\}, Ljava/lang/String;->contains\(Ljava/lang/CharSequence;\)Z[^>]*?move-result ([pv]\d+)', + rf'const/4 \1, 0x0', + "Bypassed Device detection" + ), + + # ---------------- Mock Location & Update & PKG Install Fixed ---------------- + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/location/Location;->getLongitude\(\)D[^>]*?)move-result-wide ([pv]\d+)', + rf'\1const-wide \2, {lon_hex}', + f"Longitude ➸❥ {C.OG}{lon_hex}" + ), + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/location/Location;->getLatitude\(\)D[^>]*?)move-result-wide ([pv]\d+)', + rf'\1const-wide \2, {lat_hex}', + f"Latitude ➸❥ {C.OG}{lat_hex}" + ), + ( + r'invoke-virtual \{[^\}]*\}, Landroid/location/Location;->(?:isFromMockProvider|isMock)\(\)Z[^>]*?move-result ([pv]\d+)', + rf'const/4 \1, 0x0', + "Bypassed Mock Detection" + ), + ( + r'iget-object ([pv]\d+), [pv]\d+, L[^;]*;->ip:Ljava/lang/String;', + rf'const-string \1, "127.0.0.1"', + f"IP To LocalHost ➸❥ {C.OG}127.0.0.1" + ), + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/content/pm/PackageManager;->getInstallerPackageName\(Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + r'\1const-string \2, "com.android.vending"', + "Fixed Installer" + ), + + # ---------------- Settings$Secure ---------------- + ( + r'(const-string [pv]\d+, "bluetooth_address"[^>]*?invoke-static \{[^\}]*\}, Landroid/provider/Settings\$Secure;->getString\(Landroid/content/ContentResolver;Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isMac1}"', + f"Bluetooth Address ➸❥ {C.OG}{isMac1}" + ), + + # ---------------- Network Info ---------------- + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/net/wifi/WifiInfo;->getBSSID\(\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isMac2}"', + f"WifiInfo BSSID ➸❥ {C.OG}{isMac2}" + ), + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/net/wifi/WifiInfo;->getMacAddress\(\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isMac3}"', + f"WifiInfo MacAddress ➸❥ {C.OG}{isMac3}" + ), + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/bluetooth/BluetoothDevice;->getAddress\(\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isMac4}"', + f"BluetoothDevice Address ➸❥ {C.OG}{isMac4}" + ), + + # ---------------- Telephony Manager ---------------- + ( + r'(invoke-virtual \{[^\}]*\}, Landroid/telephony/TelephonyManager;->getDeviceId\(\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isIMEI}"', + f"IMEI NO (Device ID) ➸❥ {C.OG}{isIMEI}" + ), + + # ---------------- Fix Play ---------------- + ( + r'(invoke-interface \{[^\}]*\}, Lcom/google/android/vending/licensing/Policy;->allowAccess\(\)Z[^>]*?\s+)move-result ([pv]\d+)', + r'\1const/4 \2, 0x1', + "Bypass Client-Side LVL (allowAccess)" + ), + ( + r'(\.method [^(]*connectToLicensingService\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "connectToLicensingService" + ), + ( + r'(\.method [^(]*initializeLicenseCheck\(\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "initializeLicenseCheck" + ), + ( + r'(\.method [^(]*processResponse\(ILandroid/os/Bundle;\)V\s+.locals \d+)[\s\S]*?(\s+return-void\n.end method)', + r'\1\2', + "processResponse" + ) + ] + + if isID: + # ---------------- Custom Device ID ---------------- + patterns.append( + ( + r'(const-string [pv]\d+, "android_id"[^>]*?invoke-static \{[^\}]*\}, Landroid/provider/Settings\$Secure;->getString\(Landroid/content/ContentResolver;Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{isID}"', + f"Custom Android ID ➸❥ {C.OG}{isID}" + ) + ) + else: + patterns.append( + ( + r'(const-string [pv]\d+, "android_id"[^>]*?invoke-static \{[^\}]*\}, Landroid/provider/Settings\$Secure;->getString\(Landroid/content/ContentResolver;Ljava/lang/String;\)Ljava/lang/String;[^>]*?)move-result-object ([pv]\d+)', + rf'\1const-string \2, "{device_id}"', + f"Random Android ID ➸❥ {C.OG}{device_id}" + ) + ) + + Target_Regex = [p[0] for p in patterns] + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + if file.endswith('.smali'): + Smali_Paths.append(M.os.path.join(root, file)) + + try: + # ---------------- Multi Threading ---------------- + with M.Manager() as MT: + Count = MT.Value('i', 0); Lock = MT.Lock() + with M.Pool(M.cpu_count()) as PL: + Match_Smali = [path for path in PL.starmap(Regex_Scan, [(Smali_Path, Target_Regex, Count, Lock) for Smali_Path in Smali_Paths]) if path] + + except Exception: + # ---------------- Single Threading ---------------- + Count = [0] + for Smali_Path in Smali_Paths: + result = Regex_Scan(Smali_Path, Target_Regex, Count, None) + + if result: + Match_Smali.append(result) + + print(f" {C.G} ✔", flush=True) + + print(f'\n{C_Line}\n') + + if Match_Smali: + for pattern, replacement, description in patterns: + + Count_Applied = 0 + + Applied_Files = set() + + for file_path in Match_Smali: + + content = open(file_path, 'r', encoding='utf-8', errors='ignore').read() + + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + if file_path not in Applied_Files: + Applied_Files.add(file_path) + + Count_Applied += 1 + + open(file_path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + if Count_Applied > 0: + print(f"\n{C.S} Tag {C.E} {C.G}{description}") + + print(f"\n{C.S} Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}") + + for file_path in Applied_Files: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{M.os.path.basename(file_path)} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{Count_Applied} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) \ No newline at end of file diff --git a/ApkPatcher/Patch/TG_Patch.py b/ApkPatcher/Patch/TG_Patch.py new file mode 100644 index 0000000..f0dfd01 --- /dev/null +++ b/ApkPatcher/Patch/TG_Patch.py @@ -0,0 +1,490 @@ +# TG Patch Inspired By AbhiTheM0dder Script + +# Link - https://github.com/AbhiTheModder/termux-scripts/blob/main/tgpatcher.py + +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() +from ApkPatcher.Utils.Files_Check import FileCheck + +F = FileCheck(); F.Set_Path() + +C_Line = f"{C.CC}{'_' * 61}" + + +# ---------------- Regex Scan ---------------- +def Regex_Scan(Smali_Path, Target_Regex, Count, Lock): + + Smali = open(Smali_Path, 'r', encoding='utf-8', errors='ignore').read() + + Regexs = [M.re.compile(r) for r in Target_Regex] + + matched_idx = [] + + for idx, Regex in enumerate(Regexs): + if Regex.search(Smali): + matched_idx.append(idx) + + if matched_idx: + if Lock: + try: + with Lock: + Count.value += 1 + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count.value}", end='', flush=True) + except Exception: + return None + else: + Count[0] += 1 + print(f"\r{C.S} Find Target Smali {C.E} {C.OG}➸❥ {C.PN}{Count[0]}", end='', flush=True) + + return (Smali_Path, matched_idx) + + +# ---------------- TG Smali Patch ---------------- +def TG_Smali_Patch(decompile_dir, smali_folders, isAPKEditor): + + Smali_Paths, Smali_Files, Match_Smali = [], [], [] + + Target_Smali = [ + "TextCell.smali", + "UserConfig.smali", + "StoryViewer.smali", + "PhotoViewer.smali", + "AndroidUtilities.smali", + "TranslateAlert2.smali", + "MessageObject.smali", + "StoriesController.smali", + "MessagesStorage.smali", + "FileLoadOperation.smali", + "FlagSecureReason.smali", + "SecretMediaViewer.smali", + "MessagesController.smali", + "PaymentFormActivity.smali", + "PremiumPreviewFragment.smali", + "ProfileActivity$SearchAdapter.smali", + "PremiumPreviewFragment$Adapter.smali", + "ConnectionsManager$GoogleDnsLoadTask.smali", + "ConnectionsManager$ResolveHostByNameTask.smali" + ] + + + # ---------------- is scan Patterns ---------------- + scanPatterns = [ + # ---------------- Bypass SS ---------------- + ( + r'(iget-boolean ([pv]\d+), [pv]\d+, Lorg/telegram/ui/[^;]+;->allowScreenshots:Z)', + r'\1\nconst \2, 0x1', + "Bypass Anti-Screen ", + [] + ), + ( + r'(sget-boolean ([pv]\d+), Lorg/telegram/messenger/SharedConfig;->allowScreenCapture:Z)', + r'\1\nconst \2, 0x1', + "Bypass Anti-Screen ", + [] + ), + + # ---------------- Access Banned Channels [Related] ---------------- + ( + r'(iget-boolean ([pv]\d+), [pv]\d+, Lorg/telegram/[^;]+;->isRestrictedMessage:Z)', + r'\1\n\tconst \2, 0x0', + "Access Banned Channels [Related]", + [] + ), + + # ---------------- Enabling Saving Media Everywhere ---------------- + ( + r'(iget-boolean ([pv]\d+), [pv]\d+, Lorg/telegram/[^;]+;->noforwards:Z)', + r'\1\n\tconst \2, 0x0', + "enableSavingMedia", + [] + ), + + # ---------------- make premiumLocked bool false ---------------- + ( + r'(iget-boolean ([pv]\d+), [pv]\d+, Lorg/telegram/[^;]+;->premiumLocked:Z)', + r'\1\n\tconst \2, 0x0', + "premiumLocked ➢ False", + [] + ) + ] + + + # ---------------- is smali Patterns ( only For Target_Smali ) ---------------- + smaliPatterns = [ + # ---------------- Bypass SS ---------------- + ( + r'(const/16 [pv]\d+, 0x)200(0\s+(.line \d+\s+)*?invoke-virtual \{[^\}]*\}, Landroid/view/Window;->(?:add|set|clear)Flags\((?:I|II)\)V)', + r'\1\2', + "Bypass Anti-Screen <(add|set|clear)Flags>", + None + ), + ( + r'(const/16 [pv]\d+, 0x)200(0\n)', + r'\1\2', + "Bypass Anti-Screen <0x2000>", + ["AndroidUtilities.smali", "TranslateAlert2.smali", "StoryViewer.smali", "PaymentFormActivity.smali"] + ), + ( + r'(invoke-static \{[^\}]*\}, L[^\(]+;->isSecuredNow\(Landroid/view/Window;\)Z\s+(.line \d+\s+)*?move-result [pv]\d+\s+(.line \d+\s+)*?const/16 ([pv]\d+),) 0x2000', + r'\1 0x0', + "Bypass Anti-Screen ", + "FlagSecureReason.smali" + ), + ( + r'(\s+or-int/lit16 [pv]\d+, [pv]\d+,) 0x2000', + r'\1 0x0', + "Bypass Anti-Screen ", + ["PhotoViewer.smali", "SecretMediaViewer.smali"] + ), + ( + r'(invoke-virtual \{([pv]\d+), ([pv]\d+)\}, Landroid/view/SurfaceView;->setSecure\(Z\)V)', + r'const/4 \3, 0x0\n\n\t\1', + "Bypass Anti-Screen ", + "StoryViewer.smali" + ), + + # ---------------- Disable Signature Verification ---------------- + ( + r'(\.method public static getCertificateSHA256Fingerprint\(\)Ljava/lang/String;\n)[\S\s+]*?(\n.end method)', + r'\1\t.locals 1\n' + r' const-string v0, "49C1522548EBACD46CE322B6FD47F6092BB745D0F88082145CAF35E14DCC38E1"\n' + r' return-object v0\2', + "Disable Signature Verification", + "AndroidUtilities.smali" + ), + + # ---------------- markStoryAsRead ---------------- + ( + r'(\.method public markStoryAsRead\((JLorg/telegram/tgnet/tl/TL_stories\$StoryItem;|Lorg/telegram/tgnet/tl/TL_stories\$PeerStories;Lorg/telegram/tgnet/tl/TL_stories\$StoryItem;Z)\)Z\n)[\S\s+]*?(\s+return ([pv]\d+)\n.end method)', + r'\1\t.locals 4\n\tconst/4 \4, 0x0\3', + "markStoryAsRead", + "StoriesController.smali" + ), + + # ---------------- Premium ---------------- + ( + r'(\.method (?:private|public final) isPremium\(J\)Z\n)[\S\s+]*?(\n.end method)', + r'\1\t.locals 3\n\tconst/4 p1, 0x1\n\treturn p1\2', + "isPremium ➢ StoriesController", + "StoriesController.smali" + ), + ( + r'(\.method public isPremium\(\)Z\n)[\S\s]*?(\n.end method)', + r'\1\t.locals 1\n\tconst/4 v0, 0x1\n\treturn v0\2', + "isPremium ➢ UserConfig", + "UserConfig.smali" + ), + ( + r'(\.method (?:private|public final) isPremiumFeatureAvailable\(I\)Z\n(?:(?!\.end method)[\s\S])*?const/4 v1,) 0x0([\S\s+]*?\n.end method)', + r'\1 0x1\2', + "isPremiumFeatureAvailable", + "ProfileActivity$SearchAdapter.smali" + ), + ( + r'(\.method static synthetic access\$3000\(Lorg/telegram/ui/PremiumPreviewFragment;\)Z\n)(?:(?!\.end method)[\s\S])*?iget-boolean [pv]\d+, [pv]\d+, Lorg/telegram/ui/PremiumPreviewFragment;->forcePremium:Z[\S\s+]*?(\s+return ([pv]\d+)\n.end method)', + r'\1\t.locals 1\n\tconst/4 \3, 0x1\2', + "forcePremium", + "PremiumPreviewFragment.smali" + ), + + # ---------------- Secret Media Enable ---------------- + ( + r'(\.method public getSecretTimeLeft\(\)I\n(?:(?!\.end method)[\s\S])*?const/4 v1,) 0x0([\S\s+]*?\n.end method)', + r'\1 0x1\2', + "Secret Media Enable", + "MessageObject.smali" + ), + ( + r'(\.method public isSecretMedia\(\)Z\n(?:(?!\.end method)[\s\S])*?iget-object [pv]\d+, [pv]\d+, Lorg/telegram/messenger/MessageObject;->messageOwner:Lorg/telegram/tgnet/TLRPC\$Message;\s+instance-of [pv]\d+, [pv]\d+, Lorg/telegram/tgnet/TLRPC\$TL_message_secret;\s+)[\S\s+]*?(\n.end method)', + r'\1const/4 v3, 0x0\n\treturn v3\2', + "Secret Media Enable", + "MessageObject.smali" + ), + ( + r'(\.method public static isSecretPhotoOrVideo\(Lorg/telegram/tgnet/TLRPC\$Message;\)Z\n(?:(?!\.end method)[\s\S])*?instance-of [pv]\d+, [pv]\d+, Lorg/telegram/tgnet/TLRPC\$TL_message_secret;\s+)[\S\s+]*?(\n.end method)', + r'\1const/4 v2, 0x0\n\treturn v2\2', + "Secret Media Enable", + "MessageObject.smali" + ), + ( + r'(\.method public static isSecretMedia\(Lorg/telegram/tgnet/TLRPC\$Message;\)Z\n(?:(?!\.end method)[\s\S])*?instance-of [pv]\d+, [pv]\d+, Lorg/telegram/tgnet/TLRPC\$TL_message_secret;\s+)[\S\s+]*?(\n.end method)', + r'\1const/4 v2, 0x0\n\treturn v2\2', + "Secret Media Enable", + "MessageObject.smali" + ), + + # ---------------- isSponsored Check ---------------- + ( + r'(\.method public isSponsored\(\)Z\n)[\S\s]*?(\n.end method)', + r'\1\t.locals 3\n\tconst/4 v0, 0x0\n\treturn v0\2', + "isSponsored ➢ False", + "MessageObject.smali" + ), + ( + r'(\.method public isSponsoredDisabled\(\)Z\n)[\S\s]*?(\n.end method)', + r'\1\t.locals 3\n\tconst/4 v0, 0x1\n\treturn v0\2', + "isSponsoredDisabled ➢ True", + "MessagesController.smali" + ), + ( + r'(\.method private checkPromoInfoInternal\(Z\)V\n)[\S\s]*?(\n.end method)', + r'\1\t.locals 2\n\treturn-void\2', + "Remove Proxy Sponsored Channels", + "MessagesController.smali" + ), + + # ---------------- isChatNoForwards ---------------- + ( + r'(\.method public isChatNoForwards\((?:J|Lorg/telegram/tgnet/TLRPC\$Chat;)\)Z\n)[\S\s+]*?(\n.end method)', + r'\1\t.locals 3\n\tconst/4 p1, 0x0\n\treturn p1\2', + "isChatNoForwards ➢ forceForward", + "MessagesController.smali" + ), + + # ---------------- Access Banned Channels [Main] ---------------- + ( + r'(\.method public checkCanOpenChat\(Landroid/os/Bundle;Lorg/telegram/ui/ActionBar/BaseFragment;.*\)Z\n)[\S\s]*?(\n.end method)', + r'\1\t.locals 3\n\tconst/4 p1, 0x1\n\treturn p1\2', + "Access Banned Channels [Main]", + "MessagesController.smali" + ), + + # ---------------- dnsBooster ( ResolveHostByNameTask ) ---------------- + ( + r'"dns.google.com"', + r'"one.one.one.one"', + "+ CloudFlare DNS", + "ConnectionsManager$ResolveHostByNameTask.smali" + ), + ( + r'"https://www.google.com/resolve\?name="', + r'"https://cloudflare-dns.com/dns-query?name="', + "+ CloudFlare DNS Resolver", + "ConnectionsManager$ResolveHostByNameTask.smali" + ), + ( + r'(invoke-virtual \{[pv]\d+, ([pv]\d+), ([pv]\d+)\}, Ljava/net/URLConnection;->addRequestProperty\(Ljava/lang/String;Ljava/lang/String;\)V)(\s+(.line \d+\s+)*?const/16 [pv]\d+, 0x3e8)', + r'\1\n' + r' const-string \2, "accept"\n' + r' const-string \3, "application/dns-json"\n' + r' \1' + r' \4', + "+ CloudFlare Header", + "ConnectionsManager$ResolveHostByNameTask.smali" + ), + + # ---------------- dnsBooster ( GoogleDnsLoadTask ) ---------------- + ( + r'"https://dns.google.com/resolve\?name="', + r'"https://cloudflare-dns.com/dns-query?name="', + "+ CloudFlare DNS Resolver", + "ConnectionsManager$GoogleDnsLoadTask.smali" + ), + ( + r'("&type=)ANY(&random_padding=")', + r'\1TXT\2', + "DNS Type ANY To TXT", + "ConnectionsManager$GoogleDnsLoadTask.smali" + ), + ( + r'(invoke-virtual \{[pv]\d+, ([pv]\d+), ([pv]\d+)\}, Ljava/net/URLConnection;->addRequestProperty\(Ljava/lang/String;Ljava/lang/String;\)V)', + r'\1\n' + r' const-string \2, "accept"\n' + r' const-string \3, "application/dns-json"\n' + r' \1', + "+ CloudFlare Header", + "ConnectionsManager$GoogleDnsLoadTask.smali" + ), + + # ---------------- updateParams ---------------- + ( + r'(\.method private updateParams\(\)V\n(?:(?!\.end method)[\s\S])*?const/high16 v0,) 0x20000((?:(?!\.end method)[\s\S])*?)const/4 v0, 0x4([\S\s+]*?\n.end method)', + r'\1 0x80000\2const/16 v0, 0x8\3', + "updateParams ➢ SpeedBoost", + "FileLoadOperation.smali" + ), + + # ---------------- markMessagesAsDeleted ---------------- + ( + r'(\.method public markMessagesAsDeleted\(JIZZ\)Ljava/util/ArrayList;\s+\.locals \d+(\s+\.annotation[\s\S]*?.end annotation)?)', + r'\1\n' + r' sget-boolean v0, Lorg/telegram/abhi/Hook;->candelMessages:Z\n' + r' if-eqz v0, :cond_7\n' + r' const/4 p1, 0x0\n' + r' return-object p1\n' + r' :cond_7', + "markMessagesAsDeleted", + "MessagesStorage.smali" + ), + ( + r'(\.method public markMessagesAsDeleted\(JLjava/util/ArrayList;ZZII\)Ljava/util/ArrayList;\s+\.locals \d+(\s+\.annotation[\s\S]*?.end annotation)?)', + r'\1\n' + r' sget-boolean v0, Lorg/telegram/abhi/Hook;->candelMessages:Z\n' + r' if-eqz v0, :cond_7\n' + r' const/4 v1, 0x0\n' + r' return-object v1\n' + r' :cond_7', + "markMessagesAsDeleted", + "MessagesStorage.smali" + ), + + # ---------------- add setTextAndCheck_2 Method ---------------- + ( + r'((\.method public setTextAndCheck)(\(Ljava/lang/CharSequence;ZZ\)V[\S\s]*?)(\s+return-void\n.end method\n))', + r'\1\n\2_2\3\n' + r' invoke-virtual {p0}, Landroid/view/View;->getContext()Landroid/content/Context;\n' + r' move-result-object v1\n' + r' const-string v0, "Turned off"\n' + r' if-eqz p2, :cond_48\n' + r' const-string v0, "Turned on"\n' + r' :cond_48\n' + r' invoke-static {v1, v0, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;\n' + r' move-result-object v0\n' + r' invoke-virtual {v0}, Landroid/widget/Toast;->show()V\n' + r' if-eqz p2, :cond_55\n' + r' invoke-static {}, Lorg/telegram/abhi/Hook;->hook()V\n' + r' goto :goto_58\n' + r' :cond_55\n' + r' invoke-static {}, Lorg/telegram/abhi/Hook;->unhook()V\n' + r' :goto_58\n\4', + "add setTextAndCheck_2 Method", + "TextCell.smali" + ), + + # ---------------- Anti-Delete Messages ---------------- + ( + r'(invoke-virtual \{.*\}, Lorg/telegram/ui/Cells/TextCell;->setTextAndCheck)(\(Ljava/lang/CharSequence;ZZ\)V)', + r'\1_2\2', + "Rename setTextAndCheck_2", + "PremiumPreviewFragment$Adapter.smali" + ), + ( + r'sget ([pv]\d+), Lorg/telegram/messenger/R\$string;->ShowAds:I\s+(invoke-static \{.*\}, Lorg/telegram/messenger/LocaleController;->getString\(I\)Ljava/lang/String;\s+move-result-object [pv]\d+)', + r'const-string \1, "Do Not Delete Messages"', + "Do Not Delete Messages", + "PremiumPreviewFragment$Adapter.smali" + ), + ( + r'sget ([pv]\d+), Lorg/telegram/messenger/R\$string;->ShowAdsInfo:I\s+(invoke-static \{.*\}, Lorg/telegram/messenger/LocaleController;->getString\(I\)Ljava/lang/String;\s+move-result-object [pv]\d+)', + r'const-string \1, "After enabling or disabling the feature, ensure you revisit this page for the changes to take effect.\\nMod by Abhi"', + "Mod by Abhi", + "PremiumPreviewFragment$Adapter.smali" + ), + ( + r'sget ([pv]\d+), Lorg/telegram/messenger/R\$string;->ShowAdsTitle:I\s+(invoke-static \{.*\}, Lorg/telegram/messenger/LocaleController;->getString\(I\)Ljava/lang/String;\s+move-result-object [pv]\d+)', + r'const-string \1, "Anti-Delete Messages"\n' + r' invoke-virtual {v1, \1}, Lorg/telegram/ui/Cells/HeaderCell;->setText(Ljava/lang/CharSequence;)V\n' + r' return-void', + "Anti-Delete Messages", + "PremiumPreviewFragment$Adapter.smali" + ) + ] + + Target_Regex = [p[0] for p in scanPatterns] + + for smali_folder in smali_folders: + for root, _, files in M.os.walk(smali_folder): + for file in files: + full_path = M.os.path.join(root, file) + if file.endswith('.smali'): + Smali_Paths.append(full_path) + if file in Target_Smali: + Smali_Files.append(full_path) + + try: + # ---------------- Multiple Threading ---------------- + with M.Manager() as MT: + Count = MT.Value('i', 0); Lock = MT.Lock() + with M.Pool(M.cpu_count()) as PL: + Match_Smali = [path for path in PL.starmap(Regex_Scan, [(Smali_Path, Target_Regex, Count, Lock) for Smali_Path in Smali_Paths]) if path] + + except Exception: + # ---------------- Single Threading ---------------- + Count = [0] + for Smali_Path in Smali_Paths: + result = Regex_Scan(Smali_Path, Target_Regex, Count, None) + + if result: + Match_Smali.append(result) + + print(f" {C.G} ✔\n", flush=True) + + print(f"\n{C.X}{C.C} TG Patch, Script by {C.OG}🇮🇳 AbhiTheM0dder 🇮🇳") + + print(f'\n{C_Line}\n') + + allPatterns = scanPatterns + smaliPatterns + + isMatched = {} + + for is_Path, is_idx in Match_Smali: + if isinstance(is_idx, list): # Multi Match in Single Smali + for index in is_idx: + isMatched.setdefault(index, set()).add(is_Path) + else: + isMatched.setdefault(is_idx, set()).add(is_Path) + + for idx, (pattern, replacement, description, target_files) in enumerate(allPatterns): + + count_applied = 0 + applied_files= set() + + if target_files: + Map_Smali = set() + for Path in Smali_Files: + if isinstance(target_files, list): # Multi Smali + if M.os.path.basename(Path) in target_files: + Map_Smali.add(Path) + else: + if M.os.path.basename(Path) == target_files: + Map_Smali.add(Path) + else: + + if target_files is None: + Map_Smali = {X for X, _ in Match_Smali} + else: + Map_Smali = isMatched.get(idx, set()) + + for File_Path in Map_Smali: + content = open(File_Path, 'r', encoding='utf-8', errors='ignore').read() + + new_content = M.re.sub(pattern, replacement, content) + + if new_content != content: + applied_files.add(File_Path) + + count_applied += 1 + + open(File_Path, 'w', encoding='utf-8', errors='ignore').write(new_content) + + if count_applied > 0: + print(f"\n{C.S} Tag {C.E} {C.G}{description}") + print(f"\n{C.S} Pattern {C.E} {C.OG}➸❥ {C.P}{pattern}") + + for File_Path in applied_files: + print(f"{C.G} |\n └──── {C.CC}~{C.G}$ {C.Y}{M.os.path.basename(File_Path)} {C.G} ✔") + + print( + f"\n{C.S} Pattern Applied {C.E} {C.OG}➸❥ {C.PN}{count_applied} {C.C}Time/Smali {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + Hook_Smali(decompile_dir, isAPKEditor) + + +# ---------------- Hook Smali ---------------- +def Hook_Smali(decompile_dir, isAPKEditor): + + targetSmali_Dir = M.os.path.join(decompile_dir, + *( + ['smali', 'classes'] if isAPKEditor else ['smali'] + ) + ) + + Target_Dest = M.os.path.join(targetSmali_Dir, "org", "telegram", "abhi", 'Hook.smali') + + M.os.makedirs(M.os.path.dirname(Target_Dest), exist_ok=True) + + M.shutil.copy(F.Hook_Smali, Target_Dest) + + print(f"\n{C.S} Generate {C.E} {C.G}Hook.smali {C.OG}➸❥ {C.Y}{M.os.path.relpath(Target_Dest, decompile_dir)} {C.G} ✔\n") \ No newline at end of file diff --git a/ApkPatcher/Patch/__init__.py b/ApkPatcher/Patch/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ApkPatcher/Utils/Anti_Splits.py b/ApkPatcher/Utils/Anti_Splits.py new file mode 100644 index 0000000..f9708d9 --- /dev/null +++ b/ApkPatcher/Utils/Anti_Splits.py @@ -0,0 +1,62 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from .Files_Check import FileCheck + +F = FileCheck(); F.Set_Path() + +C_Line = f"{C.CC}{'_' * 61}" + +Merge_Ext = ['.apks', '.apkm', '.xapk'] + + +# ---------------- Anti Split ---------------- +def Anti_Split(apk_path, isMerge, isCoreX): + + base_name, Ext = M.os.path.splitext(apk_path) + + if apk_path and isCoreX and M.os.path.splitext(apk_path)[-1].lower() not in Merge_Ext: + exit(f"\n{C.X}{C.C} Only Supported Extensions {C.G}{Merge_Ext} with {C.OG}CoreX\n") + + if Ext in Merge_Ext: + output_path = f"{base_name.replace(' ', '_')}.apk" + + print( + f"{C_Line}\n\n" + f"\n{C.X}{C.C} Anti-Split Start..." + ) + + print( + f"{C.G} |\n └──── {C.CC}Decompiling ~{C.G}$ java -jar {M.os.path.basename(F.APKEditor_Path)} m -i {apk_path} -f -o {output_path}" + + (" -extractNativeLibs true" if isCoreX else "") + + f"\n\n{C_Line}{C.G}\n" + ) + + cmd = ["java", "-jar", F.APKEditor_Path, "m", "-i", apk_path, "-f", "-o", output_path] + + if isCoreX: + cmd += ["-extractNativeLibs", "true"] + + try: + result = M.subprocess.run(cmd, check=True) + + print( + f"\n{C.X}{C.C} Anti-Split Successful {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + if isMerge: + exit(0) + + return output_path + + except M.subprocess.CalledProcessError as e: + exit(f"\n{C.ERROR} Anti-Split Failed ! ✘\n") + + if isMerge and Ext not in Merge_Ext: + exit( + f"\n{C.ERROR} Split ✘\n\n" + f"\n{C.INFO} {C.C} Only Supported Extensions {C.G}{Merge_Ext}\n" + ) + + return apk_path \ No newline at end of file diff --git a/ApkPatcher/Utils/CRC.py b/ApkPatcher/Utils/CRC.py new file mode 100644 index 0000000..a26d8a7 --- /dev/null +++ b/ApkPatcher/Utils/CRC.py @@ -0,0 +1,54 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + + +# ---------------- Format Time ---------------- +def Format_Time(timestamp): + return M.datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S") + + +# ---------------- CRC Fix ---------------- +def CRC_Fix(apk_path, build_dir, file_types): + + Logs = [] + + origin_entries, mod_entries = [ + { + entry.filename: (entry.CRC, entry.date_time) + for entry in M.zipfile.ZipFile(file_path, 'r').infolist() + if any(file_type in entry.filename for file_type in file_types) + } for file_path in (apk_path, build_dir) + ] + + binary_content = open(build_dir, 'rb').read() + + for filename, (origin_crc, origin_time) in origin_entries.items(): + if filename in mod_entries and origin_crc != mod_entries[filename][0]: + origin_crc_bytes = origin_crc.to_bytes(4, 'little') + + mod_crc_bytes = mod_entries[filename][0].to_bytes(4, 'little') + + binary_content = binary_content.replace(mod_crc_bytes, origin_crc_bytes) + + Logs.append( + ( + filename, + f"{origin_crc:08x}", + f"{mod_entries[filename][0]:08x}", + Format_Time(M.datetime(*origin_time).timestamp()), + Format_Time(M.datetime(*mod_entries[filename][1]).timestamp()) + ) + ) + + open(build_dir, 'wb').write(binary_content) + + print(f"\n{'':20}✨ {C.G}CRCFix by {C.OG}Kirlif{C.G}' ✨\n") + + print(f"{C.C}{'File Name':<22}{'CRC':<12}{'FIX':<12}{'Modified'}") + + for e in Logs: + print(f"\n{C.G}{e[0]:<22}{e[1]}{'':<4}{e[2]}{'':<4}{e[4]}\n") + + print(f"{C.CC}{'_' * 61}\n\n") + + return build_dir \ No newline at end of file diff --git a/ApkPatcher/Utils/Credits.py b/ApkPatcher/Utils/Credits.py new file mode 100644 index 0000000..712dc83 --- /dev/null +++ b/ApkPatcher/Utils/Credits.py @@ -0,0 +1,28 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() + + +# ---------------- Credits ---------------- +def Credits(): + exit(f""" + 💢 Credit 💢 + +{C.S} Flutter SSL & TG Patch {C.E}{C.G} 🇮🇳 AbhiTheM0dder 🇮🇳 {C.S}{C.P} @AbhiTheM0dder {C.E} + +{C.S} Pine Hook {C.E}{C.G} 🇮🇳 AbhiTheM0dder 🇮🇳 | 残页 {C.S}{C.P} @AbhiTheM0dder | @canyie {C.E} + +{C.S} MITM {C.E}{C.G} Niklas Higi {C.S}{C.P} https://github.com/shroudedcode/apk-mitm {C.E} + +{C.S} APKTool {C.E}{C.G} Connor Tumbleson {C.S}{C.P} @iBotPeaches {C.E} + +{C.S} APKEditor {C.E}{C.G} REAndroid {C.S}{C.P} @kikfox {C.E} + +{C.S} Uber-Apk-Signer {C.E}{C.G} Patrick Favre {C.S}{C.P} @patrickfav {C.E} + +{C.S} My Channel {C.E}{C.CC} 🇮🇳 ࿗ {C.OG}T̴͢͢e̴͢͢c̴͢͢h̴͢͢n̴͢͢o̴͢͢ {C.B}☣{C.G} I̴͢͢n̴͢͢d̴͢͢i̴͢͢a̴͢͢ {C.CC}࿗ 🇮🇳 {C.S}{C.P} @rktechnoindians {C.E} + +{C.S} CREATOR {C.E}{C.G} 𓄂 Ꭱꫝℑ 𓆐 ︻デ═一 ࿗ Я͓̽K͓̽ ࿗ {C.S}{C.P} @RK_TECHNO_INDIA {C.E} + + +{C.S} NOTE {C.E} {C.Y} Please Maintain Our Credits. 🙏🙏 + + """) \ No newline at end of file diff --git a/ApkPatcher/Utils/Decompile_Compile.py b/ApkPatcher/Utils/Decompile_Compile.py new file mode 100644 index 0000000..4d43799 --- /dev/null +++ b/ApkPatcher/Utils/Decompile_Compile.py @@ -0,0 +1,185 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from .Files_Check import FileCheck; + +F = FileCheck(); F.Set_Path(); F.isEmulator() + +C_Line = f"{C.CC}{'_' * 61}" + +SUGGEST = ( + f"{C_Line}\n\n" + f"\n{C.SUGGEST} Try With APKEditor, Flag {C.OG}-a" + f"\n |\n └──── {C.CC}~ Ex. {C.G}$ {C.OG}ApkPatcher {C.Y}{' '.join(M.sys.argv[1:])} {C.OG}-a\n" +) + + +# ---------------- Decompile APK ---------------- +def Decompile_Apk(apk_path, decompile_dir, isEmulator, isAPKEditor, isAES, isAlgorithm, isPine_Hook, Package_Name): + + APKTool_Path = F.APKTool_Path_E if isEmulator else F.APKTool_Path + + AA = f"{'APKEditor' if isAPKEditor else 'APKTool'}" + + print( + f"\n{C_Line}\n\n" + f"\n{C.X}{C.C} Decompile APK with {AA}..." + ) + + if isAPKEditor: + cmd = ["java", "-jar", F.APKEditor_Path, "d", "-i", apk_path, "-o", decompile_dir, "-f", "-no-dex-debug", "-dex-lib", "jf"] + + if isPine_Hook: + cmd += ["-dex"] + + print( + f"{C.G} |\n └──── {C.CC}Decompiling ~{C.G}$ java -jar {M.os.path.basename(F.APKEditor_Path)} d -i {apk_path} -o {M.os.path.basename(decompile_dir)} -f -no-dex-debug -dex-lib jf\n" + f"\n{C_Line}{C.G}\n" + ) + + else: + cmd = ["java", "-jar", APKTool_Path, "d", apk_path, "-o", decompile_dir, "-p", decompile_dir, "-f"] + + if isAES or isAlgorithm: + cmd += ["--no-debug-info"] + + if isPine_Hook: + cmd += ["-s"] + + print( + f"{C.G} |\n └──── {C.CC}Decompiling ~{C.G}$ java -jar {M.os.path.basename(APKTool_Path)} d {apk_path} -o {M.os.path.basename(decompile_dir)} -f\n" + f"\n{C_Line}{C.G}\n" + ) + + try: + M.subprocess.run(cmd, check=True) + + print( + f"\n{C.X}{C.C} Decompile Successful {C.G} ✔\n" + f"\n{C_Line}\n\n" + ) + + except M.subprocess.CalledProcessError: + M.shutil.rmtree(decompile_dir) + + print(f"\n{C.ERROR} Decompile {Package_Name}.apk Failed with {AA} ✘\n") + + if not isAPKEditor: + print(SUGGEST) + + exit(1) + + +# ---------------- Recompile APK ---------------- +def Recompile_Apk(decompile_dir, apk_path, build_dir, isEmulator, isAPKEditor, Package_Name): + + APKTool_Path = F.APKTool_Path_E if isEmulator else F.APKTool_Path + + AA = f"{'APKEditor' if isAPKEditor else 'APKTool'}" + + print( + f"{C_Line}\n\n" + f"\n{C.X}{C.C} Recompile APK with {AA}..." + ) + + if isAPKEditor: + cmd = ["java", "-jar", F.APKEditor_Path, "b", "-i", decompile_dir, "-o", build_dir, "-f", "-dex-lib", "jf"] + + print( + f"{C.G} |\n └──── {C.CC}Recompiling ~{C.G}$ java -jar {M.os.path.basename(F.APKEditor_Path)} b -i {M.os.path.basename(decompile_dir)} -o {M.os.path.basename(build_dir)} -f -dex-lib jf\n" + f"\n{C_Line}{C.G}\n" + ) + + else: + original_directory = M.os.path.join(decompile_dir, "original") + + for item in M.os.listdir(original_directory): + if item != "META-INF": + + item_path = M.os.path.join(original_directory, item) + + if M.os.path.isdir(item_path): + M.shutil.rmtree(item_path) + else: + M.os.remove(item_path) + + cmd = ["java", "-jar", APKTool_Path, "b", decompile_dir, "-o", build_dir, "-p", decompile_dir, "-f", "--copy-original"] + + print( + f"{C.G} |\n └──── {C.CC}Recompiling ~{C.G}$ java -jar {M.os.path.basename(APKTool_Path)} b {M.os.path.basename(decompile_dir)} -o {M.os.path.basename(build_dir)} -f --copy-original\n" + f"\n{C_Line}{C.G}\n" + ) + + try: + M.subprocess.run(cmd, check=True) + + print( + f"\n{C.X}{C.C} Recompile Successful {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + except M.subprocess.CalledProcessError: + #M.shutil.rmtree(decompile_dir) + + print(f"\n{C.ERROR} Recompile {Package_Name}.apk Failed with {AA}... ✘\n") + + if not isAPKEditor: + print(SUGGEST) + + exit(1) + + if M.os.path.exists(build_dir): + print( + f"\n{C.S} APK Created {C.E} {C.OG}➸❥ {C.Y}{build_dir} {C.G} ✔\n" + f"\n{C_Line}\n" + ) + + M.shutil.rmtree(decompile_dir) + + +# ---------------- FixSigBlock ---------------- +def FixSigBlock(decompile_dir, apk_path, build_dir, rebuild_dir): + + M.os.rename(build_dir, rebuild_dir) + + sig_dir = decompile_dir.replace('_decompiled', '_SigBlock') + + for operation in ["d", "b"]: + cmd = ["java", "-jar", F.APKEditor_Path, operation, "-t", "sig", "-i", (apk_path if operation == "d" else rebuild_dir), "-f", "-sig", sig_dir] + + if operation == "b": + cmd.extend(["-o", build_dir]) + + M.subprocess.run(cmd, check=True, text=True, capture_output=True) + + M.shutil.rmtree(sig_dir) + + M.os.remove(rebuild_dir) + + +# ---------------- Sign APK ---------------- +def Sign_APK(build_dir): + + cmd = ["java", "-jar", F.Sign_Jar, "-a", build_dir, "--overwrite"] + + print(f"\n{C.X}{C.C} Signing APK...") + + print( + f"{C.G} |\n └──── {C.CC}Signing ~{C.G}$ java -jar {M.os.path.basename(F.Sign_Jar)} -a {build_dir} --overwrite\n" + f"\n{C_Line}{C.G}\n" + ) + + try: + M.subprocess.run(cmd, check=True) + + print(f"\n{C.X}{C.C} Sign Successful {C.G} ✔\n") + + idsig_file = build_dir + ".idsig" + + if M.os.path.exists(idsig_file): + M.os.remove(idsig_file) + + print(f'{C_Line}\n\n') + + except M.subprocess.CalledProcessError: + exit(f"\n{C.ERROR} Sign Failed ! ✘\n") \ No newline at end of file diff --git a/ApkPatcher/Utils/Files/AES.smali b/ApkPatcher/Utils/Files/AES.smali new file mode 100644 index 0000000..f95835e --- /dev/null +++ b/ApkPatcher/Utils/Files/AES.smali @@ -0,0 +1,436 @@ +.class public LRK_TECHNO_INDIA/AES; +.super Ljava/lang/Thread; +# static fields +.field private static final PARAMETER_BUFFER:Ljava/lang/ThreadLocal; +.field private static final QUEUE:Ljava/util/concurrent/LinkedBlockingQueue; +.field private static final TIME_FORMAT1:Ljava/text/SimpleDateFormat; +.field private static final TIME_FORMAT2:Ljava/text/SimpleDateFormat; +# direct methods +.method static constructor ()V + .registers 2 + new-instance v0, Ljava/text/SimpleDateFormat; + const-string v1, "HH:mm:ss.SSS" + invoke-direct {v0, v1}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + sput-object v0, LRK_TECHNO_INDIA/AES;->TIME_FORMAT1:Ljava/text/SimpleDateFormat; + new-instance v0, Ljava/text/SimpleDateFormat; + const-string v1, "yyyyMMddHHmmssSSS" + invoke-direct {v0, v1}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + sput-object v0, LRK_TECHNO_INDIA/AES;->TIME_FORMAT2:Ljava/text/SimpleDateFormat; + new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue; + invoke-direct {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->()V + sput-object v0, LRK_TECHNO_INDIA/AES;->QUEUE:Ljava/util/concurrent/LinkedBlockingQueue; + new-instance v0, Ljava/lang/ThreadLocal; + invoke-direct {v0}, Ljava/lang/ThreadLocal;->()V + sput-object v0, LRK_TECHNO_INDIA/AES;->PARAMETER_BUFFER:Ljava/lang/ThreadLocal; + new-instance v0, LRK_TECHNO_INDIA/AES; + invoke-direct {v0}, LRK_TECHNO_INDIA/AES;->()V + const/4 v1, 0x1 + invoke-virtual {v0, v1}, LRK_TECHNO_INDIA/AES;->setDaemon(Z)V + invoke-virtual {v0}, LRK_TECHNO_INDIA/AES;->start()V + return-void +.end method +.method public constructor ()V + .registers 1 + invoke-direct {p0}, Ljava/lang/Thread;->()V + return-void +.end method +.method public static a(Ljava/lang/Object;)V + .registers 2 + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->z(Ljava/lang/String;)V + return-void +.end method +.method public static b()V + .registers 2 + sget-object v0, LRK_TECHNO_INDIA/AES;->PARAMETER_BUFFER:Ljava/lang/ThreadLocal; + invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; + move-result-object v1 + check-cast v1, Ljava/lang/StringBuilder; + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v1 + invoke-static {v1}, LRK_TECHNO_INDIA/AES;->z(Ljava/lang/String;)V + invoke-virtual {v0}, Ljava/lang/ThreadLocal;->remove()V + return-void +.end method +.method public static b1(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐃𝐚𝐭𝐚 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static b2(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐃𝐚𝐭𝐚/𝐊𝐞𝐲 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static b3(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐈𝐕/𝐊𝐞𝐲 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static b4(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐏𝐚𝐫𝐚𝐦𝐞𝐭𝐞𝐫 4 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static b5(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐏𝐚𝐫𝐚𝐦𝐞𝐭𝐞𝐫 5 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static b6(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "𝐏𝐚𝐫𝐚𝐦𝐞𝐭𝐞𝐫 6 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method public static getInstance(Ljava/lang/Object;)V + .registers 3 + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + const-string v1, "\ud835\ude3e\ud835\ude5e\ud835\ude65\ud835\ude5d\ud835\ude5a\ud835\ude67 \ud835\ude3c\ud835\ude61\ud835\ude5c\ud835\ude64\ud835\ude67\ud835\ude5e\ud835\ude69\ud835\ude5d\ud835\ude62 ︻デ═一 " + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {p0}, LRK_TECHNO_INDIA/AES;->y(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v0 + invoke-static {v0}, LRK_TECHNO_INDIA/AES;->x(Ljava/lang/String;)V + return-void +.end method +.method private static x(Ljava/lang/String;)V + .registers 4 + sget-object v0, LRK_TECHNO_INDIA/AES;->PARAMETER_BUFFER:Ljava/lang/ThreadLocal; + invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; + move-result-object v1 + check-cast v1, Ljava/lang/StringBuilder; + if-nez v1, :cond_13 + new-instance v2, Ljava/lang/StringBuilder; + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + move-object v1, v2 + invoke-virtual {v0, v1}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V + :cond_13 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I + move-result v0 + if-lez v0, :cond_1e + const/16 v0, 0xa + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + :cond_1e + invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + return-void +.end method + +.method private static y(Ljava/lang/Object;)Ljava/lang/String; + .registers 3 + if-nez p0, :cond_5 + const-string v0, "null" + return-object v0 + :cond_5 + invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + move-result-object v0 + invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z + move-result v1 + if-eqz v1, :cond_77 + const-class v1, [B + if-ne v0, v1, :cond_1b + move-object v1, p0 + check-cast v1, [B + invoke-static {v1}, Ljava/util/Arrays;->toString([B)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_1b + const-class v1, [S + if-ne v0, v1, :cond_27 + move-object v1, p0 + check-cast v1, [S + invoke-static {v1}, Ljava/util/Arrays;->toString([S)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_27 + const-class v1, [I + if-ne v0, v1, :cond_33 + move-object v1, p0 + check-cast v1, [I + invoke-static {v1}, Ljava/util/Arrays;->toString([I)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_33 + const-class v1, [J + if-ne v0, v1, :cond_3f + move-object v1, p0 + check-cast v1, [J + invoke-static {v1}, Ljava/util/Arrays;->toString([J)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_3f + const-class v1, [C + if-ne v0, v1, :cond_4b + move-object v1, p0 + check-cast v1, [C + invoke-static {v1}, Ljava/util/Arrays;->toString([C)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_4b + const-class v1, [F + if-ne v0, v1, :cond_57 + move-object v1, p0 + check-cast v1, [F + invoke-static {v1}, Ljava/util/Arrays;->toString([F)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_57 + const-class v1, [D + if-ne v0, v1, :cond_63 + move-object v1, p0 + check-cast v1, [D + invoke-static {v1}, Ljava/util/Arrays;->toString([D)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_63 + const-class v1, [Z + if-ne v0, v1, :cond_6f + move-object v1, p0 + check-cast v1, [Z + invoke-static {v1}, Ljava/util/Arrays;->toString([Z)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_6f + move-object v1, p0 + check-cast v1, [Ljava/lang/Object; + invoke-static {v1}, Ljava/util/Arrays;->deepToString([Ljava/lang/Object;)Ljava/lang/String; + move-result-object v1 + return-object v1 + :cond_77 + invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String; + move-result-object v1 + return-object v1 +.end method +.method private static z(Ljava/lang/String;)V + .registers 8 + const-string v0, "================== \ud83c\uddee\ud83c\uddf3 \ud835\ude3f\ud835\ude5a\ud835\ude58\ud835\ude67\ud835\ude6e\ud835\ude65\ud835\ude69\ud835\ude5a\ud835\ude59 \ud835\ude3d\ud835\ude6e \ud835\ude4f\ud835\ude5a\ud835\ude58\ud835\ude5d\ud835\ude63\ud835\ude64 \ud835\ude44\ud835\ude63\ud835\ude59\ud835\ude5e\ud835\ude56 \ud83c\uddee\ud83c\uddf3 ==================\n\n[RESULT]\n\n" + const-string v1, "[TIME]" + invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z + move-result v2 + if-eqz v2, :cond_1c + sget-object v2, LRK_TECHNO_INDIA/AES;->TIME_FORMAT1:Ljava/text/SimpleDateFormat; + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + move-result-wide v3 + invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + move-result-object v3 + invoke-virtual {v2, v3}, Ljava/text/SimpleDateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v2 + invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v0 + :cond_1c + new-instance v1, Ljava/lang/Throwable; + invoke-direct {v1}, Ljava/lang/Throwable;->()V + invoke-virtual {v1}, Ljava/lang/Throwable;->getStackTrace()[Ljava/lang/StackTraceElement; + move-result-object v1 + const/4 v2, 0x2 + aget-object v1, v1, v2 + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getFileName()Ljava/lang/String; + move-result-object v2 + if-nez v2, :cond_30 + const-string v2, "Unknown Source" + :cond_30 + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getLineNumber()I + move-result v3 + if-ltz v3, :cond_4a + new-instance v4, Ljava/lang/StringBuilder; + invoke-direct {v4}, Ljava/lang/StringBuilder;->()V + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + const-string v5, ":" + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v2 + :cond_4a + const-string v4, "[RESULT]" + invoke-virtual {v0, v4, p0}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v4 + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String; + move-result-object v5 + const-string v6, "[CLASS]" + invoke-virtual {v4, v6, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v4 + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String; + move-result-object v5 + const-string v6, "[METHOD]" + invoke-virtual {v4, v6, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v4 + const-string v5, "[LOCATION]" + invoke-virtual {v4, v5, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v0 + sget-object v4, LRK_TECHNO_INDIA/AES;->QUEUE:Ljava/util/concurrent/LinkedBlockingQueue; + invoke-virtual {v4, v0}, Ljava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z + return-void +.end method +# virtual methods +.method public run()V + .registers 10 + const/4 v0, 0x0 + const-string v1, "[SDCARD]/MT2/logs/[PACKAGE]-[TIME].json" + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; + move-result-object v2 + invoke-virtual {v2}, Ljava/io/File;->getPath()Ljava/lang/String; + move-result-object v2 + const-string v3, "[SDCARD]" + invoke-virtual {v1, v3, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v1 + const-string v2, "[PACKAGE]" + const-string v3, "PACKAGENAME" + invoke-virtual {v1, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v1 + sget-object v2, LRK_TECHNO_INDIA/AES;->TIME_FORMAT2:Ljava/text/SimpleDateFormat; + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + move-result-wide v3 + invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + move-result-object v3 + invoke-virtual {v2, v3}, Ljava/text/SimpleDateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v2 + const-string v3, "[TIME]" + invoke-virtual {v1, v3, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v1 + const/16 v2, 0x5c + const/16 v3, 0x2f + invoke-virtual {v1, v2, v3}, Ljava/lang/String;->replace(CC)Ljava/lang/String; + move-result-object v2 + const-string v3, "//" + const-string v4, "/" + invoke-virtual {v2, v3, v4}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + move-result-object v1 + const/4 v2, 0x0 + :try_start_3e + new-instance v3, Ljava/io/File; + invoke-direct {v3, v1}, Ljava/io/File;->(Ljava/lang/String;)V + invoke-virtual {v3}, Ljava/io/File;->getParentFile()Ljava/io/File; + move-result-object v4 + if-eqz v4, :cond_4c + invoke-virtual {v4}, Ljava/io/File;->mkdirs()Z + :cond_4c + new-instance v5, Ljava/io/FileOutputStream; + const/4 v6, 0x1 + invoke-direct {v5, v3, v6}, Ljava/io/FileOutputStream;->(Ljava/io/File;Z)V + :try_end_52 + .catch Ljava/io/IOException; {:try_start_3e .. :try_end_52} :catch_54 + move-object v0, v5 + goto :goto_59 + :catch_54 + move-exception v3 + invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V + move-object v2, v3 + :goto_59 + if-nez v0, :cond_9a + :try_start_5b + new-instance v3, Ljava/io/File; + const-string v4, "/data/data/PACKAGENAME/logs" + invoke-direct {v3, v4}, Ljava/io/File;->(Ljava/lang/String;)V + new-instance v4, Ljava/io/File; + new-instance v5, Ljava/lang/StringBuilder; + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V + sget-object v6, LRK_TECHNO_INDIA/AES;->TIME_FORMAT2:Ljava/text/SimpleDateFormat; + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + move-result-wide v7 + invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + move-result-object v7 + invoke-virtual {v6, v7}, Ljava/text/SimpleDateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; + move-result-object v6 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + const-string v6, ".log" + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v5 + invoke-direct {v4, v3, v5}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V + invoke-virtual {v3}, Ljava/io/File;->mkdirs()Z + new-instance v5, Ljava/io/FileOutputStream; + invoke-direct {v5, v4}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V + :try_end_8e + .catch Ljava/io/IOException; {:try_start_5b .. :try_end_8e} :catch_90 + move-object v0, v5 + goto :goto_9a + :catch_90 + move-exception v3 + invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V + new-instance v4, Ljava/lang/RuntimeException; + invoke-direct {v4, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + throw v4 + :cond_9a + :goto_9a + :try_start_9a + invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; + move-result-object v3 + :goto_9e + sget-object v4, LRK_TECHNO_INDIA/AES;->QUEUE:Ljava/util/concurrent/LinkedBlockingQueue; + invoke-virtual {v4}, Ljava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object; + move-result-object v5 + check-cast v5, Ljava/lang/String; + invoke-virtual {v5, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B + move-result-object v6 + invoke-virtual {v0, v6}, Ljava/io/FileOutputStream;->write([B)V + invoke-virtual {v4}, Ljava/util/concurrent/LinkedBlockingQueue;->isEmpty()Z + move-result v4 + if-eqz v4, :cond_b6 + invoke-virtual {v0}, Ljava/io/FileOutputStream;->flush()V + :try_end_b6 + .catch Ljava/lang/Exception; {:try_start_9a .. :try_end_b6} :catch_b7 + :cond_b6 + goto :goto_9e + :catch_b7 + move-exception v3 + new-instance v4, Ljava/lang/RuntimeException; + invoke-direct {v4, v3}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + throw v4 +.end method diff --git a/ApkPatcher/Utils/Files/Algorithm.dex b/ApkPatcher/Utils/Files/Algorithm.dex new file mode 100644 index 0000000000000000000000000000000000000000..6dfef73c6971c51b110efeeb5f5202e8e21765b6 GIT binary patch literal 9156 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 V(831=(3~y<19(0Uss^+c2LRW$P-*}G literal 0 HcmV?d00001 diff --git a/ApkPatcher/Utils/Files/Hook.smali b/ApkPatcher/Utils/Files/Hook.smali new file mode 100644 index 0000000..8970e89 --- /dev/null +++ b/ApkPatcher/Utils/Files/Hook.smali @@ -0,0 +1,75 @@ +.class public Lorg/telegram/abhi/Hook; +.super Ljava/lang/Object; +.source "SourceFile" + + +# static fields +.field public static candelMessages:Z + + +# direct methods +.method public constructor ()V + .registers 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + +.method public static hook()V + .registers 1 + + const/4 v0, 0x1 + + .line 17 + invoke-static {v0}, Lorg/telegram/abhi/Hook;->setCanDelMessages(Z)V + + return-void +.end method + +.method public static setCanDelMessages(Z)V + .registers 4 + + sput-boolean p0, Lorg/telegram/abhi/Hook;->candelMessages:Z + + sget-object v0, Lorg/telegram/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context; + + const-string v1, "mainconfig" + + const/4 v2, 0x0 + + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; + + move-result-object v0 + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + const-string v1, "candelMessages" + + invoke-interface {v0, v1, p0}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->apply()V + + return-void +.end method + +.method public static unhook()V + .registers 1 + + .line 23 + sget-boolean v0, Lorg/telegram/abhi/Hook;->candelMessages:Z + + if-eqz v0, :cond_8 + + const/4 v0, 0x0 + + .line 24 + invoke-static {v0}, Lorg/telegram/abhi/Hook;->setCanDelMessages(Z)V + + :cond_8 + return-void +.end method \ No newline at end of file diff --git a/ApkPatcher/Utils/Files/__init__.py b/ApkPatcher/Utils/Files/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ApkPatcher/Utils/Files/lib_Pairip_CoreX.so b/ApkPatcher/Utils/Files/lib_Pairip_CoreX.so new file mode 100644 index 0000000000000000000000000000000000000000..fabd2cbdd764ba5ba778daedaba9ec14824bbfcd GIT binary patch literal 926280 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 Ys0zuU#{#;`19YA~ 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%0An~~3qu@ZC8H<< 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

#*}hGsDgo%?>+3XXkM;YI1q7&I(%5xVPwKJHt*+ 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Ν};iNW$aH>h9gyz*PP)5^cqN8oKK zkowoqdGpz#U$@_i`A73yqgq)~zyv!jfFO=cNU@@Ob6ny502m^!2 z^?y#2UkEWwl=xaViQ#+Q<+NB(z3i~594X8}>Ote`hrZQK0)-=}eSboT;iBl*x=GJs z7^kdY67CijWSCgb#IW;=KP2pb#DnS_)bQ`d7XB^{J3xLV6#k$z_Wv-`#lO{TEB`h# zPW+Y5zVb&r$I5TvoGZWhbFGA&H^aILbl%JtW|mdonVDCC!T_}AF+;(@@*y|FPY)&r zb5OsUlc8bK)5Q!EL1(u-W)@!sS}zD%NBB~l;U{RW;)S@w&##~|kQ;oz>c<2ghL8>( zhOMCVl?J+3QW;b~iLY{xWt<|$%rHTcnPI{;GuNM%>s^2TmuL9-i{0Vpx93bNPyD-o zLY|djBPgxCSj;f-Wi!LXmx~!!g4!xcj0_i?9CRl>OlFwKVB-37K^)^04|T_tr??t+ zYBO@2_GD$aXwTdI`VkjHh*)Ljk8NBGTOP1G{G1iXIOPS@e)U+!DdNlw6TWYP*!%rC z)5@Rh4nJQIYwrfvpG|R$Q#8~aSH42C*NL4WM7%Qdhd4XL-Wrg-Ob$OeB^`c(`~u3K zKNmAh1l=X;ipXu;}p=n zbfA4?pnd+Jy{VlH4M8A&ClkX?P`ty&|3PI5XiexBf3KC_!aZ01i1%3eE8TtN-)gs& z{|_@w+^-B71Inmmn37(}Fhvq%7qg=!sC>zQ+OGf-TkK%Df`P#tG~Wbr3tV2_;ip6l zsLv|A>Xi@Ul$Sn8iKMms`a*ur=W%++*mWzL@xmNydW}5gXpL^x6be@$z;(1qo z3+G$;#h-s=1_RUSm!BCoar||joEbXx(=%g+onM(*S3MDD_zBv_D_zSu`zJH=D$su3 z@63$g^A~Abv43ta6ZJ*fO6<^0fmqL&zUy`Bk7h z^g#17ub4$vy=ImIjV+2)vol;KQqg(`gNIMBFGNLzyHB@e7?@G@+-6asz1Vz zyX5{bGiYsPgQ$7P#tyMppmtIRv%^owyq^qY|27MQApJTt>j z^WXosKK%b*{2MdF&u`2kt3ESJt@i*YUDEBSVn~BdD(``Wkd5{R?4-pCC7Y&eV7z%;$C)P@Vyu z{Q?sMon`UO-(lq+VTYeDg~{i_yU{o)hA4E=C7SZdQk%K7SoA z$1^e%buo6&if0sko$&8}$Q*Wti}s8RmLLBA7rz5dE1>WM6K=aC=b2mWo zKb?VLs~`h|2uS^RBGL}19dU<&VJqmaU|5`%|NFl+hLK_G3MPl09E|ctE0`E|g7Uuy zvxB8PCqtnEGegLfB!-Dm?2vQ~ibsfAIk4Jd28J!5I#MJWb>0Bf-+#a?x$29*|H^OS zek*^(`>y*Itv~&js&_l z7}Sq^!S3)g17sh&!_Oa4pfX2f)iG~KJ5dDIK5b^Z__tbQ(EwhBGzM7>fSuGwiHj?ws{1nRz8BEI?^8gOB0oWCn&U8PIY9)Yd8mts8*y zLGA;u6#$nTkh9uAX$Dj$7c(+!ab#c+0nKkf${=BQx$>EL@~p3a|8E7AXTt0ZTR`r5 zsqXOemAu1GZfJfhW9*#8!7SDt&&ct*5p)m1ulmamm>DO6{9^&~i?YK{Q2oa7vwji> zs6J<8C~9Qxm<3a#4^qSIXbJKwDF1@|1~Tu3Ji||zf1qnBEJ1k+-JMSlJ6b+|%rNoE zW`>E+k{KsHzsxxCA+xyFBW8(JKeHKD&W>T6qQJ;t3Nx$m+keQp7~u5~5Wj-%mwS=y zX!+6@wH(m^pD!;nPUK|dJZ)dg^s$G5A>^gL!%j|Dh8-`Y8Gb&L2lZ(rR)N~! zptV{C+Zd*R&AQAu@vXGO&sW9{KY17#ia_DDl9BUt24mMOdr^juFNGa`Dljtq^k!!W z(O_rTvOIRt)Dyy{_c}|1usApyP*mJdK7AQWI7#Tvk867OO|Nl3s|I1wX z;NSlcUq*+W`x&{j8~*(d0o~2e$q3%RYhn+QXJ7~c-L1*N$`A;udy+x@8-|9U4km`3 z$m#O{3q#0MR)#Gr2&B&h7KRXzz7A+P1TqJd24U@!ACZjUum0frH8HjlOMYBZ*|DZ|IKXhG6y|vf$|6_4_y8A ze{1lc|6A|<|1W+%60)uZl(#`;5U4!_aucYH1d8_;3=HNV`<8k!P64&yKLTH8d=vilXUT zMn!EMEu-jFMxBp9Eu&6@_%tq~mPHU(M%8#i$|#U}KWoM=qlR!XRao zk~^e~>WCPeWt3k8?lS5)D4d5$88rpu7XoEeH%JW)%c$?+^ev-4ZX&6S8Xb>fB)^Ob z2}LcV0ziBkmr>fG#FbHuZjdqxq#n79QV)fcQ9oTFWmIzb;4Gt5!*Q2U^FZM|Ov*G%Taeh0(W+QW-6ycG7D+N;?F#j8X^jXuj1ylmGg`j>%wYNZ zKFiAg?hHGrHDBjM#C)AGXub|Qr}au3F<)20*g5M3lL&mit`Rg}mkgP&^8xu!-{I%W zWJgPk`8uc?XOJ3@x#o~Ldys!Y=DpA+ZoclBvXkXgV<*dppgF?N3=^L?GfsSdm~kR# z4bqQv#+ARL8CISPMJ<04vCP?R`2S!0#bHOwm-Y@nzeqcv%>RS-WPs*mG#D97UZ^|# zeCf=DI)CR5oxf9O`1w#9G=B%Wt5{@J+(w2eU^AVWCcXvDbK2vWyAub`-R(u`&p9(q z#F)EtW|~O!+}&YE%UAXeKjCwC&JI7{9VRe$=gc&5NX^|PJ6gi#>NtZL!C?*NJ3IVj z1@VP(&D}+>{1zUy@<)8+%3tXbEC1w&ul!pbw(>tSJ4thQ4}!3iL&=Wd^-Z97ht1t> zb7q_ZnyUk;2Z@8{?wlQd-U)(~L+hL&<&Z`w?aCp}P~7EE5-6;OaXF*~@*jb6ND-ul z#^unOkbx`GK2lc^VYa(AfW|(Lg z$T;O26T^lVObi=9`wBSLy8irc&G7TPyu;6L%53m`1qqA{AupO4!TSn8{k)g@3_l+* zF>G*RWcUEtTfhk3ThIy0%W7Em7Kk&1FjQv#SRl@@1-zzL(c$MqCWZ}*H#1yR+~WFE zDT84m1Ec*l(E9ry+zdZ|FiWng3IdHqF|GVB&G7RLY^I z|1~pCyv5WIw0kqdMNl8{&try(=AiYP@(iGT5<9=^GyJ4hzmVv4oXrlFFU1{xzS2kZ z3qk8RUofGq<7@`)50Te82J(}z!_Sw^4k-OXN6

sG7YXH6U}PA^k#-A3^55&?l~6 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 c+8I-1kSFN50&eK{Td6Pv9Q$m;+OcR(GOhIPA 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%0AfN`Un;?LB0x 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 HW`S4$|CC)y literal 0 HcmV?d00001 diff --git a/ApkPatcher/Utils/Pine/libpine64 b/ApkPatcher/Utils/Pine/libpine64 new file mode 100644 index 0000000000000000000000000000000000000000..aee972ebb3a3fdc57b113d769e336d4fa97f4b7e GIT binary patch literal 72024 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 B0Z0G< literal 0 HcmV?d00001 diff --git a/ApkPatcher/Utils/Scan.py b/ApkPatcher/Utils/Scan.py new file mode 100644 index 0000000..ccae387 --- /dev/null +++ b/ApkPatcher/Utils/Scan.py @@ -0,0 +1,118 @@ +from ..ANSI_COLORS import ANSI; C = ANSI() +from ..MODULES import IMPORT; M = IMPORT() + +from .Files_Check import FileCheck + +F = FileCheck(); F.Set_Path(); + +EX = f"{C.P}\n |\n ╰{C.CC}┈{C.OG}➢ {C.G}ApkPatcher {' '.join(M.sys.argv[1:])} {C.OG}" + + +# ---------------- Scan APK ---------------- +def Scan_Apk(apk_path, isFlutter, isPairip): + + print(f"\n{C.CC}{'_' * 61}\n") + + Package_Name = '' + + if M.os.name == 'posix': + # ---------------- Extract Package Name with AAPT ---------------- + Package_Name = M.subprocess.run( + ['aapt', 'dump', 'badging', apk_path], + capture_output=True, text=True + ).stdout.split("package: name='")[1].split("'")[0] + + if Package_Name: + print(f"\n{C.S} Package Name {C.E} {C.OG}➸❥ {C.P}'{C.G}{Package_Name}{C.P}' {C.G} ✔") + + + # ---------------- Extract Package Name with APKEditor ---------------- + if not Package_Name: + Package_Name = M.subprocess.run( + ["java", "-jar", F.APKEditor_Path, "info", "-package", "-i", apk_path], + capture_output=True, text=True + ).stdout.split('"')[1] + + print(f"\n{C.S} Package Name {C.E} {C.OG}➸❥ {C.P}'{C.G}{Package_Name}{C.P}' {C.G} ✔") + + + + # ---------------- Check Flutter / Pairip Protection ---------------- + isPairip_lib = isFlutter_lib = False + + with M.zipfile.ZipFile(apk_path, 'r') as zip_ref: + for item in zip_ref.infolist(): + if item.filename.startswith('lib/'): + if item.filename.endswith('libpairipcore.so'): + isPairip_lib = True + if item.filename.endswith('libflutter.so'): + isFlutter_lib = True + + + # ---------------- Check Flutter Protection ---------------- + if isFlutter_lib: + def check_java_installation(): + try: + M.subprocess.run(['radare2', '-v'], capture_output=True, text=True) + except (M.subprocess.CalledProcessError, FileNotFoundError): + if M.os.name == 'posix': + for pkg in ['radare2']: + try: + + result = M.subprocess.run(['pkg', 'list-installed'], capture_output=True, text=True) + + if pkg not in result.stdout: + print(f"\n{C.S} Installing {C.E} {C.OG}➸❥ {C.G}{pkg}...\n") + M.subprocess.check_call(['pkg', 'install', '-y', pkg]) + + M.os.system('cls' if M.os.name == 'nt' else 'clear') + + except (M.subprocess.CalledProcessError, Exception): + exit( + f"\n\n{C.ERROR} No Internet Connection. ✘\n" + f"\n{C.INFO} Internet Connection is Required to Installation {C.G} pkg install {pkg}\n" + ) + else: + exit( + f"\n\n{C.ERROR} Radare2 is not installed on Your System. ✘\n" + f"\n{C.INFO} Install Radare2 and Run Script Again in New CMD.\n" + f"\n{C.INFO} Verify Radare2 Installation {C.G} radare2 -v" + ) + + check_java_installation() + + FP = f"\n\n{C.S} Flutter Protection {C.E} {C.OG}➸❥ {C.P}'{C.G}libflutter.so{C.P}' {C.G} ✔" + + if not isFlutter: + exit( + f"{FP}\n\n" + f"\n{C.WARN} This is Flutter APK, So For SSL Bypass , Use {C.G} -f {C.B}Flag:\n\n" + f"\n{C.INFO} If APK is Flutter, Then Use Additional Flag: {C.OG}-f" + f"{EX}-f {C.Y}-c certificate.cert\n" + ) + + else: + if isFlutter: + print(FP) + + + # ---------------- Check Pairip Protection ---------------- + if isPairip_lib: + PP = f"\n\n{C.S} Pairip Protection {C.E} {C.OG}➸❥ {C.P}'{C.G}libpairipcore.so{C.P}' {C.G} ✔" + + if not isPairip: + exit( + f"{PP}\n\n" + f"\n{C.WARN} This is Pairip APK, So For SSL Bypass, Use {C.G} -p {C.C} / {C.G} -p -x {C.C}( ) {C.B}Flag:\n\n" + f"\n{C.INFO} If APK is Pairip, Then Use Additional Flag: {C.OG}-p {C.P}( Without Sign APK Use Only in VM / Multi_App )" + f"{EX}-p {C.Y}-c certificate.cert\n\n" + f"\n{C.INFO} If APK is Pairip, Then Hook CoreX & Use Additional Flag: {C.OG}-p -x {C.P}( Install Directly Only For [ arm64 ] )" + f"{EX}-p -x {C.Y}-c certificate.cert\n\n" + f"\n{C.INFO} Note Both Method Not Stable, May be APK Crash {C.P}( So Try Your Luck ) 😂\n" + ) + + else: + if isPairip: + print(PP) + + return Package_Name, isFlutter_lib, isPairip_lib \ No newline at end of file diff --git a/ApkPatcher/Utils/__init__.py b/ApkPatcher/Utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ApkPatcher/__init__.py b/ApkPatcher/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..775bbd4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Techno India + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..759fcf0 --- /dev/null +++ b/README.md @@ -0,0 +1,236 @@ +

+ +

+ + + + +# ApkPatcher + + +

+ +

+ + +Installation Method +------- +**💢 Requirement PKG 💢** + +```bash +termux-setup-storage +pkg update -y +pkg upgrade -y +pkg install python -y +``` + +**👉🏻 To install ApkPatcher, Run only any one cmd from the Installation Method** + +**💢 PYPI ( Just Testing ) 💢** + + pip install ApkPatcherX + +[![PyPI](https://img.shields.io/badge/pypi-3776AB?style=for-the-badge&logo=python&logoColor=FFD43B)](https://pypi.org/project/ApkPatcherX) [![Version](https://img.shields.io/pypi/v/ApkPatcherX?label=&style=for-the-badge&color=FF8C00&labelColor=FF8C00)](https://pypi.org/project/ApkPatcherX) + + +**1st. Method** + +`💢 For Latest Commit ( From Main  Branch )  💢` + + pip install --force-reinstall https://github.com/TechnoIndian/ApkPatcher/archive/refs/heads/main.zip + +`OR` + + pip install --force-reinstall https://github.com/TechnoIndian/ApkPatcher/archive/refs/heads/main.tar.gz + +`OR` + + curl -Ls https://github.com/TechnoIndian/Tools/releases/download/Tools/ApkPatcher.sh | bash + +**2nd. Method** + + pkg install python git && pip install git+https://github.com/TechnoIndian/ApkPatcher.git + + +Uninstall ApkPatcher +----- + + pip uninstall ApkPatcherX + + +# Usage Example + + +ApkPatcher ( Input Mode ) +----- + +**Mode `-i` ➸ Smali Patcher ( Input Your APK Path )** + +`Default Patch is VPN & SSL Bypass` + + ApkPatcher -i YourApkPath.apk + +**Flag: `-a` ➸ Try with APKEditor ( Default APKTool )** + + ApkPatcher -i YourApkPath.apk -a + +**Flag: `-c` ➸ Embed Your Captural APK's Certificate** + +`With Your Certificate ( Input Your .pem / .crt / .cert Path )` + +`If you have already installed your certificate under CA Certificates in your device settings, then you don’t need to use the "-c YourCertificatePath.cert" parameter, because the user certificate is already trusted by network_security_config.xml` + + ApkPatcher -i YourApkPath.apk -c YourCertificatePath.cert + +`Multiple Certificate` + + ApkPatcher -i YourApkPath.apk -c /sdcard/HttpCanary/certs/HttpCanary.pem /sdcard/Download/Reqable/reqable-ca.crt /sdcard/Download/ProxyPinCA.crt + +**Flag: `-e` ➸ If using emulator on PC** + + ApkPatcher -i YourApkPath.apk -e + +**Flag: `-u` ➸ Keep UnSigned APK** + + ApkPatcher -i YourApkPath.apk -u + + +Smali Patcher ( Additional Flags ) +----- + +**Flag: `-f` / `-p` / `-p -x` ➸ Flutter & Pairip SSL Bypass** + +`For Flutter, Script By 🇮🇳 AbhiTheM0dder 🇮🇳` + + ApkPatcher -i YourApkPath.apk -f + +`For Pairip ( UnSigned APK, Use Only in VM / Multi App )` + + ApkPatcher -i YourApkPath.apk -p + +`CoreX HooK For Pairip ( Install Directly, Only For [ arm64 ] )` + + ApkPatcher -i YourApkPath.apk -p -x + +**Flag: `-D` ➸ Hook Android ID For One Device Login Bypass** + +`Input Your 16 Digit Android ID` + + ApkPatcher -i YourApkPath.apk -D 7e9f51f096bd5c83 + +**Flag: `-pkg` ➸ Spoof Package Detection ( Dex / Manifest / Res )** + + ApkPatcher -i YourApkPath.apk -pkg + +**Flag: `-P` ➸ Purchase / Paid / Price** + + ApkPatcher -i YourApkPath.apk -P + +**Flag: `-rmss` / `-rmusb` ➸ Bypass Screen / USB Restriction** + +`Bypass Screenshot Restriction` + + ApkPatcher -i YourApkPath.apk -rmss + +`Bypass USB Debugging` + + ApkPatcher -i YourApkPath.apk -rmusb + +**Flag: `-skip` ➸ Skip Patch (e.g., getAcceptedIssuers)** + + ApkPatcher -i YourApkPath.apk -skip getAcceptedIssuers + + +AES Patcher ( Additional Flags ) +----- + +**Flag: `-A` ➸ AES MT Logs Inject** + + ApkPatcher -i YourApkPath.apk -A + +`Do U Want Separate AES.smali Dex` + + ApkPatcher -i YourApkPath.apk -A -s + +**Flag: `-A2` ➸ Algorithm Logs** + + ApkPatcher -i YourApkPath.apk -A2 + + +Spoof Patcher ( Additional Flags ) +----- + +**Flag: `-r` ➸ Random / Fake / Spoof Device Info** + + ApkPatcher -i YourApkPath.apk -r + +`Input Your 16 Digit Custom Android ID` + + ApkPatcher -i YourApkPath.apk -r -D 7e9f51f096bd5c83 + + +Ads Patcher ( Additional Flags ) +----- + +**Flag: `-rmads` ➸ Remove Ads** + + ApkPatcher -i YourApkPath.apk -rmads + + +TG Patcher ( Additional Flags ) +----- + +**Flag: `-t` ➸ Telegram / Plus Patch, Script By 🇮🇳 AbhiTheM0dder 🇮🇳** + + ApkPatcher -i YourApkPath.apk -t + + +Pine Hook ( Additional Flags ) +----- + +**Flag: `-pine -l` ➸ Pine Hook ( Input Path of Xposed & LSP Module )** + +`Mutil Path Supported, But module path should not contain space or symbols.` + + ApkPatcher -i YourApkPath.apk -pine -l NoVPNDetect.apk just.trust.me.apk + + +ApkPatcher ( Merge Mode ) +----- + +**Mode `-m` ➸ Anti-Split ( Only Merge APK )** + +`Supported Extensions ( .apks / .apkm / .xapk )` + + ApkPatcher -m YourApkPath.apks + + +ApkPatcher ( Credits Mode ) +----- + +**Mode `-C` ➸ Credits** + + ApkPatcher -C + + +ApkPatcher Help +----- + + ApkPatcher -h + + +ApkPatcher Other Patch Flags +----- + + ApkPatcher -O + + +# NOTE + + +## 🇮🇳 Welcome By Techno India 🇮🇳 + +[![Telegram](https://img.shields.io/badge/TELEGRAM-CHANNEL-red?style=for-the-badge&logo=telegram)](https://t.me/rktechnoindians) +

+[![Telegram](https://img.shields.io/badge/TELEGRAM-OWNER-red?style=for-the-badge&logo=telegram)](https://t.me/RK_TECHNO_INDIA) +

\ No newline at end of file diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..a58941b --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.3 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..3d4f39e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,61 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "ApkPatcherX" +dynamic = ["version"] +authors = [ + { name = "RK_TECHNO_INDIA", email = "TechnoIndian786@gmail.com" } +] + +description = "Smali Patcher ( Bypass 𒁍 SSL & Flutter SSL, VPN, USB Debugging, Screen Restrict, One Device Login, Spoof Info & Package Detection, Ads, AES Logs Inject, TG Patch, Pine HooK )" + +license = { text = "MIT" } +readme = "README.md" + +requires-python = ">=3.12" + +dependencies = [ + "requests", + "r2pipe", + "asn1crypto", + "multiprocess" +] + +keywords = ["ApkPatcher"] + +classifiers = [ + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", +] + +[project.scripts] +ApkPatcher = "ApkPatcher.APK_PATCHER:RK_Techno_IND" +apkpatcher = "ApkPatcher.APK_PATCHER:RK_Techno_IND" + +[tool.setuptools] +include-package-data = true + +packages.find = {} + +package-data = { ApkPatcher = [ + "Utils/Files/AES.smali", + "Utils/Files/Algorithm.dex", + "Utils/Files/Hook.smali", + "Utils/Files/lib_Pairip_CoreX.so", + "Utils/Pine/config.json", + "Utils/Pine/libpine32", + "Utils/Pine/libpine64", + "Utils/Pine/loader.dex" +] } + + +[project.urls] +Homepage = "https://github.com/TechnoIndian/ApkPatcher" +Repository = "https://github.com/TechnoIndian/ApkPatcher.git" +Issues = "https://github.com/TechnoIndian/ApkPatcher/issues" + +[tool.setuptools.dynamic] +version = { file = "VERSION" } \ No newline at end of file