Ubuntu 16G内存在android系统 10/11/12/13编译 framework时候经常oom内存不足,电脑卡死解决办法stubs-docs-non-updatable metalava

hi粉丝朋友们:

在android高版本编译时候经常会遇到framework一个相关任务编译时候经常把内存吃满:
//frameworks/base:system-api-stubs-docs-non-updatable metalava merged
导致oom即内存不足这种,最好花钱可以搞定就不要折腾了,实在没钱怎么解决呢在不加内存条情况下

更多android framework干货课程 优惠获取试看请加V:androidframework007
在这里插入图片描述

1、官方建议方法减少编译线程

22:42:20 ************************************************************
22:42:20 You are building on a machine with 15.5GB of RAM
22:42:20
22:42:20 The minimum required amount of free memory is around 16GB,
22:42:20 and even with that, some configurations may not work.
22:42:20
22:42:20 If you run into segfaults or other errors, try reducing your
22:42:20 -j value.
22:42:20 ************************************************************

所以这个时候你就把:make 变成 make -j 1 (-j 1代表只用一个线程编译,太慢了,所以一般是耗内存打的报错那个任务编译完成后,你再停止重新make 默认线程数)

2、增加swap内存,通过增加虚拟内存的方法扩大内存

swap是啥大家自己百度哈,大概就是用电脑硬盘当内存用

2.1、创建文件
dd if=/dev/zero of=/var/swap bs=1M count=10240
of:文件的保存路径
bs=1M count=10240:文件的大小为1MB*10240 = 10GB
创建的时间可能会久一点,大概一两分钟。

2.2、将文件格式化为swap文件
mkswap /var/swap
2.3、挂载swap文件
swapon /var/swap
这样,虚拟内存就扩充好了,可以通过命令查看服务器的内存情况:

free -m

系统重启,则需要重新挂载swap文件
想要永久:

vim /etc/fstab
最末尾加入如下:
/var/swap none swap sw 0 0

2.4 增大最小内存剩余触发swap
sudo vi /etc/sysctl.conf
vm.min_free_kbytes=2000000

我的机子上面其实就可以了,但是有网友也反馈还是不行,参考网友建议
还需要加大metalava的大小jvm的如下(因为上面就好了,无法验证是否有效哈):

具体修改如下:

test@test:~/aosp/build/soong/java$ git diff
diff --git a/java/droidstubs.go b/java/droidstubs.go
index 3b1f7c041..8dcc1728e 100644
--- a/java/droidstubs.go
+++ b/java/droidstubs.go
@@ -461,6 +461,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
 
        cmd.BuiltTool("metalava").ImplicitTool(ctx.Config().HostJavaToolPath(ctx, "metalava.jar")).
                Flag(config.JavacVmFlags).
+               Flag("-J-Xmx6114m").
                Flag("-J--add-opens=java.base/java.util=ALL-UNNAMED").
                FlagWithArg("-encoding ", "UTF-8").
                FlagWithArg("-source ", javaVersion.String()).

