Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Commit 5fd3707

Browse files
committed
feat(rom): add EU-specific override support for EU ROMs
Add support for devices/{device}/override/eu directory that applies override files specifically for EU ROM ports. Changes: - Add EU override detection based on is_port_eu_rom context flag - Apply EU-specific overrides after general overrides - Move Xiaomi 17 (pudding) device_info.json from general to eu directory since it's specifically needed for xiaomi.eu device parameters This enables proper device-specific configuration for xiaomi.eu ROMs while keeping general overrides separate from EU-specific ones.
1 parent 98cc82d commit 5fd3707

2 files changed

Lines changed: 26 additions & 9 deletions

File tree

devices/pudding/override/general/product/etc/device_info.json renamed to devices/pudding/override/eu/product/etc/device_info.json

File renamed without changes.

src/core/modifiers/rom_modifier.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""ROM-level modifications coordinating all modification phases."""
2+
23
from pathlib import Path
34

45
from src.core.modifiers.base_modifier import BaseModifier
@@ -9,7 +10,7 @@ class RomModifier(BaseModifier):
910

1011
def __init__(self, context):
1112
super().__init__(context, "RomModifier")
12-
13+
1314
self.stock_rom_img = self.ctx.stock_rom_dir
1415
self.target_rom_img = self.ctx.target_rom_dir
1516

@@ -19,29 +20,35 @@ def run_all_modifications(self):
1920

2021
self._sync_and_patch_components()
2122
self._apply_overrides()
22-
23+
2324
self.logger.info("=== Modification Phase Completed ===")
2425

2526
def _clean_bloatware(self):
2627
"""Remove bloatware from target ROM."""
2728
self.logger.info("Step 1: Cleaning Bloatware...")
2829
debloat_list = [
29-
"MSA", "AnalyticsCore", "MiuiDaemon", "MiuiBugReport",
30-
"MiBrowserGlobal", "MiDrop", "XiaomiVip", "libbugreport.so"
30+
"MSA",
31+
"AnalyticsCore",
32+
"MiuiDaemon",
33+
"MiuiBugReport",
34+
"MiBrowserGlobal",
35+
"MiDrop",
36+
"XiaomiVip",
37+
"libbugreport.so",
3138
]
3239
clean_rules = [{"mode": "delete", "target": item} for item in debloat_list]
33-
40+
3441
self.ctx.syncer.execute_rules(None, self.target_rom_img, clean_rules)
3542

3643
def _sync_and_patch_components(self):
3744
"""Sync stock components and apply patches."""
3845
self.logger.info("Step 2: Syncing Stock Components & Patching (via replacements.json)...")
3946
self.logger.info("Phase 2 sync completed.")
40-
47+
4148
def _apply_overrides(self):
4249
"""Apply physical override files."""
4350
self.logger.info("Step 3: Applying Physical Overrides...")
44-
51+
4552
self._apply_common_overrides()
4653

4754
# Apply device-specific general overrides first (if exists)
@@ -50,6 +57,14 @@ def _apply_overrides(self):
5057
self.logger.info(f"Applying general overrides from {general_override_dir}...")
5158
self.ctx.syncer.apply_override(general_override_dir, self.target_rom_img)
5259

60+
# Apply EU-specific overrides for EU ROMs (if exists)
61+
is_eu_rom = getattr(self.ctx, "is_port_eu_rom", False)
62+
if is_eu_rom:
63+
eu_override_dir = Path(f"devices/{self.ctx.stock_rom_code}/override/eu")
64+
if eu_override_dir.exists():
65+
self.logger.info(f"Applying EU-specific overrides from {eu_override_dir}...")
66+
self.ctx.syncer.apply_override(eu_override_dir, self.target_rom_img)
67+
5368
# Apply version-specific overrides (higher priority)
5469
version_override_dir = Path(
5570
f"devices/{self.ctx.stock_rom_code}/override/{self.ctx.port_android_version}"
@@ -63,12 +78,14 @@ def _apply_common_overrides(self):
6378
skip_on_official = device_config.get("overrides", {}).get("skip_common_on_official", True)
6479

6580
if self.ctx.is_official_modify and skip_on_official:
66-
self.logger.info("Official Modification mode detected: Skipping common (devices/common) overrides as per configuration.")
81+
self.logger.info(
82+
"Official Modification mode detected: Skipping common (devices/common) overrides as per configuration."
83+
)
6784
return
6885

6986
os_version_name = self.ctx.port.get_prop("ro.mi.os.version.name", "")
7087
self.logger.info(f"Checking for common overrides. Port OS Version: {os_version_name}")
71-
88+
7289
if os_version_name.startswith("OS3"):
7390
self.logger.info("Detected HyperOS 3.0+, applying common OS3 fixes...")
7491
common_os3_dir = Path("devices/common/override/os3")

0 commit comments

Comments
 (0)