Android ROM

AOSP 

android  open source project   the open source of android system withoutGMS

 

GMS 

google mobileservice   mainly contain theseservices   1. google play 2.location  3. notification.  And GMS is inside  application layer

 

Android System Four layers

Application  (contain the GMS)

Application frame

Lib and run time

Kernel (driver isalso inside)

 

The google serviceare in GMS inside application layer, but the google search may be hidden hardcoded in framework or lib layer

 

It's better tomodify the  application layer, if modifythe application framework, it will be hard to transport

 

Manufactory Process

Chipsets(cpu)company (intel, amd..)  get the AOSP

Then they modifiedthe kernel driver, maybe some lib and the application frame and generate a img

They also develop agood tool for  "design house"to make rom

"Designhouse" use the tool add the apk to the img

"Designhouse" also contact with the manufactory of hardware

OEM order the"Design house" project and may give some requirement of the size soon, and pay for register the GSM service, and sell to users

 

Lots of Chipsetscompany

Thousands of"Design house"
Thousands of OEM

 

Chipsets company domost code work

Small design housedo less code work, big design house do big code work, they will modify theapplication framework

 

Some big companylike Samsung, not only the OEM, but also has design house, manufactory

Nokia is the OEM andBYD is the design house

 

 

 

We wand find a wayto build a rom contain all our apps and work for all OEM (huawei, lenovo,xiaomi, htc, samsung..)

how Xiaomi do this?

If there is somecommon tool can extract all imgs, and the common tool inject our apks?

 

 

For demo

  1. Just install the apk, tell them it's a demo for rom
  2. It seems that adb has the command to get your phone snapshot and inject a app, then we push snapshot back,

Theprocessed snapshot is the demo rom

   3.    Use JSR phone, (one kind manufactory phone),  buy JSR tool, to do the img extraction and do the ROM package, to get a demo ROM, butis only works for JSR phone, and expensive

 

 

 


 

制作Android ROM有两种方法:

编译Android源代码的方法,这个比较复杂,以后再介绍

在已有的ROM基础上制作或者叫定制自己的ROM。

本文介绍的是在已有ROM基础上的定制步骤。

我这里使用的机器是Nexus One,于是下载了第三方的ROM,这里以安卓农夫ROM 2.4为基础。当然也可以用CyanogenMod提供的ROM,实际上安卓农夫的ROM就是在该ROM基础上做的定制。

解压缩ROM,比如安卓农夫ROM 2.4文件名为:

n1_2.4_signed 2.zip

解压缩后,可以看到目录中:

boot.img文件,这是系统的镜像,包括Linux内核以及系统启动的一些基本文件。

META-INF目录,这里主要有系统更新脚本,路径是:META-INF/com/google/android/updater-script

system/app目录,系统自带的应用程序都放在这个目录下,比如日历、联系人、gmail等,你可以把自己的apk文件放在该目录下,这样就可以在刷ROM的时候直接安装上

system/bin目录,系统命令,可以通过adbshell登录后执行,比如top

system/etc目录,类似linux的/etc目录

system/font目录,字体

system/framework目录,android框架,是java实现,在dalvik虚拟机下支持用户java开发的框架

system/lib目录,android本地共享库,都是so文件,是c、c++编译的本地共享库

system/media目录,一些媒体文件,比如bootanimation.zip,压缩包里面是一些png图,用于开机动画,替代这些可以改变开机画面,audio目录下是一些声音文件,用于铃声和通知等

 

 

ROM, recovery, 固件, boot.img 各名词解释

 

ROM= 固件,手机固件相当于手机的系统,刷新固件就相当于刷系统。不同的手机对应不同的固件

ROM一般分为两大类,一种是出自手机制造商官方的原版ROM,特点是稳定,功能上随厂商定制而各有不同;另一种是开发爱好者利用官方发布的源代码自主编译的原生ROM

 

EEProm(电擦除可写只读存储器)类似于计算机的硬盘

 

基带:   操作系统 -> 基带软件 -> 蓝牙网络wifi驱动

在Android系统中,基带是上层软件与手机中无线设备(手机网络,Wi-Fi,蓝牙等)的驱动程序之间的中介。国外的网络运营商很喜欢锁定基带,从而保证用户只能使用运营商自己指定的sim卡。在我国,锁定基带是非法的,手机制造商、网络运营商也不可以通过锁定基带的方法对待违约客户。iOS的"解锁"就是解锁iOS中的基带软件。

(操作系统在一个硬件存储空间, 基带在另一个硬件存储空间?)

 

RIL(RadioInterface Layer): 基带在操作系统上的驱动

 

Recovery模式:

指的是一种可以对安卓机内部的数据或系统进行修改的模式,也叫工程模式(类似于windowspe)。在这个模式下我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置

 

S-OFF就是安全锁关闭的意思,S-ON就是安全锁开着。

解S-OFF就是关闭安全锁的意思吧。

只有关了安全锁才能刷机

 

