![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android Bootloader
loongembedded
本人目前在佛山一家上市公司负责智能终端、服务机器人的研发工作,欢迎大家的指教和交流!。
展开
-
高通SDM450+android9.0读显示屏ID
1.读屏厂OTP时写入DA寄存器的值1) 确定驱动IC厂家指定的读取ID的命令static char id_cmd[] = {0xDA, 0x00, 0x06, 0xA0};static struct mipi_dsi_cmd sc600_800p_id_command = {sizeof(id_cmd), id_cmd, 0x00};#define ILI9881C_0D_800P_VIDEO_SIGNATURE 0x005A //读出来ID和厂家写入的ID值来比较2) ...原创 2021-03-18 20:18:40 · 1214 阅读 · 2 评论 -
android启动---lk入口文件crt0.s解析
android启动---lk入口文件crt0.s解析// .section 伪操作, 用户可以通过.section 伪操作来自定义一个段,每一个段以段名为开始, //以下一个段名或者文件结尾为结束,这里段名是.text.boot。.section ".text.boot"//通过.global把_start声明为一个对链接器可见的全局标识.globl _start//汇编程序缺省入口是 start 标号,也可在连接脚本文件中用 ENTRY 标志指明其它入口点。_start://下面有8种异原创 2021-02-13 20:52:10 · 1127 阅读 · 0 评论 -
android lk DEFINES定义的环境变量的值
比如对于高通MSM8953平台来说,DEFINES定义的环境变量都会生成到out\target\product\msm8953_64\obj\EMMC_BOOTLOADER_OBJ\build-msm8953\config.h中,从\bootable\bootloader\lk\makefile文件可以得到这个信息config.h的值可让我们直观获知定义的环境变量的值,如下:...原创 2021-01-27 15:03:31 · 246 阅读 · 0 评论 -
平述factory reset ——从main system到重引导流程
关于Android或linux的引导流程,网上大都是从开机开始讲述的,或者直接跳过bootloader引导阶段,直接从init进程开始说起。这里我从手机正常运行状态开始,到重启状态以及重启之后的状态略做陈述,意在给读者展开一个更加直白的整机引导框架。 一、device重启之前 在手机的“setting–>备份与重置—>恢复出厂设置”里可以找到该设置,一旦执行了该设置,我们的手机便会恢复到原出厂设置转载 2016-06-11 12:13:36 · 2321 阅读 · 0 评论 -
lk启动流程详细分析
转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容:1).正常开机引导流程2).recovery引导流程3).fastboot引导流程4).ffbm引导流程5).lk向kernel传参 start---------------------------------------- 在bootable/bootloader/lk/arch/转载 2016-08-29 19:58:48 · 5247 阅读 · 0 评论 -
高通8x12平台开机画面制作工具
你可能在网上看到很到关于手动更换手机开机图片的文章,想想自己的开机画面是小两口,好基友的照片多么个性啊。但是你有没有发现,网上下载的什么“一键生成”之类的,在你的手机上不能用啊,( ⊙ o ⊙ )是的,至少我手中的是这个样子的,有不少网上下载的实际上都是用ffmpeg.exe制作的,我没研究过,但是看到mpeg字眼,肯定跟图像等多媒体格式相关。到底你的手机开机画面怎么做,这个完全取决于你手机的bo转载 2016-08-08 14:35:12 · 1931 阅读 · 0 评论 -
如何查看Android设备上的分区信息
Android设备上,一般都会存在一块eMMC存储芯片来存放系统和用户数据,甚至部分的引导程序。一般设备出厂时,各个厂商都会将这块存储芯片分成很多的分区,每个分区内存放不同的内容。具体分区的布局每个厂商或者芯片供应商都会不一样。可以通过下面的命令来查看目前系统中到底有多少分区:[plain] view plain copy cat /proc/partitions 这条命令会显示系统中的所有分区转载 2016-08-12 20:15:46 · 2856 阅读 · 0 评论 -
android 关机充电流程
点击打开链接0.主要流程usb插入通过传递cmdline给init解析从而启动充电进程1. LKlk\app\aboot\aboot.cupdate_cmdline---------- if (boot_into_ffbm) // 工厂测试模式 { cmdline_len += strlen(androidboot_mode)转载 2016-08-15 19:26:47 · 4465 阅读 · 0 评论 -
msm8916 lcd 相关调试点指导
主要代码:LINUX\android\kernel\arch\arm\boot\dts\qcom\dsi-panel-trust-hx8379c-fwvga-video.dtsiLINUX\android\kernel\arch\arm\boot\dts\qcom\msm8916-qrd-skum.dtsi LINUX/android/bootable/bootloader/lk/dev/pmic转载 2016-07-09 15:08:59 · 2609 阅读 · 0 评论 -
lk中内联调用的dsb()
lk中内联调用的dsb() 比如lk的uart_dm_init()函数就调用了dsb()/* Configure the uart clock */ clock_config_uart_dm(id); dsb(); /*Configure GPIO to provide connectivity between UART block原创 2016-06-21 08:27:11 · 2969 阅读 · 0 评论 -
高通平台MSM8916LCM模块移植(一)-bootloader部分
此次移植打算分成两个模块来说,bootloader部分和kernel部分。在实际的移植调试过程中也是这么分成了两个部分分别调试。 高通平台中的bootloader叫做LK(Little Kernel,对于LCM来说LK部分相当重要,它不仅要负责开机部分的LCD显示任务,还要负责传参给kernel的LCM驱动,指导kernel选择合适的LCM参数。1、LK中LCM启动流程注:re转载 2016-07-08 16:25:11 · 4959 阅读 · 1 评论 -
漫谈android系统(4)bring up panel
点击打开链接版权声明: 作者:alex wang 版权:本文版权归作者和CSDN共有 转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢 要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任目录(?)[+]LCDLCD 是指字面意思是液晶显示屏(Liquid Crystal Display), 而RAM: 随机存取存储器(Random-Access Memo转载 2016-07-09 14:39:33 · 3349 阅读 · 0 评论 -
little kernel中如何决定app目录下应该包含哪个app
lk中是会为每个app建立一个thread,所以的app都是放在app这个路径下,那是在哪里决定的呢?一般是通过在project下面的MODULE决定的,例如下面这个例子就只用app下面的aboot这个app\lk-refs-heads-master\projectMODULES += app/aboot转载 2016-08-26 15:05:35 · 1362 阅读 · 0 评论 -
AndroidVerifyBoot
点击打开链接xref: /build/core/Makefile如下code 所示,可见511行是在510行的MKBOOTIMG之后即已经产生boot.img的情况下才调用(BOOT_SIGNER)来为kernel+ramdisk 计算一个总的signature.508$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_转载 2016-08-26 15:06:42 · 3256 阅读 · 0 评论 -
MBR和GPT概要学习
MBR和GPT概要学习 1. MBR和GPT大家所最为熟知的分区方式同时也是最主流的主要有两种:MBR(Master Boot Record)和GPT(GUID Partition Table)。前者应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式),而后者主要是针对MBR的一些缺点进行了改进同时还可以兼容MBR并且支持2TB以上的存储(MBR不支持2TB以上的存储设备)。原创 2016-06-26 16:17:54 · 3457 阅读 · 0 评论 -
Android的开机流程及对应源码位置分析
点击打开链接1.系统引导bootloader 1)源码:bootable/bootloader/* 2)说明:加电后,CPU将先执行bootloader程序,此处有三种选择 a)开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写 b)开机按Home+Power启动到recovery模式,加载recovery转载 2017-03-25 09:47:25 · 2444 阅读 · 0 评论 -
android recovery 模块知识需求汇总
关于android recovery的一个目录,后续继续更新,未完待续......Android recovery模块介绍:(一)android为什么需要recovery升级?(二)android recovery升级过程中掉电处理(三)android recovery差分升级过程掉电分析(四)android recovery升级之USB设备挂载(五)android recovery升级时间与速度转载 2017-11-21 19:20:39 · 754 阅读 · 0 评论 -
Android7.1update.zip升级在system/bin下新增可执行文件没有可执行权限问题
Android7.1update.zip升级在system/bin下新增可执行文件没有可执行权限问题 外出的设备,只能通过update.zip方式升级,比如要在设备/system/bin目录下增加login,在需要时执行login,升级后发现login文件没有可执行权限msm8937_64:/ # ls -l system/bin/login-rw-r--r-- 1 root root 12564原创 2017-11-21 21:00:05 · 3291 阅读 · 0 评论 -
高通MSM8909 CAMERA TUNING 基础
点击打开链接转载自:http://blog.chinaunix.net/uid-7213935-id-5750641.html一. 重要概念:1.色温所谓色温,简而言之,就是定量地以开尔文温度(K)来表示色彩。英国著名物理学家开尔文认为,假定某一黑体物质,能够将落在其上的所有热量吸收,而没有损失,同时又能够将热量生成的能量全部以“光”的形式释放出来的话,它便会因受到热力的高低而变成不同的颜色,如下...转载 2018-05-26 23:18:13 · 2535 阅读 · 0 评论 -
Qcom LK阶段如何使用ADC介绍
点击打开链接摘要本文叙述了在高通平台LK阶段读取mpp2引脚电平的实现过程,附上实现代码。主要实现过程包括配置引脚功能,读取引脚电压。需要特别注意配置mpp2通道和AIN route的选择。需要修改的文件:bootable\bootloader\lk\app\aboot\aboot.cPm8x41_adc.c (dev\pmic\pm8x41)Pm8x41_adc.h (dev\pmic\pm8x...转载 2018-06-05 10:30:22 · 1402 阅读 · 0 评论 -
Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)
《80_NU323_3_Multimedia_Driver_Development_and_Bringup_Guide___Display.pdf》提到Once Kernel bringup is done, perform the following steps for little kernel (LK) bringup.,也就是说推荐先调试kernel,但我们还是先介绍lk。显示屏是co...原创 2018-10-16 11:40:39 · 3222 阅读 · 0 评论 -
msm8953+android8.1启动异常进入recovery模式_需要格式化data分区恢复启动
1. 问题现象和背景"Can't load Android system. Your data may be corrupt. " "If you continue to get this message, you may need to " "perform a factory data reset and erase all user data " "s...原创 2019-06-12 19:41:31 · 4979 阅读 · 3 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮助你找到转载 2017-04-01 09:42:21 · 1708 阅读 · 0 评论 -
recovery的init.rc中挂载system
on boot mount ext4 /dev/block/mmcblk0p65 /system wait rw barrier=1转载 2017-03-23 11:20:56 · 2720 阅读 · 0 评论 -
Android系统开机启动流程及init进程浅析
Android系统启动概述Android系统开机流程基于Linux系统,总体可分为三个阶段:Boot Loader引导程序启动Linux内核启动Android系统启动,Launcher/app启动启动流程如图1形象展示:图1 Android开机启动一般性流程图1只简单地描述了开机启动一般性流程,“正常开机”(注意,是正常模式,不是工厂模式、recovery模式)流程为:1. 手机、TV等andro转载 2016-09-06 16:04:51 · 3645 阅读 · 0 评论 -
打开CMDLINE中的 ” earlyprink “ 参数
点击打开链接解决问题的过程中,好文章推荐,都保存在火狐wilson_sq@qq.com记录中~~~~~~~~grep -r "earlyprintk" kernelkernel/Documentation/driver-model/platform.txt:should use early_platform_init("earlyprintk", &platform_driver)../arch/转载 2016-10-27 16:43:53 · 2639 阅读 · 0 评论 -
Android recovery支持adb shell
Android recovery支持adb shell 最近开发过程注意到recovery不支持adb shell,为了便于调试方便,决定增加此功能。 刚开始我们采用的是user版本系统,进入recovery后,输入adb shell命令,提示“error: no devices/emulators found”,我们先确认recovery.img是否包含有adb,看out\debug\targe原创 2017-03-28 16:57:25 · 10256 阅读 · 3 评论 -
Android gingerbread eMMC booting
Android gingerbread eMMC bootingThis page is currently under construction. The content of this page is due to change quite frequently and thus the quality and acc转载 2014-07-22 10:14:22 · 2256 阅读 · 2 评论 -
Android Bootloader LittleKernel的两篇文章
Android 开发之 ---- bootloader (LK) LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk转载 2014-12-05 14:37:20 · 7506 阅读 · 2 评论 -
__asm__ __volatile__("": : :"memory")
memory 强制gcc编译器假设RAM所有内存单元均被汇编指令修改,这样cpu中的registers和cache中已缓存的内存单元中的数据将作废。cpu将不得不在需要的时候重新读取内存中的数据。这就阻止了cpu又将registers,cache中的数据用于去优化指令,而避免去访问内存。 The GCC manual says using 'asm volatile' preve转载 2015-02-01 15:23:14 · 1883 阅读 · 0 评论 -
uboot环境变量实现分析
u-boot的环境变量用来存储一些经常使用的参数变量,uboot希望将环境变量存储在静态存储器中(如nand nor eeprom mmc)。其中有一些也是大家经常使用,有一些是使用人员自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量: bootdelay 执行自动启动的等候秒数 baudrate 串口控制台的波特率转载 2015-02-08 11:22:09 · 1585 阅读 · 0 评论 -
关机充电如何实现短按pwrkey灭屏
目前关机充电PWRKEY实现长按开机和短按亮屏功能,灭屏是根据BL_SWITCH_TIMEOUTS时间,自动灭屏的;如果需要实现PWRKEY主动灭屏,请按照如下方法修改: alps/mediatek/platform/mt6577/uboot/mt6577_bat.c 函数mt65xx_bat_init 1、修改: if (mt6577_detect_key(BACK转载 2015-02-08 15:25:14 · 2338 阅读 · 0 评论 -
不同分辨率的LCM进行兼容
1.读取不同LCM ID的时序不同,如何处理?2.开机后android会自动resize图片资源的大小,但开机logo无法自行resize,如何操作?保证识别到不同分辨率的LCM后开机logo可以正常显示[Analysis]1. 关于时序JB版本中,接口disp_drv_get_lcm_driver实现compare id并获取到lcm driver以及lcm转载 2015-07-16 12:42:04 · 1515 阅读 · 0 评论 -
android 分区layout以及虚拟内存布局-小结
摘要简述启动过程的内存分配,各个映像的烧写,加载,logo的刷新,文件系统mount。DRAM:外部RAM;ISRAM:内部RAM(128K),(PL会跑在ISRAM里面,去初始化DRAM,loadub映像到DRAM);目录1概述-分区layout以及虚拟内存布局一概述首先了解mt6573nand flash的16分区结构转载 2014-07-22 10:34:33 · 6637 阅读 · 0 评论 -
Android eMMC Booting
Android eMMC BootingContents [hide]1 eMMC binaries1.1 Creating the GPT table1.2 Modifying .IMG Files1.3 TI Android build setup[edit]eMMC binaries转载 2014-07-22 10:15:40 · 1984 阅读 · 0 评论 -
开机logo切换逻辑深入研究
增加暗码命令切换开关机logo功能u-boot logo显示原理:1.————Little Kernel会在platform_early_init阶段首先会获取lcm params,其工作流程就是透过读id找到现在插入的LCM,根据LCM的分辨率申请相应大小的frame buffer并确定frame buffer起始地址2. 为logo.bin预留4M Ram3.转载 2015-07-16 12:47:20 · 3715 阅读 · 0 评论 -
MSM平台RPM
Software Component Block DiagramRPM(Resource Power Manager)是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的ARM Core。之所以加这个东西,就是要控制整个电源相关的shared resources,比如ldo,clock。负责与SMP,MPM交互进入睡眠或者唤醒整个系统。 以下是高通文档中对各个功能模块的说明转载 2016-03-31 11:17:22 · 11404 阅读 · 0 评论 -
简谈高通Trustzone的实现
从trust zone之我见知道,支持trustzone的芯片会跑在两个世界。普通世界、安全世界,对应高通这边是HLOS,QSEE。如下图:如下是HLOS与QSEE的软件架构图HLOS这两分为kernel层,user层。user层的通过qseecom提供的API起动trustzone那边的app。qseecom driver 除了提供API,还调用scm函数做世界切换。scm driver 那边接转载 2016-04-01 10:17:36 · 4420 阅读 · 0 评论 -
Linux驱动基础:msm平台,modem等framework加载
msm平台,AP和CP封装在一起,公用一块内存。所以AP需要负责把整个modem, TZ , rpm等binary拷贝到内存中以供modem等subsystem去运行。那AP这边是怎么分配这些内存,又是怎么读出来相关的binary,又如何把binary上传上去的呢??相关的featureCONFIG_FW_LOADERCONFIG_FW_LOADER_USER_HELPER12modem使用的内转载 2016-04-01 10:25:08 · 4890 阅读 · 1 评论 -
高通msm8994启动流程简介
处理器信息8994包含如下子系统:子系统处理器含义APSS4*Cortex-A53应用子系统APSS4*Cortex-A57应用子系统LPASSQDSP6 v5.5A(Hexagon)低功耗音频子系统RPMCortex-M3资源功耗管理子系统ModemQDSP6 v5(Hexagon)调制解调(基带)处理子系统从上表中可以看出,8994包含应用处理子系统、资源功耗管理子系统、调制子系统、低功耗音转载 2016-04-11 11:29:15 · 3955 阅读 · 0 评论