All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
1.5.0 - 2026-03-28
- payload-dumper: Enhanced binary to extract
dynamic_partition_metadatafrom payload.bin via--jsonflagcow_version: COW format version for snapshot optimizationcompression_factor: Compression factor valuesnapshot_enabled: Virtual A/B snapshot statusvabc_enabled: Virtual A/B compression enablementvabc_compression_param: Compression algorithm (lz4, gz, etc.)
- DynamicPartitionMetadata dataclass: New dataclass in
payload_dumper.pyto represent VABC settings - partition_info.json storage: VABC metadata now automatically stored in device configuration
- OTA packaging integration:
misc_info.txtnow uses accurate VABC settings from Stock ROMvirtual_ab_compression_methodvirtual_ab_cow_versionvirtual_ab_compression_factor
- workflow: Handle resume context gracefully when
stockattribute is not set in PortingContext
1.4.0 - 2026-03-26
- AVB auto-sync: Automatically sync
partition_info.jsonfrom stock vbmeta profile - AVB chain alignment: Custom packaging now aligns with stock AVB chain and partition caps
- AVB chain toggle: New
--custom-avb-chainCLI flag to enable/disable custom AVB chain - Resume from packer: Checkpoint-based resume capability for interrupted packaging runs
- New
--resumeCLI flag to resume from last successful phase - Saves progress at each major phase (extraction, initialization, modification, packing)
- New
- types: Resolved curated mypy errors in AVB misc generation
1.3.0 - 2026-03-20
- Region subtype detection: Automatically detect Global ROM region subtype from
mod_deviceprop - Region metadata entry point: Reserved stock region metadata for cross-region porting
- Package naming: OTA packages now include global region device tags
- Product build.prop sync: Sync product build.prop from stock with layered skip-key control
- Skip key configuration: Configurable key skipping for build.prop synchronization
- Dynamic plugin discovery: APK modifier plugins now auto-discovered from
plugins/apk/directory - Global ROM detection: Separated Global ROM detection from EU localization path
- lint: Applied Ruff lint fixes across repository
1.2.0 - 2026-03-19
- HTMLViewer plugin: Full
doInBackgroundrewrite for EU locale support - EU-specific overrides: Support for EU-specific override directory (
overrides_eu/) - Smali idempotent append: New idempotent method append support in smalikit
- Xiaomi 17 (pudding): New device configuration for Xiaomi 17 series
- General override directory: Support for general override directory structure
- smalikit: Detect existing appended method by declaration, not by reference
- htmlviewer: Avoid patching bridge
doInBackgroundmethod - htmlviewer: Fixed two fatal smali register errors in EU ROM plugin
- vbmeta: Set AVB flags to
0x01to prevent Android 16 fastboot lock - replacements.json: Corrected format for pudding device
- pudding: Updated CPU zh label in EU device_info
1.1.0 - 2026-03-18
- Device auto-configuration: Automatically configure device when config is missing
- partition_info.json: Read partition list from auto-generated partition_info.json
- Payload metadata storage: Store payload metadata in RomPackage for later use
- Payload metadata extraction: Integrated metadata extraction in extractors module
- payload-dumper wrapper: New Python wrapper module for payload-dumper CLI
- firmware: Simplified AVB disabling by patching only vbmeta.img (removed fstab modification)
- mypy: Resolved
no-any-returnerror in packer.py - CLI: Fail fast on invalid local ROM input paths
1.0.0 - 2026-03-17
- Full ROM porting workflow: From stock/port ZIP to OTA package
- System patching: Firmware, system, framework, and ROM property modifications
- GKI support: KernelSU injection for GKI 2.0+ devices (kernel 5.10+)
- AVB disable: Disable Android Verified Boot via vbmeta.img modification
- Wild Boost: Port Redmi Wild Boost to Xiaomi devices (verified on Xiaomi 12S/13)
- Modular configuration: Enable/disable features via JSON config files
- EU localization: Restore CN-specific features (NFC, Mi Wallet, Xiao AI) for Global/EU ROMs
- Multiple output formats:
payload.bin(Recovery/OTA) orsuper.img(Hybrid/Fastboot) - Official OTA compatibility: Produce OTA packages compatible with official update app
- Artifact diff reports: Generate post-porting diff reports for review
- Risk highlights: Improve diff-report readability with partition groups and risk flags
- Summary logs: Surface diff-report summary and risk flags in workflow logs
- Artifact state collection: Optimized and removed redundant APK hashing
| Device | Codename | Status |
|---|---|---|
| Xiaomi 13 | fuxi | ✅ Verified |
| Xiaomi 12S | mayfly | ✅ Verified |
| Xiaomi 17 | pudding | ✅ Verified |
| Xiaomi 14 | - | ✅ Port Source |
| Xiaomi 15 | - | ✅ Port Source |
| Redmi K90 | - | ✅ Port Source |
| Redmi K90 Pro | - | ✅ Port Source |
| Target Device | Kernel | Installation Path |
|---|---|---|
| Xiaomi 12S (mayfly) | 5.10 | vendor_boot ramdisk |
| Xiaomi 13 (fuxi) | 5.15 | vendor_dlkm |