SPL相当于电脑中的BIOS,可以被刷写和升级

SPL,英文全称是Second ProgramLoader,可以理解为“第二次装系统”,包含很多负责装载os操作系统到RAM中的命令!一般提供的功能有:检测手机硬件,寻找系统启动分区,启动操作系统为系统的基本维护提供操作界面

 

 

 

刷机就是两种方法

    一是recovery方法,就是我们平时将update.zip入到SD卡,然后alt-s的方法,这种方法是调用了recovery的方法将各种img或文件进行复制等操作。想了解recovery的工作原理吗?我也没找到好的资料,就在这看了看recovery的一些源码:点击查看 

    二是fastboot方法,这个方法其实是比较酷的方法,说白点,fastboot就是将已有的各分区映象文件(img文件,意义上类似我们对光盘做的映象文件)直接覆盖写到指定分区中,有点暴力,也有点类似我们平时操作系统的Ghost还原

 

 

recovery是恢复模式,每个手机出厂的时候就有的,但是官方的recovery被锁定了,所以想刷机,就要刷入第三方的recovery

fastboot是快速启动模式(我称之为引导模式),对手机的所有操作都需要经过它,是比recovery更底层的东西,部分手机生产商,如HTC,摩托罗拉,出厂时把fastboot给锁掉了,要刷机就得先解锁fastboot(或叫bootloader),每个手机的fastboot功能都差不多

两个都很重要,不过fastboot更为主要.当你不能进入recovery的时候,不要紧张,你还能进fastboot挽救,不过当你连fastboot都不能进入的时候,那可真就是砖了.

 

我的理解:fastboot是bios程序, recovery是一小段用来更新操作系统的程序被bios调用

 

miui的 官方的刷机步骤简单概括,就是 下载,装驱动,一键官解,刷re,刷rom。

 

   

MIUI

MIUI系统是小米在原生Android系统上面修改的,原生Android系统是谷歌发布的源代码直接编译而来的。

部分型号的miui是基于cm。。。2.35版本全是cm7

 

hboot(我们刷的SPL就是这玩意),这个分区是最基本的引导分区(类似电脑中的BIOS),这个区坏了,差不多就变砖了,所以我们刷SPL时才要如此小心啊。 

 

     boot,这个分区应该是linux操作系统的引导分区。      

 

radio,这个分区是手机的一些底层设备相关的驱动或功能程序吧,如打电话和发短信等,不同的系统版本会有不同的radio配套,我们平时刷了高版本的ROM后,如果不刷高版本的Radio就有可能导致打电话不正常之类的。      

 

recovery,这个分区装的就是前面提到的recovery程序了,这个刷不同的recovery版本可以带来不同的功能,有兴趣的同学可以基于recovery的源码自己编译出一个自己的recovery出来。但一般来说,刷recovery最主要的就是提Root权限。  

system,是一般发布的ROM的主要功能程序分区了,我们说的ROM功能和自带程序的定制应该就是基于这个分区的修改和编译了。      

 

userdata,用户数据,不说了。  

 

cache,缓存,一般是用来OTA升级时的缓存,我们说刷SPL可以增加程序区的空间大小就是主要将这个区的大小缩水了然后加大了程序区的分区大小。

 

 

Doc

http://wenku.baidu.com/link?url=JE2Z0-fuhVGJ0ftBSpo_x9lenSyH5Mulyk87ObyH8mGxW9otm6Q2qmbaMQGh1XExn19WGY1uciVDXQ23J1zvcr9dkoHoxYRmbdwXoxCAGZe

 

http://www.oschina.net/question/4873_27211

 

 

 

锤子OS

按技术来讲,Android本身都不敢自称OS,只是称运行在Linux上的Framework(框架)。目前智能机的OS大致只有Linux,iOS,WP, 黑莓 OS。 Android,WebOS 底层都是Linux。 以汽车为比方,Linux是发动机,Android相当于在这款发动机做了一个完整汽车方案,而CM团队又在Android基础上作一次高级改装方案,而老罗的ROM是在CM做了改进,搞不好应用都是原来CM程序加上自己UI。

以我现在理解就是,就是改了一下内外饰。他怎么就这么大大方方说自己是Smartisan OS ? ,

按公开情况,叫Smartisantheme 更合适点。

 

 

 

 

Nexus 7  FlushCM ROM

http://wiki.cyanogenmod.org/w/Install_CM_for_flo

 

很多朋友第一次了解到android4.3”USB调试模式“开启方式后可能都会和小编一样感到啼笑皆非,这里再提一下,新人不知道的可以看下:

“USB调试”在“开发者选项”里面,默认为隐藏状态,开启步骤:设置——关于平板电脑——版本号——连按四次(提示已处于开发者模式),返回到设置,就可以看到“开发者选项”出来了,进去就可以开启“USB调试模式”。

 

Issue:

进入recovery的时候屏幕上有一个机器人 有个三角形 里边有感叹号

Solve:

重刷recovery 就好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值