Qualcomm手机——开机过程【大揭密】(中文版)
- 格式:pdf
- 大小:123.64 KB
- 文档页数:8
用户手册法律声明版权所有© 中兴通讯股份有限公司 2015本资料著作权属中兴通讯股份有限公司,未经著作权人书面许可,任何单位或个人不得以任何方式摘录、复制、翻译、使用、影印或拍照。
侵权必究对本资料中的印刷错误及与最新资料不符之处,我们会及时改进。
这些改动不再事先通知,但会编入新版资料中,中兴通讯保留最终解释权。
我们为智能终端设备用户提供自助服务。
请登录中兴通讯官方网站(www. )获取自助服务及支持机型信息。
请以网站信息为准。
免责声明对于不当使用非中兴通讯指定的通讯硬件或软件而导致的损失,以及自定义操作系统更新带来的安全性威胁,中兴通讯不承担任何责任。
尝试自定义操作系统可能导致设备或应用程序无法正常工作。
对于未经授权对软件进行更改造成的故障和损坏,中兴通讯不承担任何责任。
本手册中的图片仅做参考。
商标声明及相关Logo是中兴通讯股份有限公司的注册商标。
Google和Android是Google, Inc的商标。
Bluetooth®是Bluetooth SIG, Inc的注册商标。
Qualcomm® Snapdragon™处理器由Qualcomm Technologies, Inc生产。
Qualcomm和Snapdragon是Qualcomm Incorporated在全球的注册商标。
需授权使用。
microSDHC标志是SD-3C, LLC的商标。
本产品具备Dolby Laboratories. Dolby, Dolby Audio的授权。
双D标志是Dolby Laboratories的注册商标。
本说明书中出现的其他产品名称、公司名称、服务名称的商标及所有权由其各自的所有人拥有。
版本号: R1.0发布日期: 2015-11-25目录了解您的 Spro 2 (5)安装micro-SIM卡 (8)安装microSDHC™卡(非标配) (9)卸载microSDHC卡 (10)充电 (11)开机和关机 (12)重启Spro 2 (12)唤醒Spro 2 (12)操作触摸屏 (13)了解主页 (16)启动和关闭投影仪 (21)调节投影效果 (24)投射Spro 2存储的文件 (25)投射HDMI连接设备的图像 (25)投射USB设备存储的文件 (27)投射移动设备端的图像 (28)使用USB线连接Spro 2和电脑 (30)连接网络摄像头(非标配) (31)连接移动网络 (32)连接Wi-Fi网络 (33)连接蓝牙设备 (33)启动热点 (34)安全须知 (35)中兴通讯产品有害物质含量状态说明表 (42)保修凭证卡 (43)了解您的Spro 2对焦传感器投影镜头触摸屏主页键菜单键电源键主麦克风USB 接口耳机插孔microSDHC 卡槽micro-SIM 卡槽(仅LTE 版)充电插孔HDMI 输入接口辅麦克风返回键音量减小键音量增大键指示灯散热口支架扬声器三脚架插孔投影镜头投影仪可以把屏幕显示内容投射到平面上。
高通刷机教程高通刷机教程声明:线刷只能作为固件升级、降级和修复软件引起的问题,若硬件问题请选择售后维修。
1、刷机存在风险,刷前须慎重。
2、刷机会清空所有数据,请提前前请备份你的个人资料,如通讯录、短信等。
3、手机电池电量30%以上。
4、刷机前请确保你的数据线连接良好,台式机电脑,数据线最好插在电脑后置USB插口。
5、刷机时请确保电脑的正常运行,勿重启、断电等。
6、刷机过程中请勿移动手机,以免数据线松动致使刷机中断。
7、请严格按照教程及工具的说明来操作。
本教程适用于小米,中兴,联想,等手机品牌,CPU品牌是高通的。
小米部分手机需要解锁Bootloader锁的,用此方法刷机,可以跳过官方解锁。
本教程仅供参考,请详细阅读后声明后再进行刷机操作。
以红米3全网通刷机为例:1:解压刷机包里面的工具文件,点击安装小米手机工具包。
在安装这个工具的同时,也会同时把高通驱动文件安装在电脑上面。
2:提示验证驱动,选择始终安装。
3:手机进刷机模式【黑屏模式】方法1:把手机关机,同时按住音量加减键不放,插入数据线连接电脑。
【常用的方法】手机仍然是黑屏无任何显示界面。
方法2:把手机关机,同时按住开机键,音量加减键不放,插入数据线连接电脑。
手机仍然是黑屏无任何显示界面。
特殊:有些手机无法通过这种按键模式进入刷机模式。
需要改装一下数据线。
4:打开电脑设备管理器。
打开设备管理器是查看电脑有没有安装成功驱动,识别手机的重要步骤。
一定不可忽略。
打开方式为:鼠标右键点击桌面的【计算机/我的电脑】图标,弹出的菜单选择【管理/设备管理器】。
5:这个时候看电脑显示的驱动端口,如果出现Qualcomm HS-USB QDloader 9008 (COM8)【后面带的数字8是USB的插口序号,换个插口就不一样了】表示电脑已经通过安装的驱动识别到手机进入到了高通9008的刷机模式。
6:点击电脑左下角的菜单,找到才安装的miflash刷机工具,打开工具。
移动台开机,需要与系统联系,首先要与某一个小区的信号取得时序同步,这种从无联系到时序同步的过程就是移动台的小区搜索。
需要先后经过时隙同步、扰码码组识别和帧同步、扰码识别(小区识别)等一些过程。
占用信道:P-SCH↓->S-SCH↓->P-CPICH↓->P-CCPCH↓手机开机后需要搜索的信息:(1)最强小区;(2)时隙边界;(3)帧边界;(4)主扰码;(5)广播信道的相关广播。
----------------------------------------------------------------------------------------背景知识:在WCDMA系统中,使用下行扰码区分不同的小区(可以复用)。
在下行物理信道上共有8192个扰码,将这8192个码分成512个组,每组有16个码,其中第一个为主扰码(共有512个主扰码),其余15个为辅扰码。
512个组每8个组成一个大组,共有64个大组(主扰码组)。
使用扰码分组是为了提高同步时的速度。
手机开机后寻找当前基站的主扰码时就可以采取分级的方法,先64个大组选1,再8个组选1,这样就能很快知道接入的扇区的主扰码是什么了。
----------------------------------------------------------------------------------------第一步:选择小区和时隙同步手机首先搜索主同步信道(P-SCH)的主同步码(PSC),与信号最强的基站取得时隙同步。
P-SCH在每个时隙的前256个码片时间内发射全网唯一的主同步码,主同步码具有非周期性自相关的特性。
P-SCH无扩频操作、无信道化编码操作,手机可以通过P-SCH判断WCDMA小区,从而实现时隙同步。
第二步:帧同步和确定扰码组接收主同步信道(P-SCH)上的主同步码PSC后,再接收辅同步信道(S-SCH)上的辅同步码(SSC),共有16个,因为一个无线帧只有15个时隙,只用16个中间的15个。
2019年第11期随着社会的发展和科技的进步,电子产品的功能越来越强,相应的电子线路越来越复杂,集成度也越来越高。
手机电路也由早期的模拟电路时代步入了数字电路时代;依赖着技术的进步,伴随着手机的功能的不断完善及发展,手机的电路步入了高度的复杂和集成化。
这就对维修人员的电子线路的知识要求和维修技能的要求越来越高。
手机的元件也由过去的插件元件变为现在的贴片元件,特别是大量的BGA 封装类型元件被使用。
同时使对手机故障电路的测量难度不断的增加,那么有没有一种方法能让我们简单快速的判断出手机不开机故障的故障点呢?1手机的开机原理及工作过程1.1手机的开机条件供电、主时钟、复位信号、维持信号这四种信号是手机能够开机并能保持开机状态的必须信号,如若任意信号缺失则手机不能够正常完成开机工作。
1.2CPU 的工作条件供电、主时钟、复位信号是手机内部的核心元件CPU 的工作条件,CPU 能够正常工作是手机能正常开机的前提条件。
只有上面三种工作条件都具备了,手机的核心元件CPU 才能工作,手机才能有正常开机的可能,任何一个条件不具备CPU 都不能完成正常启动工作,手机也不能正常开机。
1.3开机方式低电平开机:开机时把开机端电平拉低。
高电平开机:开机时把开机端电平拉高。
目前,市面上大多数的手机都是低电平开机方式为主,开机键的损坏也是手机不开机的常见故障之一。
1.4复位信号a.主时钟在送到CPU 后,才能发送复位信号。
b.复位信号是瞬间完成的,通常为低电平有效,在开机的一瞬间工作。
c.电源电路发出的复位信号使逻辑电路清零复位。
复位信号一般采用的是上电复位,只有在手机开机上电的一瞬间才能检测到,这个信号可以在复位电路的电容的非接地端检测到。
1.5手机开机过程原理框图手机开机过程原理如图1所示。
图1手机开机过程原理框图1.6手机开机过程(1)手机电池供电送电源IC 。
手机开机电流与故障分析宋红记(河南经济贸易技师学院,河南新乡453000)摘要:随着手机广泛运用,伴随着人们的使用手机可能出现各种各样的故障问题。
电源表手机主板开机教程
夹主板上的电池触点,在尾插排线接口下有开机点,用镊子一头对准开机点,一头对地可以夹主板上的电池触点。
一头对地其选项有三,分别为开机,关机,Fo恢复到到断电前状态,将它设置为通电即开机,这是目前部分主板才有的功能。
维修电源接到主板的电池座子,正负极不要错,电压设置6v到4v,按开机键就可以启动,主板直接连接电源,主板是不会自动通电启动的,需要短接主板上的POWER SW针脚,才可以让主板通电工作,将电源连接上,即可关闭。
按住开机键后,把数据线的另一个端口接上。
稍等片刻手机自动开机,首先遇到这种情况先连接充电器,有可能是因为没有电导致不能开机。
稍等片刻手机自动开机,摁住开机键不要动,大概十秒以上,可以长按手机右上方的电源键,几秒钟之后就可以开机,手机单板开机触点,是在手机的右侧位上插入系统光盘启动电脑。
进入PE系统,运行DISKGENIUS,重建主引导记录,取出光盘,退出程序重启即可,开机键在右侧边框上,单独一个按键。
智能手机操作说明书本说明书旨在帮助用户熟悉和正确使用智能手机。
请在使用前仔细阅读本手册,并按照说明进行操作。
第一部分:产品概述智能手机是一种集通讯、娱乐、办公等多功能于一身的便携式电子设备。
其具有高性能处理器、高清屏幕、摄像头、音频功能等特点,方便用户进行语音通话、短信发送、上网浏览、拍照录像等操作。
第二部分:基本操作1. 开机与关机长按电源按钮,手机将开机,出现开机画面后即可正常使用。
为了节省电量,建议在不使用时及时关机。
2. 锁屏与解锁点击电源按钮或侧边的指纹识别区域,即可锁定手机屏幕。
要解锁屏幕,需要滑动屏幕上方的解锁图标或输入密码/指纹来解除锁定。
3. 主界面解锁屏幕后,将进入主界面。
主界面上通常会有应用图标,您可以通过触摸这些图标来打开各种应用程序,如电话、信息、相机、日历等。
4. 触摸屏幕操作智能手机的主要操作方式是通过触摸屏幕来实现的。
您可以使用手指滑动、点击、放大/缩小等手势进行操作。
触摸屏幕时要用轻柔的力度,避免过度用力导致屏幕损坏。
第三部分:通信功能1. 电话功能点击电话图标,进入拨号界面。
您可以输入电话号码,然后点击拨号按钮进行电话拨打。
在来电时,屏幕上会显示来电号码,您可以滑动屏幕上的解锁图标进行接听。
还可以通过通讯录来选择联系人进行拨号。
2. 短信功能点击信息图标,进入短信界面。
您可以点击新建短信按钮,输入收件人号码和内容,然后点击发送按钮进行短信发送。
在收到短信时,屏幕上会有通知,您可以点击通知进行查看。
3. 上网功能智能手机支持Wi-Fi和移动数据上网。
您可以在设置中连接到可用的Wi-Fi网络,或者开启移动数据进行上网浏览。
请注意流量消耗和网络安全问题。
第四部分:应用程序使用1. 相机应用点击相机图标,进入相机应用。
您可以通过点击拍照按钮进行拍照,或者点击录像按钮进行录像。
还可以调整相机设置来满足您的拍摄需求。
2. 音乐应用点击音乐图标,进入音乐应用。
您可以浏览音乐库,选择喜欢的音乐进行播放。
1.6 习题⒈GSM手机电路结构一般分为哪几部分?各部分分别起什么作用?答:GSM手机电路一般可分为四个部分——射频部分、逻辑/音频部分、输入/输出接口部分、电源部分,四个部分相互联系,是一个有机的整体。
射频电路部分主要任务有二:一是完成接收信号的下变频,得到模拟基带信号;二是完成发射模拟基带信号的上变频,得到发射高频信号。
逻辑/音频电路主要功能是以中央处理器为中心,完成对话音等数字信号的处理、传输以及对整机工作的管理和控制,它包括音频信号处理(也称基带电路)和系统逻辑控制两个部分。
输入/输出(I/O)接口部分包括模拟接口,数字接口以及人机接口三部分。
模拟接口包括A/D、D/A变换等。
数字接口主要是数字终端适配器。
人机接口有键盘输入、功能翻盖开关输入、话筒输入、液晶显示屏(LCD)输出、听筒输出、振铃输出、手机状态指示灯输出等。
电源电路包括射频部分电源和逻辑部分电源,两者各自独立,但同是手机电池原始提供。
2. GSM手机射频接收电路有几种结构形式?分别画出简要框图。
答:手机接收机一般有四种基本的电路结构:一种是超外差一次变频接收电路,另一种是超外差二次变频接收电路,第三种是低中频接收电路结构,第四种是直接变频线性接收电路。
超外差一次变频接收电路:超外差二次变频接收电路:低中频接收电路结构:直接变频线性接收电路:3.GSM手机射频发射电路有几种结构形式?分别画出简要框图。
答:手机的发射机一般有三种电路结构:带发射变频模块的发射电路、带发射上变频器的发射电路、直接变频发射电路。
带发射变频模块的发射电路:带发射上变频器的发射电路:直接变频发射电路:4.简述超外差二次变频接收机的工作流程。
答:天线感应到的无线蜂窝信号经天线电路和射频滤波器进入接收机电路。
接收到的信号首先由低噪声放大器进行放大,放大后的信号再经射频滤波后被送到第一混频器。
在第一混频器中,射频信号与接收VCO信号进行混频,得到接收第一中频信号。
1手机关机之后不会与基站通讯在无线通信里,为了网络侧能够保持对手机资源的完全控制,为手机定义了几种状态。
如果楼主熟悉状态机的话就会清楚手机的每一种状态都会被网络侧清晰标记。
以便于网络侧对手机资源的分配释放管理。
而你听到的手机关机其实是针对手机状态的应用转变。
手机在开机时首先完成的是网络鉴权,鉴权通过后转变成网络注册。
这个时候手机处于attach状态。
attach状态下手机会定时发起位置更新信息。
保证网络侧能够在寻呼到自己。
这时候无论手机是否打电话,手机都会与网络保持周期通信。
如果你要关机,一般是长按power 键盘。
这个时候手机会向网络发起detach过程。
保证网络侧知道自己关机重而可以释放自己占有的无线有线资源。
这个时候网络侧会把手机表记为去注册过程。
如果你手机突然掉电,或者进入信号盲区,或者进入漫游网络而鉴权失败。
网络侧会在一定时间后把手机标记为detach状态。
这个时候如果你去呼叫detach状态的手机,网络不会发起寻呼,而是直接通知主叫用户被叫关机。
手机在关机状态下因为没有无线资源,无法与基站通信。
所以不要担心什么手机关机会有后门通信。
手机开机后,即搜索广播控制信号道(BCCH)的载频。
因为系统随时都向在小区中的各用户发送出用户广播控制信息。
手机收集搜索到最强的(BCCH)的载频。
对应的载频频率后,读取频率校正信道(FCCH),使手机(MS)的频率与同步。
所以每一个用户的手机在不同位置(不同的小区)的载频是固定的,它是由GSM网络运营商组网时确定,而不是由用户的GSM 手机来决定。
手机读取同步信道(SCH)的信息后找出基地站(BTS)的任别码,并同步到超高帖TDMA的帖号上。
手机在处理呼叫前读取系统的信息。
比如:邻近小区的情况、现在所处小区的使用频率及小区是否可以使用移动系统的国家号码和网络号码等等,这些信息都可以在以BCCH上得到。
手机在请求接入信道(RACH)上发出接入请求信息,向系统送SIM卡帐号等信息。
对于老年机的开机方法,一般而言,步骤较为简单。
以下是两种典型的老年机开机方法:一、老年机插电开机法:1.首先,找到老年机的充电插口将充电器连接到手机上,然后将充电器插头插入电源插座。
2.当电源线连接好后,通常老年机的屏幕和机身上会显示充电状态,也可能会显示一个电池指示图标,用于显示电量的情况。
3.另外,也有一些老年机在充电时会发出嗡嗡的声音,这是正常现象,表示手机正在充电中。
4.当老年机的电池充电达到一定电量后,就可以开机了。
具体来说,一般情况下充电电量达到30%左右即可。
5.按下老年手机机身上的电源键或按键(通常是机身上的一个小按钮或是开关),稍等片刻,手机就会进入开机状态。
6.当手机成功开机后,屏幕上往往会显示手机的品牌LOGO或者欢迎界面,并伴有相关提示音。
7.此时,可以通过根据提示进行相应操作,如选择语言、设置日期和时间等。
二、老年机接电开机法:1.这种方法主要适用于老年机电池电量已充满而无需再次充电的情况。
2.首先,找到老年机机身背部的电池插槽,通常是一个可以拆卸的背盖,将其打开。
3.取出老年机里面的电池,确保电池正极和负极的位置正确。
4.然后将电池重新放入电池插槽中,确保电池与插槽完全密合。
5.重新盖好机身背盖,并确保背盖安装牢固。
有些老年机的背盖可能需要用一些力气推压才能完全安装好。
6.最后,按下老年手机机身上的电源键或按键,稍等片刻,手机就会进入开机状态。
7.当手机成功开机后,屏幕上往往会显示手机的品牌LOGO或者欢迎界面,并伴有相关提示音。
8.此时,可以通过根据提示进行相应操作,如选择语言、设置日期和时间等。
总之,老年机的开机方法相对简单,只需插上电源线并连接到电源,或者将电池安装好并按下电源键即可。
开机后,根据提示进行相关设置,即可开始使用老年机的通信功能。
对于老年人而言,这种简单的操作方式更易于上手和使用,符合他们的需求和习惯。
1、高通平台android开发总结. 71.1 搭建高通平台环境开发环境. 71.2 搭建高通平台环境开发环境. 71.2.1 高通android智能平台概述. 71.2.1.1 什么是L4,REX,BREW,AMSS以及相互之间的关系. 71.2.2 选择合适的源代码以及工具. 81.2.2.1 获取经过高通打补丁的android 源代码. 81.2.2.2 获取高通针对不同处理器的vendor源代码. 91.2.2.3 获取 modem 源代码. 91.2.2.3.1 高通 modem 源代码编译前的修正. 131.2.3 建立 Android 开发环境. 141.2.4 建立 modem 开发环境. 151.2.4.1 补充. 161.2.4.1.1 获取 licenses 161.2.4.1.2 Flex 简单使用指南. 161.2.4.1.3 启动 license 服务器. 181.2.4.1.4 license 没有办法从服务器获取的几种情况. 181.2.4.1.5 破解 rvds 的license 191.2.5 在高通开发板上烧录文件系统. 191.3 高通平台,android和 modem 编译流程分析. 211.3.1 android代码编译流程分析. 211.3.1.1 编译工具检测. 221.3.1.1.1 221.3.1.2 appsboot.mbn 生成过程解析. 221.3.1.3 boot.img 生成过程解析,怎样手动生成 boog.img 281.3.1.4 编译过程存在的问题. 321.3.1.4.1 prelinkmap 的时候 base 0xaff00000 out of range 32 1.3.1.4.2 LOCAL_SDK_VERSION 使应用程序不能访问hide的api 32 1.3.1.4.3 armv5te-vfp 导致一些游戏运行不了. 321.3.2 分布式编译 android 代码. 331.3.3 modem 代码编译流程分析. 331.3.3.1 单独编译某个模块(如:qcsbl oemsbl). 341.3.3.2 $(TARGETDIR)/exist 规则解析. 361.3.3.3 setup规则解析. 361.3.3.3.1 corebsp_create_incpaths 361.3.3.3.2 create_incpaths 361.3.3.3.3 amsssetup 361.3.3.3.4 amsslinkaddress 361.3.3.3.5 firmware 381.3.3.4 deps规则解析. 381.3.3.5 corebsp_build规则解析. 381.3.3.5.1 corebsp_build_action 381.3.3.5.1.1 corebsp_scons 规则. 391.3.3.5.1.1.1 corebsp_scons_start 392.3.3.5.1.1.1 corebsp_scons_action 391.3.3.5.1.1.2.1 命令 pboot_gen_elf image_header pboot_add_hash 解析. 401.3.3.5.1.1.2.2 env.BinBuilder 过程解析. 411.3.3.5.1.1.2.3 env.MbnBuilder 过程解析. 411.3.3.5.1.1.2.4 env.MbnDummyBuilder 过程解析. 421.3.3.5.1.1.2.5 fsbl.mbn 生成过程解析. 431.3.3.5.1.1.2.6 dbl.mbn 生成过程解析. 431.3.3.5.1.1.2.7 AMSS_AABBQOLYM.mbn 生成过程解析. 431.3.3.5.1.1.2.8 adsp.mbn 生成过程解析. 431.3.3.5.1.1.2.9 osbl.mbn 生成过程解析. 441.3.3.5.1.1.2.10 enandprg_AABBQOLYM.mbn 生成过程解析. 441.3.3.5.1.1.2.11 nandprg_AABBQOLYM.mbn 生成过程解析. 451.3.3.5.1.1.2.12 emmcbld.mbn 生成过程解析. 453.3.3.5.1.1.1 corebsp_scons_done 461.3.3.5.1.2 corebsp 461.3.3.5.2 corebsp_create_incpaths 461.3.3.5.3 corebsp_setup 461.3.3.6 libs 461.3.3.7 copybar规则解析. 471.3.3.8 exe规则解析. 471.3.3.8.1 CORELIBS_AABBQOLYM.mbn生成过程解析. 471.3.3.8.2 amss.mbn 生成过程解析. 471.3.3.9 bldprod规则解析. 481.3.3.10 create_mem_feat_html规则解析. 481.3.3.10.1 501.3.3.11 partition规则解析. 501.3.3.11.1 eMCC 启动和 NAND 启动的分区格式是不一样的,如果是 eMCC 启动,多了编译选项:. 501.4 高通平台 7630 启动流程分析. 521.4.1 启动流程概述. 521.4.2 pbl 流程. 521.4.3 dbl 流程. 521.4.4 osbl 流程. 541.4.4.1 osbl 装载 appsbl 过程分析. 561.4.5 appsbl 流程(源代码在 android中). 561.4.5.1 aboot_init 过程分析(需要侧重关心的部分). 581.4.5.1.1 fastboot 模式分析. 611.4.5.1.1.1 什么是 fastboot 模式. 611.4.5.1.1.2 fastboot 模式与 recovery 模式的区别. 611.4.5.1.1.3 怎样进入 fastboot 模式. 621.4.5.1.1.4 android 系统手机刷机过程分析(补充知识) 621.4.5.1.2 appsbl 引导 android 系统. 631.4.5.1.2.1 Android 系统启动过程中存在的问题. 671.4.5.1.1.1.1 linker 问题导致系统无法启动. 67 1.4.6 AMSS 流程. 691.5 android 系统重启关机流程分析. 821.5.1 c语言中调用 reboot 函数. 821.5.2 通过 adb 让系统重启. 821.5.3 fastboot 模式下系统重启. 831.5.4 系统关机. 841.5.5 内核中的系统调用 reboot 851.6 软件调用流程分析. 891.6.1 设置sim卡状态. 891.6.2 设置背光. 901.6.3 获取电池信息. 901.7 python scons 语法学习. 941.8 python 语法学习. 941.8.1 Python中文全攻略. 941.8.2 推荐一款Python编辑器. 941.8.3 使用 pyExcelerator 读 Execl 文件. 94 1.8.4 xlrd 解析 xls 文件. 951.8.5 xlrd 生成 xls 文件. 951.9 Python 语言之 scons 工具流程分析. 951.9.1 Program 方法. 1001.9.2 Library 方法. 1002、高通常用工具使用. 1012.1 QPST 1012.2 QXDM 1012.3 QCAT 1013、工程模式. 1014、 Android 系统更新升级总结. 1044.1 刷机基本知识. 1044.1.1 各品牌代表手机刷机模式进入方法. 1044.1.1.1 HTC G1 1044.1.1.2 三星 Galaxy i7500 1044.1.1.3 Google Nexus One 1054.1.2 fastboot 模式. 1054.1.2.1 fastboot 模式概述. 1054.1.2.2 PC端fastboot 命令分析. 1064.1.2.2.1 命令选项–w –s -p –c 1064.1.2.3 手机端fastboot 命令分析. 1074.1.2.3.1 boot 1074.1.2.3.2 erase 1074.1.2.3.3 flash 1074.1.2.3.4 continue 1074.1.2.3.5 reboot 1074.1.2.3.6 reboot-bootloader 1074.1.2.3.7 getvar 1074.1.2.3.8 download 1084.1.2.3.9 update 1084.1.2.3.9.1 system/core/fastboot/fastboot.c:294: 1084.1.2.3.9.2 fprintf(stderr, "archive does not contain '%s'\n", name); 108 4.1.2.4 fastboot 模式流程分析. 1084.1.3 recovery 模式. 1084.1.3.1 recovery 模式概述. 1084.1.3.2 软件升级包. 1094.1.3.3 recovery v1跟recovery v2的区别. 1094.1.3.4 软件升级脚本语法解析. 1094.1.3.4.1.1 mount 1104.1.3.4.1.2 getprop 1114.1.3.4.1.3 file_getprop 1114.1.3.4.1.4 assert 1114.1.3.4.1.5 format 1114.1.3.4.1.6 apply_patch_check 1114.1.3.4.1.7 apply_patch_space 1114.1.3.4.1.8 apply_patch 1114.1.3.4.1.9 package_extract_file 1124.1.3.4.1.10 ui_print 1124.1.3.4.1.11 META-INF/com/google/android/update-script 脚本分析. 112 4.1.3.4.2 Recovery 模式中 install_package 函数解析. 1174.1.3.5 Recovery 流程分析. 1184.1.3.5.1 恢复出厂设置. 1184.1.3.5.2 系统更新流程. 1194.1.3.5.3 通过sd卡实现刷机. 1214.1.3.6 系统升级包案例分析. 1224.1.4 工程模式(HBoot) 模式. 1224.1.4.1 HBOOT降级方法. 1224.2 如何制作升级包 update.zip 1234.2.1 手动制作升级包. 1234.2.2 自动制作升级包. 1234.3 Android 签名机制. 1254.4 android 文件系统权限概述. 1254.4.1 获取手机root权限. 1274.4.2 adb默认权限分析. 1284.4.3 adb root命令切换到 root 权限. 1294.4.4 挂载系统分区为读写(remount) 1304.4.5 通过修改 boot.img 获取 Nexus One 权限. 1324.5 系统应用移植. 1324.5.1 Android 2.2在线升级的移植. 1324.5.2 解决donut Gtalk、Market登录不了的问题. 1334.5.3 apk反编译问题总结. 1334.5.4 系统重启. 1335、高通linux内核驱动开发. 1335.1 添加串口调试. 1335.2 Sensor 传感器. 1335.3 USB 枚举 USB Composition 1345.4 USB 枚举 USB Composition 1366、从 android 源代码制作 sdk 1366.1 linux sdk 1376.2 windows sdk 1377、程序安装与调试. 1388、 android 框架流程分析. 1388.1 屏幕显示相关. 1388.1.1 屏幕分辨率. 1388.1.2 屏幕模式. 1398.2 Android 开机充电. 1418.3 Android 开机动画. 1418.3.1 内核开机画面. 1418.3.2 文件系统开机画面. 1418.3.2.1 开机显示的 ANDROID 文字. 1418.3.2.2 ANDROID 发光动画. 1428.3.2.3 initlogo.rle 文件分析. 1438.3.2.4 bootanimation.zip 文件分析. 1438.3.3 三星I9000 开机动画. 1448.4 JNI调用流程. 1458.5 Android 开机铃声. 1458.6 GPS 导航. 1458.6.1 GPS导航原理. 1458.6.2 GPS导航软件. 1459、高通modem框架流程分析. 1469.1.1 添加自定义rpc调用. 1469.1.1.1 从AP端获取modem的系统分区信息. 1469.1.2 添加自定义 AT命令. 14610、 linux 应用. 14610.1 嵌入式Linux通过帧缓存截图 - Framebuffer Screenshot in Embedded Linux 14610.2 Linux下右键烧录文件. 14710.3 Linux下右键svn 1471、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析:1.2 搭建高通平台环境开发环境高通android智能平台概述选择合适的源代码以及工具建立 Android 开发环境(部分略)建立 modem 开发环境1.2.1 高通android智能平台概述高通 7230 android 智能手机解决方案的软件包括两个部分1. 以linux 操作系统为基础的 android 系统2. 以 L4,REX为基础的 Modem 部分在高通7系列的架构中,一个IC内部集成有两个ARM处理器,一个ARM9(或者arm11),专门负责处理通信协议,射频以及GPIO等,软件架构采用AMSS,另外一个是ARM11,用来处理多媒体,上层应用,以及其他的一些任务,运行的系统是 android 系统,这两个处理器之间通过共享内存的硬件方式来进行通信。
安卓手机通电自动开机自动开机原理:手机关机状态,插上充电线,手机进入充电模式,显示屏会显示充电图标。
手机进入充电模式,系统调用程序(class_start charger),在程序后面加重启命令,手机就会通电显示充电自动开机。
安卓版本要求:boot.img文件里必须有init.rc文件,否则无法设置。
(注意区分init和init.rc,必须是init.rc文件,测试魔趣10,11 没有找到init.rc文件)测试机型:小米4安卓版本:魔趣9.0(魔趣10,11不成功)方案一:直接修改魔趣9.0刷机包1.下载:小米4的魔趣9刷机包/cancro.html打开魔趣压缩包,MK90.0-cancro-2106201-HISTORY.zip不要解压,直接把:boot.img文件拖拽出来2. 下载: ROM制作工具/RommakerTools.aspx安装ROM制作工具,打开ROM制作工具选择,实用工具,BOOT编辑选择boot.img文件,打开init.rc文件(用记事本打开)(其他安卓版本,可以用此方法查看是否有init.rc文件,注意区分init和init.rc,必须是init.rc文件,没有init.rc文件则不能修改)记事本打开,编辑,查找:on charger在class_start charger 下一行输入:setprop sys.powerctl rebooton chargerclass_start chargersetprop sys.powerctl reboot保存。
boot.img打包,选择boot.img无校检,不然刷机错误。
09051320_boot.img ,文件重命名改为:boot.img打开刷机包,MK90.0-cancro-2106201-HISTORY.zip不要解压,把重命名的:boot.img拖拽到文件里覆盖源文件保存。
开始刷机,测试。
(制作好的刷机包,下载地址:)链接:https:///s/1mD9RYntSonieDIrc4u1Dog?pwd=ehq 4提取码:ehq4方案二:手机上直接修改 boot.img文件机型:小米4安卓:魔趣91. 先root:下载Magisk-v23.0.apk文件Magisk-v23.0.app改为Magisk-v23.0.zip,Magisk-v23.0.zip,复制到手机里。
一,系统引导bootloader加电,cpu执行bootloader程序,正常启动系统,加载boot.img【其中包含内核。
还有ramdisk】二,内核kernelbootloader加载kernel,kernel自解压,初始化,载入built-in驱动程序,完成启动。
内核启动后会创建若干内核线程,在后装入并执行程序/sbin/init/,载入init process,切换至用户空间(user-space)内核zImage解压缩head.S【这是ARM-Linux运行的第一个文件,这些代码是一个比较独立的代码包裹器。
其作用就是解压Linux内核,并将PC指针跳到内核(vmlinux)的第一条指令】首先初始化自解压相关环境(内存等),调用decompress_kernel进行解压,解压后调用start_kernel启动内核【start_kernel是任何版本linux内核的通用初始化函数,它会初始化很多东西,输出linux版本信息,设置体系结构相关的环境,页表结构初始化,设置系统自陷入口,初始化系统IRQ,初始化核心调度器等等】,最后调用rest_init【rest_init会调用kernel_init启动init进程(缺省是/init)。
然后执行schedule开始任务调度。
这个init是由android的./system/core/init下的代码编译出来的,由此进入了android的代码】。
三,Init进程启动【init是kernel启动的第一个进程,init启动以后,整个android系统就起来了】init进程启动后,根据init.rc 和init. <machine_name>.rc脚本文件建立几个基本服务(servicemanager zygote),然后担当property service 的功能打开.rc文件,解析文件内容。
【system/core/init/init.c】将service信息放置到service.list中【system/core/init/init_parser.c】。
Qualcomm手机开机全过程大揭密摘要:本文试图通过代码来深入剖析Qualcomm手机开机的整个过程,即从按下开机键一直到出现待机界面,Qualcomm的手机软件在整个流程中究竟完成了哪些工作。
本文的主要目标是理清手机的初始化流程,并为今后Amoi定做初始化工作提供一个参考。
关键字:开机、Rex、TMC、ui_task、CoreApp一、开机的简要流程分析Qualcomm的平台软件支持两种启动方式:一种是Nor Flash启动方式,另外一种就是Nand Flash启动方式。
Nor Flash启动方式就相当于硬件直接找到一个入口点开始执行代码,相比较而言会比较简单,且Amoi没有采用此种方式,所以本文对于这种方式不做详细分析。
另外一种就是Nand Flash启动方式,这种方式和PC的启动方式比较相像,也是Amoi采用的Boot方式,下面将详细分析在此方式下面的开机过程。
按下开机键之后,将产生一个时钟中断,从而通知AMSS主芯片的Boot Load 硬件去将放置于Nand Flash上面的第一个Block(8K)里面的Boot代码Copy 到内核内存(RAM,这个内存应该是CPU自带的内存,同后面提到的SDRAM有一定区别,可以把它当作CPU的Cache)的0xFFFF0000地址,并开始执行Boot 代码。
Boot的主要任务是完成整个系统的硬件初始化工作(类似于PC上面的BIOS所完成的硬件自检工作,至于Boot的详细工作机制,后文会有详细描述)。
Boot所完成的工作里面,最重要的一件事就是会将整个手机软件代码(AMSS软件包)拷贝到SDRAM中,并最后将控制权交给AMSS软件。
说白了,就是Boot 执行完成之后,代码的执行点将由Boot跳转到AMSS软件的的入口点函数main().(此函数在mobile.c里实现)。
代码运行到了Main()之后,在这个函数里面将完成操作系统(rex)的初始化工作,其实现方法是调用rex_init()。
Rex_init()完成的工作很简单:1.完成操作系统必要的一些数据结构(timer链表、任务链表等))的初始化之外;2.接下来,它创建了三个任务,分别是:rex_idle_task、rex_dpc_task和tmc_task。
Idle任务没什么好解释的,目前这个任务为空,什么也没做,dpc_task目前不知道是做什么的,暂时可以不用管。
前面的这两个任务都属于操作系统层面的,由操作系统来维护,和手机软件关系不大。
哪一个和手机软件关系大呢?答案是:tmc_task。
大家可以把这个当作操作系统的入口(主)任务,也可以把它当作整个手机软件的入口任务。
即AMSS软件里的所有其它任务的创建和维护就是由这个tmc_task来完成的。
到此为止,整个AMSS软件还并没有跑起来,只是跑到了tmc_task里面了。
在tmc_task里面,会调用tmc_init()来完成整个AMSS软件包的初始化工作,其中最重要的一项工作就是调用tmc_define_tasks()将AMSS软件包所有需要的任务都创建起来了。
比如说slee_task、dog_task、cm_task、wms_task、ui_task 等。
这些任务,一般不需要直接和AL层软件打交道,但请大家记住,手机上所有功能的实现最根本点就是由这些服务组件(Service Task)来完成的。
将来大家跟踪一个具体的功能模块时,比如说通话模块,如果需要,可以再去深入研究它的具体实现。
好了,到现在为止,所有的AMSS核心软件就全部跑起来了(手机的功能模块,在软件方面就体现为OS层面的一个任务)。
但现在大家还根本看不到Brew 和AEE的影子。
呵呵,各位不要急。
到了这个层面之后,我想稍微多说几句。
最早的Qualcomm平台,比如说5xxx系列,是根本没有Brew的,那个时候的AL(Application Layer)层软件开发,是直接调用底层Service task所提供的API 来完成相应的工作的。
从这种角度来看的话,显然那时的开发是比较郁闷和难度较高的。
不过,到了65xx之后,Qualcomm平台引入了Brew,手机开发商就没必要去从这么底层(Service API)的层面进行手机开发了,他们完全可以基于Brew来实现一台手机的所有功能(Qualcomm给我们的参考代码,就是全Brew 平台的)。
Brew的运行环境AEE是如何跑起来的呢?关键在于ui_task(),由于ui_task 和我们手机开发的关系非常密切,其地位也相当重要,所以,后文我将单独对它进行一个深入的研究与分析。
到目前为止,大家只需要知道ui_task将AEE加载起来了,并且,它起到了一个中间层的作用,即所有AMSS底层服务组件的消息,都将经由ui_task而转到AEE,并最终转到具体的App(Applet)的执行代码里面(HandleEvent())。
注意:1.上述的开机过程,在每一次按开机键都需要走一遍,即关机之后,整个系统的所有功能都将消失,而不像有些手机,看起来是关了机,但实际上底层还是有一些软件模块在跑。
为什么可以肯定地说上述开机过程每次都必须走一遍,原因很简单,因为我们的平台软件是基于Nand Flash启动的,所有的代码都需要Copy到SDRAM才能运行,而关机断电之后,SDRAM里的东东会全部丢失,所以,毫无疑问,上述的过程必须每次开机都执行;2.关机的过程相对比较简单,系统检测到关机中断之后,将调用tmc_powerdown_handler()来完成关机动作,它将把所有AMSS的任务都Stop 掉,并最后调用rex_exit()退出Rex,从而完成整个关机动作。
3.显然,关机动作前,如果有必要,每一个任务必须将它希望保存的信息保存到Flash上面,以便下次开机时可以得到这些信息;开机流程简图说明:1.Tmc是操作系统层面和AMSS软件关系最密切的一个任务,不过需要OEM 商在此处修改的地方应该不多;2.ui_task是在操作系统层面,OEM商需要重点研究清楚的一个任务,它是连接底层Task和上层AL的一个中间层,有可能需要加入OEM商的操作流程;3.CoreApp是在Brew层面的一个AL层的入口Applet,它其着管理整个上层AL层软件的作用,根据产品需求,这个App需要定做;4.AEE是整个上层App的运行环境,目前Qualcomm没有公开它的源码,但它的运行机制,Amoi需要好好研究清楚,我将在另外一篇《Qualcomm平台AEE 运行机制深入分析与研究》中探讨它的运行机理和调度机制,大家有兴趣可以参考此文;二、Boot代码深入分析Boot代码大部分是用汇编语言写的,也有小部分,可能需要由OEM商修改,所以用C语言来写。
另外,Boot代码属于Driver范围,所以大家可以在drivers/boot目录里面找到相应的代码。
Boot的代码组织得非常模块化,整个boot的入口点是在Boot_function_table.s里面,这个汇编代码里面实际上是将Boot需要完成的任务封装成了不同的函数,由不同的函数来完成相应的工作,接下来,我将深入分析这些函数所完成的工作,如下所述。
a)mmu_enable_instruction_cache;这个只有在Nand启动模式时才需要,打开ARM的指令Cache.b)boot_hw_ctrl_init此函数主要是完成两条总线(EBI1、EBI2)控制器的初始化,这个函数执行完了之后,系统就可以知道两条总线上连接了哪些设备,同时也可以找得到这些设备,不过,至于单个设备自身的初始化,则不在这里。
[注]这个函数很重要,OEM商如果需要加新的设备到系统中(挂在两条总线上),则需要定做此模块,目前阶段主要是内存。
另外,如前文所述,这个函数是由C 语言来写的,主要目的就是为了方便OEM商定做。
内存设备的修改,可以在这个模块里找到相应的数据结构,相对还是比较简单的。
c)boot_hw_tlmm_init1.晶振时钟的初始化;2.中断表的初始化;3.GPIO的初始化;4.Msm本身的驱动,除了EBI2;d)boot_rom_test这个函数非常简单,只是做一个很简单的Rom检查.(比对两个标志位来检查,并没有一块一块地去检查)。
e)boot_ram_testRam自检,具体算法其实也很简单,就是读、写内存以判断是否成功。
f)boot_ram_init1.拷贝手机代码从Nand Flash到SDRAM。
a.Image__BB_RAM__Base:Core Code;b.Image__APP_RAM__Base:App Code;[注]上述动作是分块进行的,原因是因为Qualcomm支持分块Boot Load.2.将Image__ZI_REGION__ZI区域初始化为0;3.初始化OEM要求的动态Heap;4.至于代码段里的数据初始化,直接在Image里就完成了(编译器完成);g)boot_stack_initializeARM栈初始化,主要是为分块代码加载而预留的.h)boot_cache_mmu_initARM Mmu初始化注意:到此为止,整个Boot的工作就告完结了,那么,它又是如何跳到AMSS 的main入口点呢?原因很简单,ARM编译器在链接的时候会自动做出一个__rt_entry(),由此函数来完成ARM库函数的初始化,并最后将代码执行点跳转到main()。
而__rt_entry()会在boot_reset_handler.s里调用,具体细节,大家可以不用太过关心,只需要明白,Boot跑完之后,手机软件就跑到了main里就Ok了。
三.Ui_task的深入分析从大的方向来讲,ui_task只完成两件事,一件是必要的初始化工作(这个也是我们所关心的,即ui_task到底完成了哪些工作);另外一件事就是各种信号量的事件处理,这也是我们比较关心的,即ui_task到底将哪些事件转发给了上层App。
搞清楚了上述两点,我们也就能大致把ui_task的承上启下的工作机理研究清楚。
1.ui_Init;初始化过程中,ui_task主要完成了如下几件事。
a)创建一个用于Kick Watchdog的定时器,这样WatchDog能够及时得到Kick,假如今后发现手机在ui_task里面自动重启,很有可能就是这个定时器的Timeout设置得过短而造成的;b)注册通话相关的回调,主要是和紧急呼叫相关;c)电话本初始化,之所以要进行这个工作,主要是加快开机之后AL层软件操作电话本的速度,但这样将有可能导致开机速度过慢,如果开机速度过慢,可以考虑进入待机界面之后,在后台开一个task去完成这项工作;d)初始化Sound设备;e)向底层服务任务wms_task注册wms回调,这个回调是在IWms组件里实现的。