你说是 MTK 平台,那我可以直接告诉你—— 在 MTK Android 15 平台 上,SystemUI 仍然是一个独立的 APK 模块,但路径和构建命令略有不同于原生 AOSP。
下面是 你在 MTK 平台上快速确认 + 编译 SystemUI 的最实用步骤:
在 MTK 源码中,SystemUI 可能在以下两个位置之一:
可能路径 | 特点 |
|---|---|
packages/apps/SystemUI/ | MTK 有时 fork 自 AOSP |
frameworks/base/packages/SystemUI/ | 与原生一致(多数 MTK BSP) |
执行以下命令确认真实路径:
find packages frameworks -type d -name "SystemUI"复制
通常你会看到类似输出:
frameworks/base/packages/SystemUI复制
或
packages/apps/SystemUI复制
在找到的目录下执行:
grep "name" Android.bp | head复制
你应该会看到类似:
name: "SystemUI",复制
这说明模块名就是 SystemUI,可以直接编译。
但有些 MTK 平台会改成:
name: "SystemUI_MTK",复制
或
name: "SystemUI_with_plugins",复制
👉 请记住这里的 name,编译命令必须一致。
执行(假设模块名是 SystemUI):
source build/envsetup.sh
lunch <你的设备代号> # 例如
m SystemUI复制
💡 如果模块名不同,比如 "SystemUI_MTK",命令就改成: m SystemUI_MTK
编译完成后,你可以看到输出类似:
[100% 123/123] out/target/product/system_ext/priv-app/SystemUI/SystemUI.apk复制
adb root
adb remount
adb push out/target/product/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/
adb reboot复制
⚠️ 如果系统不允许写入:
adb disable-verity
adb reboot
adb root && adb remount复制
然后再 push。
MTK 平台往往会对 SystemUI 强制要求使用 platform key。 如果你改动资源后推送报 “signature mismatch”, 你需要重新签名:
java -jar signapk.jar platform.x509.pem platform.pk8 SystemUI.apk SystemUI-signed.apk复制
然后推送 SystemUI-signed.apk 即可。
执行:
adb logcat | grep SystemUI复制
看到类似日志:
I SystemUIService: Starting SystemUI.复制
说明新版本已加载。
项目 | MTK 差异点 |
|---|---|
NavigationBarView 代码 | 通常位于 com.mediatek.systemui.navigationbar 或 com.android.systemui.navigationbar |
Lights out 逻辑 | 仍在 NavigationBarTransitions.java |
状态栏入口 | 可能有 PhoneStatusBarExt 扩展类 |
布局文件 | 有时 MTK 使用 overlay (vendor/mediatek/proprietary/packages/overlays/...) 来替换默认布局 |
如果你现在能在源码中执行:
find frameworks/base/packages/SystemUI -name Android.bp复制
把结果贴给我(或告诉我模块名),我可以马上告诉你:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。