2022最新高通8155平台开源代码最新代码下载、编译方法

目录

1. 场景

2. 下载高通OpenSource代码

3. 编译

4. 修改代码

5. 问题记录


网上几乎99.99%都是旧教程(我没查到一个新的),现在下载网址变了。

亲测有效!我的是高通SA8155P芯片。不管什么芯片流程都是一样的。

1. 场景

首先看下我们所面临的问题是否类似:已获取高通某一模块的闭源代码,也就是vendor里某一模块。然后你想修改,这时候就需要编译so验证。那么得有个基础工程吧,也就是opensource代码。

如果场景一样,那么按照下面流程就可以~

2. 下载高通OpenSource代码

Android for MSM项目允许用户构建一个基于Android的平台,其中包含针对高通芯片组的其他增强功能

现在服务器已经变更了,太老旧的版本已经不再维护,你也找不到。所以如果没有对应版本找个相近的版本也应该是ok的。

新服务器:现在可行的方式是在CodeLinaro下载,以前是codeaurora,应该已经不维护了,大坑啊。下面给出网址:

Android for MSM Project | CodeLinaro Wiki

网站里解释得很清楚,主要下载命令如下:

repo init --depth=1 -u https://git.codelinaro.org/clo/la/platform/manifest.git -b release -m [manifest] --repo-url=https://git.codelinaro.org/clo/tools/repo.git --repo-branch=qc-stable
repo sync -j8 -c --no-tags

[manifest]从Android releases | CodeLinaro Wiki这里取,注意,要与你获取的vendor闭源模块版本一致(或相近)。只修改manifest就可以。

-c, --current-branch fetch only current branch from server.

--no-tags don't fetch tags.

-j 线程数,这个应该你们都懂

这两项是为了节省下载空间。

不懂 repo 的小伙伴我来给你们讲:

repo用法及原理详解,干了啥干了啥_alibli的博客-CSDN博客

如果下载过程中报各种错误,请检查你的代理服务器啥的。

3. 编译

把你要编译的高通vendor闭源模块拷贝到OpenSource对应目录下,一般是vendor/qcom/,然后运行下面几条命令:

根目录下执行:

source build/envsetup.sh

这个会include一些文件,并且配置编译环境。

然后,选择要编译的系统类型:

lunch

最后,单编译模块:

mmm [vendor模块路径]

vendor模块路径里要有Android.mk文件,这个就是编译用的。

关于m\mm\mmm\mma\mmma这个自己查吧。

最后产物在根目录的out目录里。

4. 修改代码

编译成功的情况下,你要开始修改代码重新编译了。

需要注意几点:

第一,如果你要看日志,请把日志开关打开,一般在Android.mk中和源代码中。有时高通会把打印日志的开关注释但保留。比如源代码中:

//#define LOG_NDEBUG 0

Android.mk中:

#LOCAL_CFLAGS += -DENABLE_LOGV

当然具体你的模块里怎么写的,可能有点区别,还是要认真研究一下。

第二,系统内原so和你自己编的so理论上应该是版本相近,如果遇到找不到symbols等问题,在linux系统中

nm -D [涉及的].so

看下符合表是否一样。

5. 问题记录

1. 报错日志

(native:platform) should not link to lib*** (native:vendor)
(native:platform) can not link to lib*** (native:vendor)

原因:

LOCAL_PROPRIETARY_MODULE是Android vendor module 必须具有的属性,此属性声明将 vendor module放入vendor分区(vendor native),未声明该属性的module将放在system分区(platform native),且这两个分区是不能进行链接的,所以编译会报两个LOCAL_MODULE无法链接的错误。

解决方法:

报错位置对应 Android.mk 添加 LOCAL_PROPRIETARY_MODULE := true

该问题修改参考:Android Sensor Issues_HuluOS的博客-CSDN博客

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值