<think>嗯,用户问的是“android 13mtk”,看起来是想了解关于Android 13和联发科(MTK)芯片的相关信息。首先,我需要确认用户的具体需求。可能的情况包括:用户想知道MTK芯片在Android 13上的适配情况,或者他们遇到了升级到Android 13的问题,或者是想了解MTK设备升级Android 13的特性。 接下来,我需要分析用户的历史对话。之前的提问是关于OTA升级报错,特别是签名验证失败的问题。这可能意味着用户可能正在尝试升级他们的MTK设备到Android 13,但遇到了问题。因此,用户现在可能想了解如何正确升级,或者MTK设备在Android 13上的支持情况,以及可能遇到的兼容性问题。 然后,我需要考虑用户的身份。用户可能是一个普通用户,正在尝试自己升级设备,或者是一个开发者,希望了解MTK平台在Android 13上的开发变化。根据之前的提问,用户可能属于前者,遇到升级问题,需要解决方案。 用户可能没有明确表达的需求可能包括:如何解决MTK设备升级Android 13时的特定错误,或者寻找支持Android 13的MTK设备型号列表,或者希望了解升级后的新功能。因此,在回答时,我需要覆盖这些潜在的问题点,并提供详细的解决方案和相关信息。 另外,考虑到联发科芯片常用于中低端设备,用户可能关心性能优化、新功能适配情况,以及厂商的更新策略。同时,用户可能对如何手动升级或使用第三方工具感兴趣,但需要注意警告风险,避免设备变砖。 最后,要确保回答结构清晰,分点说明,涵盖关键信息如平台变化、升级情况、常见问题、注意事项等,帮助用户全面理解Android 13在MTK设备上的情况,并指导他们正确操作。</think>### Android 13与联发科(MTK)芯片解析 #### 一、MTK平台与Android 13适配概况 联发科(MediaTek)芯片在Android 13的适配中呈现以下特点: - **主流芯片支持**: - 天玑9000/8000系列:首批适配(2022 Q4) - 天玑700/800系列:逐步推送(2023 Q1-Q2) - Helio G系列:部分机型延迟支持 - **内核版本要求**: - 最低需基于**Linux Kernel 5.10**(天玑9000系列使用5.15) - **Vendor分区变化**: - 新增`vendor_boot`分区管理硬件驱动 - 需配合`MTK-SUPPORT`扩展包使用 --- #### 二、关键特性适配情况 | 功能模块 | MTK实现方案 | 兼容性备注 | |---------|------------|-----------| | **动态分区** | MTK Dynamic Partitions 2.0 | 需更新`mtk_ota_merge_tool` | | **光子引擎** | 仅天玑9000/8000支持 | 需配合MTK HyperEngine 5.0 | | **隐私沙盒** | 强制使用MTK SecGuard | 可能影响双卡功能 | | **蓝牙LE Audio** | MTK BLE 5.3定制驱动 | 需更新Firmware | --- #### 三、典型升级问题与解决方案 ##### 1. **VINTF兼容性报错** ```log E Vintf: Skipping incompatible manifest ... ``` **处理步骤**: 1. 检查`compatibility_matrix.xml`版本 2. 更新`mtk-hardware-interfaces`库 3. 重新生成VNDK 33镜像 ##### 2. **DRM密钥失效** - 现象:Widevine L1降级为L3 - 修复方案: ```bash fastboot flash provison prov.img fastboot oem drm-key-inject ``` ##### 3. **Modem异常** - 天玑芯片常见基带问题: - 5G SA模式断流 - VoNR通话回声 - 需更新`md1dg.img`和`md1img.img` --- #### 四、开发者注意事项 1. **ABI兼容性**: - 强制使用`armeabi-v8a`,移除32位库支持 - 需在`Android.bp`添加: ```makefile compile_multilib: "64" ``` 2. **SEPolicy更新**: - MTK新增`mtk_hal_attrs`标签 - 相机相关规则需使用: ```te allow mtk_hal_camera_default ... ``` 3. **性能调优工具**: - MTK Logger 3.0(需ENG工程模式) - `mtkperf`命令行工具: ```bash adb shell mtkperf -gpu -freq 800000 ``` --- #### 五、设备升级指南 1. **官方OTA条件**: - BL版本≥2022.11 - `/vendor`分区剩余≥512MB - 未修改`lk.img`或`preloader` 2. **手动升级风险点**: - 必须使用**MTK SP Flash Tool v6.2212** - 需配套`MTK_AllInOne_DA.bin`引导文件 - 禁止跳过`md_udc`校验 3. **救砖方案**: - 强制进入BROM模式: 1. 断开USB 2. 按住**Vol+ & Power** 15秒 3. 插入数据线 - 使用`MTKClient`开源工具重写分区表 --- #### 六、厂商支持现状 - **优先更新品牌**: - 小米/Redmi(天玑版MIUI 14) - realme(realme UI 4.0) - OPPO(ColorOS 13.1) - **延迟更新机型**: - 采用Helio G95/G96设备 - 2021年前发布的平板设备 若遇到MTK平台专属问题,建议通过`*#*#3646633#*#*`进入工程模式获取详细日志,或联系厂商获取`MTK_SOC_DEBUG`调试包。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值