永发信息网

Android系统中Bootloader固定了系统文件位置造成部分区域不断读取,是否是导致了Flash寿命减少的设计缺陷

答案:3  悬赏:10  手机版
解决时间 2021-02-11 02:12
  • 提问者网友:战魂
  • 2021-02-10 08:25
Android系统中Bootloader固定了系统文件位置造成部分区域不断读取,是否是导致了Flash寿命减少的设计缺陷
最佳答案
  • 五星知识达人网友:躲不过心动
  • 2021-02-10 08:37
安卓系统bootloader模式是什么?如何进入bootloader
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
在安卓系统当中,我们可以看出bootloader在系统当中是很底层的东西,如果在刷机的时候损坏了bootloader那肯定是无法开机的,如果问题严重的话可能需要重写底层,所以新手朋友们在刷机之前还是要了解一些刷机的专业知识。俗话说磨刀不误砍柴工,做好之前的学习准备,在刷机遇到问题的时候就更加游刃有余了。
当然有的品牌的手机bootloader是加了锁的,其目的就是为了防止用户私自刷机从而导致系统不稳定。虽然加了锁。但是在用户强烈的要求下还是能对bootloader的解锁。比如:HTC、华为、索尼等机器都能官方解锁,而三星则直接没有给bootloader加锁。
1、何为“Bootloader”?
  Bootloader是一个Rom里的固件管理工具。使用它可以让你恢复出厂设置,用Fastboot刷机,加载Recovery工具。
  在Bootloader里你也可以查看S-ON/S-OFF的状态,固件和Radio的版本等等。
  进入Bootloader无需root或S-OFF。在每台HTC出厂的手机里都有。
  2、如何进入Bootloader?
  关机,然后按住音量-和电源键。(需要把“快速开机”关闭,在“设置”》“应用程序”里改。或者拔掉电池,让手机真正的关机。)
  你可以直接拔电池来退出Bootloader。
  如果你装了自制recovery的话,可以进入recovery,然后重启手机。
Android BootLoader及两种刷机模式fastboot和recovery

对于一个android手机用户加软件工程师,刷机而不知道它的内部原理,那是很痛苦的。本着学习的心态,还是去研究了一番。

首先,你要知道智能手机就是一台小电脑,如果你恰好用的是linux系统,那可以说两者在系统层面没有区别。因为android就是linux内核外加java虚拟机。当你开机时,机器首先要启动,CPU最先执行的一段程序就是BootLoader,这和电脑上的BIOS是一个玩意儿。它所做的事情就是初始化硬件,CPU时钟之类的,以及加载内核文件。BootLoader可以分为两个阶段。在阶段一,做了一些初始化,在阶段二,如果发现按键有特殊的组合,比如htc g2是回退键和开机键,就会进入fastboot模式。这里要说的是,内核还没有加载,所以更谈不上多进程任务调度之类的概念,机器只是在顺序执行一条条的指令。

BootLoader既然要做硬件初始化之类的,必然和硬件相关,所以它的代码并非通用的,不同的硬件需要不同的BootLoader代码,各大厂商可能都有自己的,并且加入开机画面之类的。最常听说的是uboot和hboot,后者是htc的bootloader。我们常说的刷机,是不会动bootloader的,只会动这之后的系统部分。

再说fastboot,它是bootloader后期进入的一个特殊阶段。可以通过数据线与电脑连接,然后在电脑上执行一些命令,如刷系统镜像到手机上。fastboot可以理解为实现了一个简单的通信协议,接收命令并更新镜像文件,其他什么的干不了。

如果没有进入fastboot,bootloader继续执行,如果又发现有特殊的按键组合,比如htc g2上是home键和开机键,则会进入recovery模式。分析recovery.img镜像文件就会发现,它里面包含了一个kernel以及一个可执行程序recovery,以及一些初始化文件。从某种意义来说,这就是一个小型操作系统,和正常启动进入的系统的kernel是一样的,只是init及之后干的事情不同。这里的kernel和我们常说的linux内核还是有差异的,linux内核是包括kernel以及调度器内存管理等除显示界面外完整系统。而kernel只是指内核init进程启动前的那一段逻辑。

在recovery模式下,会加载了部分文件系统,所以才可以读sdcard中的update.zip进行刷机,当然,也可以清除cache和用户数据。

讲到这里,我想说的是,既然recovery是一个小型操作系统并且有手机这样现成的设备,我们可以基于它做些有趣的事,比如移植网络协议及无线网络连接逻辑,然后开发一个命令行版的新浪微博客户端,这样就可以用自己改造的系统发微博了。当然,先改一个hello world版的recovery再说。也许还可以基于这些实践写一些帮助学习操作系统的教程。
全部回答
  • 1楼网友:独钓一江月
  • 2021-02-10 10:13
那你能给出好的方式吗,固化就是这样的。
  • 2楼网友:雾月
  • 2021-02-10 08:57
我觉得是的,受力不均! 只是这个想必也只能是这样才好的,再说,我觉得Flash的寿命不是关键,不是局限。当然,应该说是视产品而言了。只能说软件算法应该还有很大空间!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