
高通以及MTK平台内核单独编译ko的原理
本文讨论了Android项目中进行驱动移植时使用编译模块的方法来节省时间。介绍了高通和MTK平台树外驱动的编译原理及方法,以及树内驱动的编译过程。同时阐述了ko如何打包到image中,动态加载的ko会被打包到vendor_dlkm.img中,最终merge到super.img。

高通平台xbl启动流程补充
这篇文章介绍了高通Android设备在启动过程中的XBL(eXtensible Boot Loader)阶段的详细启动流程。通过流程图和日志分析的方式,对XBL阶段的执行步骤进行了逐一解读,帮助理解从SBL到ABL之后的关键启动环节。

【深入内核】Linux 内核栈详解:你所需要知道的一切
这篇文章详细介绍了Linux内核栈的概念、重要性以及在使用过程中可能遇到的常见问题。以下是摘要总结: 文章首先解释了内核栈的定义及其在内核代码运行时的作用,强调每个线程都有一块独立的内核栈。在ARM64架构下,内核栈大小默认为16KB,不可扩展。内核栈中保存了函数调用链、局部变量、寄存器上下文等信息。 文章还探讨了内核栈的常见错误操作,如分配过大的数组或返回栈上变量的地址,可能导致栈溢出等问题。并对比了内核栈与用户栈的差异。 最后,文章提供了调试内核栈的方法和内核栈溢出的日志示例,给出了避免内核栈溢出的建议,包括避免在内核栈上分配大数组、使用kmalloc分配大缓冲区以及开启DEBUG_STACK_USAGE检测等。

如何排查rro资源overlay的问题?
一、什么是RRO? 运行时资源叠加层 (RRO) 是一个软件包,可在运行时更改目标软件包的资源值。例如,安装在系统映像上的应用可能会根据资源值更改其行为。安装在不同分区中的 RRO 可能会在运行时更改应用的资源值,而不是在构建时硬编码资源值。 您可以启用或停用 RRO。您可以通过编程方式设置启用/停

如何实现动态切换rro?
0. 问题背景 我司一个android项目中,只有一个devicename的情况下,需要集成两套power_profile.xml。原因是两者的电池参数存在差异。而我们当前的设计逻辑是使用了missi的rro overlay机制来实现的。但是这种机制是依赖于devicename的,也就是说一个dev

记一次uid设置错误导致的adb push失败问题
一、问题背景 我司某项目无法使用adb push push文件到/vendor/firmware_mnt目录。使用的指令以及报错结果如下: adb root adb disable-verity adb reboot adb root adb remount adb shell mount -o r
如何下载以及编译ACK?
一、ACK代码下载 mkdir android-kernel && cd android-kernel repo init -u https://android.googlesource.com/kernel/manifest -b BRANCH repo sync 如需查看可与之前的“repo

基于hexo+vercel零成本搭建博客网站
一、为什么选择搭建博客网站? 在数字时代,拥有一个属于自己的博客网站不仅能展示个人才华,还能作为分享生活、交流思想的平台。我个人在工作和学习中记录了一些零散的知识点,目前是通过notion以及飞书知识库进行记录。到了现阶段,本人更希望将自己所学习到的这些零散的知识点汇总,输出一些高质量的文章,供自己

Android编译原理之make编译过程
一、make 以高通的代码为例,高通在编译时使用如下的指令进行编译,实质是对make的封装 ./build.sh --target_only 在执行一系列check的函数后,最终调用make执行执行编译。而make函数是在build/envsetup.sh时声明。

Android编译原理之lunch
一、概述 在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是Makefile,但是随着Android的工程越来越大,模块越来越多,Makefile组织的项目编译时