from multiboot.fileinfo import FileInfo import re file_info = FileInfo() filename_regex = r"^UPDATE-SuperSU-v[0-9\.]+\.zip$" file_info.name = "Chainfire's SuperSU" file_info.patch = "Other/supersu.dualboot.patch" file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^gapps-jb43-[0-9]+-dmd151\.zip$" file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected doomed151's Google Apps zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^cm-[0-9\.]+(-[0-9]+-NIGHTLY)?-[a-z0-9]+\.zip$" file_info.ramdisk = 'hammerhead/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected official CyanogenMod ROM zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^3Minit_Framework_.*\.zip$" file_info.name = '3Minit framework' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher from multiboot.autopatchers.jflte import GoogleEditionPatcher import re file_info = FileInfo() filename_regex = r"^I9505_-_Official_Google_Edition_.*Jamal2367.*\.zip$" file_info.name = "jamal2367's Google Edition" file_info.ramdisk = 'jflte/GoogleEdition/GoogleEdition.def' file_info.patch = [ autopatcher.auto_patch, GoogleEditionPatcher.qcom_audio_fix ] file_info.extract = [ autopatcher.files_to_auto_patch, GoogleEditionPatcher.files_for_qcom_audio_fix ] def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(filename = ""): if 'Final-R1.1' in filename: file_info.bootimg = 'kernel/ktoonsez/boot.img' return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^FoxHound_.*\.zip$" file_info.name = "FoxHound" file_info.ramdisk = "jflte/TouchWiz/TouchWiz.def" file_info.bootimg = "snakes/Kernels/Stock/boot.img" file_info.patch = [autopatcher.auto_patch, "jflte/ROMs/TouchWiz/foxhound.dualboot.patch"] file_info.extract = [autopatcher.files_to_auto_patch, "META-INF/com/google/android/aroma-config"] def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^[0-9]+-[0-9]+_GApps_Core_[0-9\.]+_signed\.zip$" file_info.name = "BaNks's Google Apps" file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher from multiboot.autopatchers.jflte import GoogleEditionPatcher import re file_info = FileInfo() filename_regex = r"^[a-zA-Z0-9]+BlackBoxGE[0-9]+\.zip$" file_info.name = 'BlackBox Google Edition' file_info.ramdisk = 'jflte/GoogleEdition/GoogleEdition.def' file_info.patch = [ autopatcher.auto_patch, GoogleEditionPatcher.qcom_audio_fix ] file_info.extract = [ autopatcher.files_to_auto_patch, GoogleEditionPatcher.files_for_qcom_audio_fix ] file_info.bootimg = 'dsa/Kernels/Stock/boot.img' def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^(Liquid|LS)-(JB|KK|Kitkat)-v[0-9\.]+-.*-jflte.*\.zip$" file_info.name = 'LiquidSmooth' file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^KT-SGS4-(JB|KK)4.[2-4]-TW-.*\.zip$" file_info.name = 'Ktoonsez TouchWiz kernel' file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): if 'VZW' in filename or 'ATT' in filename: file_info.bootimg = 'boot.lok' file_info.loki = True return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^KT-SGS4-[^-]+-AOSP-.*\.zip$" file_info.name = 'Ktoonsez AOSP kernel' file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): if 'VZW' in filename or 'ATT' in filename: file_info.bootimg = 'boot.lok' file_info.loki = True return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import re file_info = FileInfo() filename_regex = r"^Evil_UnWizzed_v[0-9]+\.zip$" file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = 'jflte/ROMs/TouchWiz/unwizzed.dualboot.patch' def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected Evil UnWizzed ROM zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^miui_i9505_shiro_.*\.zip$" file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.device_check = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected Official MIUI ROM zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import re file_info = FileInfo() filename_regex = r"^.*\.img$" file_info.ramdisk = 'jflte/AOSP/AOSP.def' def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected boot.img file") print("ASSUMING RAMDISK IS FOR AOSP. USE patchramdisk SCRIPT IF IT'S FOR TOUCHWIZ") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() file_info.patch = 'Other/xposed.dualboot.patch' file_info.has_boot_image = False def matches(filename): if filename == 'Xposed-Disabler-Recovery.zip': return True else: return False def print_message(): print("Detected Xposed disabler zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^gapps-(jb|kk)-[0-9]{8}-signed\.zip$" file_info.name = 'CyanogenMod Google Apps' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() att_filenames = [ 'GE-XXUEML6-18.2.zip' ] filename_regex = r"^GE.*\.zip$" file_info.name = 'GoldenEye' file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.bootimg = 'kernel/boot.img' def matches(filename): if re.search(filename_regex, filename): if 'ATT' in filename or filename in att_filenames: file_info.loki = True file_info.bootimg = 'kernel/boot.lok' return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import multiboot.fileio as fileio import re file_info = FileInfo() filename_regex = r"^cm-.*noobdev.*.zip$" file_info.ramdisk = 'hammerhead/AOSP/cxl.def' file_info.patch = [ autopatcher.auto_patch ] file_info.extract = [ autopatcher.files_to_auto_patch, 'system/build.prop' ] # ROM has built in dual boot support file_info.configs = [ 'all', '!dualboot' ] def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected chenxiaolong's noobdev CyanogenMod ROM zip") def get_file_info(filename = ""): return file_info # My ROM has dual-boot support built in, so we'll hack around that to support # triple, quadruple, ... boot def multi_boot(directory, bootimg = None, device_check = True, partition_config = None): updater_script = 'META-INF/com/google/android/updater-script'
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^miuiandroid_(multi_)?jflte.*\.zip$" file_info.name = 'MIUI' file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.patched_init = 'init-jb42' def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import re file_info = FileInfo() filename_regex = r"^.*\.img$" file_info.name = 'boot.img' file_info.ramdisk = 'hammerhead/AOSP/AOSP.def' def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^j(ged|f)lte([a-z]+)?-faux123-GE-.*\.zip$" file_info.name = 'Faux Google Edition kernel' file_info.ramdisk = 'jflte/GoogleEdition/GoogleEdition.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^aosp[0-9]+-i9505-.*\.zip$" file_info.name = "Broodplank's AOSP" file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() file_info.name = 'Xposed Framework Disabler' file_info.patch = 'Other/xposed.dualboot.patch' file_info.has_boot_image = False def matches(filename): if filename == 'Xposed-Disabler-Recovery.zip': return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher file_info = FileInfo() file_info.name = "geiti94's HTC Sense 5 port" file_info.ramdisk = "jflte/AOSP/AOSP.def" file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if filename.lower() == "sense5port.zip" or filename == "4.3 official port.zip" or filename == "ALPHA V1.5.zip": return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import multiboot.fileio as fileio import re file_info = FileInfo() filename_regex = r"^Slim_aroma_selectable_gapps.*\.zip$" file_info.name = 'SlimRoms AROMA Google Apps' file_info.patch = [ autopatcher.auto_patch ] file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info def handle_bundled_mount(directory, bootimg = None, device_check = True, partition_config = None): updater_script = 'META-INF/com/google/android/updater-script' lines = fileio.all_lines(updater_script, directory = directory) i = 0 while i < len(lines): if re.search('/tmp/mount.*/system', lines[i]): del lines[i]
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() file_info.name = "Moto X's Qualcomm-optimized Dalvik and Bionic libraries" file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.has_boot_image = False def matches(filename): if filename == '4.4_qc-optimized_bionic.zip' or \ filename == '4.4_qc-optimized_dalvik.zip' or \ filename == 'KRT16S_stock_revert.zip': return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() # Didn't check Illusion # Just so I don't need to redownload, illusion filenames: # Echoe_Illusion_RomTHEMED_v7_09Nov_Vzw_v2.zip # AT&T_Echoe_Illusion_Rom_v7_09Nov.zip filename_regex = [ r"^Echoe[ _]?(Rom|SLIM).*\.zip$", r"^S4_Echoe.*\.zip" ] file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch file_info.bootimg = 'boot.img' def print_message(): print("Detected Echoe TouchWiz ROM zip") def matches(filename): for regex in filename_regex: if re.search(regex, filename): return True return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^JellyBeer-.*\.zip$" file_info.name = 'JellyBeer' file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.need_new_init = True file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import re file_info = FileInfo() filename_regex = r"^Kernel-Alucard.*AOSP.*\.zip$" file_info.ramdisk = 'jflte/AOSP/AOSP.def' file_info.patch = autopatcher.auto_patch file_info.extract = autopatcher.files_to_auto_patch def matches(filename): if re.search(filename_regex, filename): return True else: return False def print_message(): print("Detected Alucard AOSP kernel zip") def get_file_info(): return file_info
from multiboot.fileinfo import FileInfo import multiboot.autopatcher as autopatcher import multiboot.fileio as fileio import re file_info = FileInfo() filename_regex = r"^TriForceROM[0-9\.]+\.zip$" file_info.name = 'TriForceROM' file_info.ramdisk = 'jflte/TouchWiz/TouchWiz.def' file_info.patch = [ autopatcher.auto_patch ] file_info.extract = [ autopatcher.files_to_auto_patch, 'META-INF/com/google/android/aroma-config' ] file_info.bootimg = "aroma/kernels/stock/boot.img" def matches(filename): if re.search(filename_regex, filename): return True else: return False def get_file_info(): return file_info def fix_aroma(directory, bootimg = None, device_check = True, partition_config = None): aroma_config = 'META-INF/com/google/android/aroma-config' lines = fileio.all_lines(aroma_config, directory = directory) i = 0 while i < len(lines):