首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在 MTK Android 15 平台 上,SystemUI 如何单独编译

在 MTK Android 15 平台 上,SystemUI 如何单独编译

原创
作者头像
用户10171634
发布2025-10-17 11:23:27
发布2025-10-17 11:23:27
2110
举报

你说是 MTK 平台,那我可以直接告诉你—— 在 MTK Android 15 平台 上,SystemUI 仍然是一个独立的 APK 模块,但路径和构建命令略有不同于原生 AOSP。

下面是 你在 MTK 平台上快速确认 + 编译 SystemUI 的最实用步骤:


🧩 一、确认 SystemUI 模块路径

在 MTK 源码中,SystemUI 可能在以下两个位置之一:

可能路径

特点

packages/apps/SystemUI/

MTK 有时 fork 自 AOSP

frameworks/base/packages/SystemUI/

与原生一致(多数 MTK BSP)

执行以下命令确认真实路径:

代码语言:javascript
复制
find packages frameworks -type d -name "SystemUI"

复制

通常你会看到类似输出:

代码语言:javascript
复制
frameworks/base/packages/SystemUI

复制

代码语言:javascript
复制
packages/apps/SystemUI

复制


⚙️ 二、确认模块名(很关键)

在找到的目录下执行:

代码语言:javascript
复制
grep "name" Android.bp | head

复制

你应该会看到类似:

代码语言:javascript
复制
name: "SystemUI",

复制

这说明模块名就是 SystemUI,可以直接编译。

但有些 MTK 平台会改成:

代码语言:javascript
复制
name: "SystemUI_MTK",

复制

代码语言:javascript
复制
name: "SystemUI_with_plugins",

复制

👉 请记住这里的 name,编译命令必须一致。


🧱 三、单独编译 SystemUI

执行(假设模块名是 SystemUI):

代码语言:javascript
复制
source build/envsetup.sh
lunch <你的设备代号>  # 例如 
m SystemUI

复制

💡 如果模块名不同,比如 "SystemUI_MTK",命令就改成: m SystemUI_MTK

编译完成后,你可以看到输出类似:

代码语言:javascript
复制
[100% 123/123] out/target/product/system_ext/priv-app/SystemUI/SystemUI.apk

复制


📲 四、推送到设备上测试

代码语言:javascript
复制
adb root
adb remount
adb push out/target/product/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/
adb reboot

复制

⚠️ 如果系统不允许写入:

代码语言:javascript
复制
adb disable-verity
adb reboot
adb root && adb remount

复制

然后再 push。


🧩 五、签名注意事项(MTK 特有)

MTK 平台往往会对 SystemUI 强制要求使用 platform key。 如果你改动资源后推送报 “signature mismatch”, 你需要重新签名:

代码语言:javascript
复制
java -jar signapk.jar platform.x509.pem platform.pk8 SystemUI.apk SystemUI-signed.apk

复制

然后推送 SystemUI-signed.apk 即可。


🧭 六、验证是否生效

执行:

代码语言:javascript
复制
adb logcat | grep SystemUI

复制

看到类似日志:

代码语言:javascript
复制
I SystemUIService: Starting SystemUI.

复制

说明新版本已加载。


🧠 小贴士(针对 MTK 平台)

项目

MTK 差异点

NavigationBarView 代码

通常位于 com.mediatek.systemui.navigationbar 或 com.android.systemui.navigationbar

Lights out 逻辑

仍在 NavigationBarTransitions.java

状态栏入口

可能有 PhoneStatusBarExt 扩展类

布局文件

有时 MTK 使用 overlay (vendor/mediatek/proprietary/packages/overlays/...) 来替换默认布局


如果你现在能在源码中执行:

代码语言:javascript
复制
find frameworks/base/packages/SystemUI -name Android.bp

复制

把结果贴给我(或告诉我模块名),我可以马上告诉你:

  • ✅ 你的 SystemUI 模块名
  • ✅ 输出 APK 的确切路径
  • ✅ 最精确的 adb push 命令

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🧩 一、确认 SystemUI 模块路径
  • ⚙️ 二、确认模块名(很关键)
  • 🧱 三、单独编译 SystemUI
  • 📲 四、推送到设备上测试
  • 🧩 五、签名注意事项(MTK 特有)
  • 🧭 六、验证是否生效
  • 🧠 小贴士(针对 MTK 平台)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档