benjaminwan 发表于 2013-11-16 16:39:42

第三方ROM(AOSP)移植进度 by benjaminwan

本帖最后由 benjaminwan 于 2014-5-6 21:28 编辑

1.目标
AOSP是谷歌官方的系统,AOKP、CM、乐蛙、小米等第三方系统都是在AOSP的基础上继承并修改而来。
而魔趣、SlimRom、Revolt、liquidsmooth、avatar等第三方系统则是在CM的基础上衍化而来。
DirtyUnicorns、XYAOSP、等则是在AOKP的基础上衍化而来。


关于android版本:Android4.0.4代号ics,对应cm9
Android4.1.2代号jb或jb_2.2,对应cm10
Android4.2.2代号jb_mr1或jb_2.5,对应cm10.1
Android4.3.0代号jb_mr2或jb_2.6,对应cm10.2
Android4.4代号kk,对应cm11


目前广受欢迎的MIUI和乐蛙都是在AOSP4.1.2的基础上开发,所以适配的目标系统就定为AOSP4.1.2。
说实话AOSP虽然作为手机的系统来讲完全够用,但其朴素的风格并不适合日常使用,所以这个rom仅用来移植其它第三方系统。


其实拿到手机后就想要做第三方ROM了,只不过之前没做过,没有经验。
多次碰壁走了许多弯路,才渐渐把这个ROM完善。


因为工作比较忙的原因,经常出差,时间也不固定,平时没有多少时间用来做移植和适配,而且我这种情况也不适合加入团队,所以一直是一个人在做。
平时还要兼顾汉化的事情,所以进度非常慢。



2.第1道门槛
编译源代码对计算机配置要求很高,当然并不是说配置差的计算机就不能编译,而是所花的时间多很多。如果仅仅是做一次性的编译,那么计算机的配置则无所谓,毕竟最多也只是多用几个小时而已。但如果是做系统移植,需要反复编译,那么再用配置差的计算机就不合适了。


向朋友借了一台VPS,双路至强16核心16线程,16G内存,100M专线,用于同步源代码和编译系统。
没有这些基础设施的强力支持,真的无法做出这个ROM,在此感谢我的朋友。
并且节省了许多编译时间,否则要话肯定要花更多倍的时间才能完成。
普通的双核cpu完整编译一次android需要3~4个小时。
4核心8线程的i7可以缩短至1小时以内。
再往上性能瓶颈就在硬盘上了,除非使用ssd,否则难以再缩短了。



3.历程
2013.7
同步各种源代码,为适配做准备


2013.8
研究内核,寻找合适的代码分支和版本
多次尝试编译AOSP。


2013.9.7
AOSP从源代码编译成功,但无法启动


2013.10.2
AOSP修复启动问题,logcat一大堆错误


2013.10.5
AOSP修复显示驱动,可正常完成跑分,音量键、电源键正常


2013.10.6
AOSP修复通讯层,可接打电话、短信、彩信、数据网络,但无声音,网络设置fc


2013.10.16
AOSP修复声音,听筒、外放,耳机模式不正常


2013.10.23
AOSP修复LED、tf卡挂载、各种sensor


2013.10.30
AOSP修复重启掉时间和振动器


2013.10.31
AOSP修复wifi,2.4G和5G正常


2013.11.1
AOSP修复蓝牙,蓝牙收发文件、蓝牙耳机正常


2013.11.4
AOSP修复相机,闪光灯正常


2013.11.5
AOSP修复NFC,可读公交卡


2013.11.6
AOSP修复GPS,修复开关屏死机
AOSP修复播放视频硬件解码
尝试从AOSP移植乐蛙ROM,使用乐蛙官方发布的PatchROM源代码。


2013.11.9
乐蛙ROM启动成功


2013.11.10
修复网络类型配置
"MOBILE";//移动数据连接,不能与连接共存,如果wifi打开,则自动关闭
"WIFI";//wifi服务,当激活时,默认情况下,所有的数据流量将使用此连接。
"MOBILE_MMS";//运营商的多媒体消息服务
"MOBILE_SUPL";//平面定位特定移动数据连接
"MOBILE_DUN";//网络桥接,很老的一个网络
"MOBILE_HIPRI";//高优先级的移动数据连接。相同的为{TYPE_MOBILE},但路由的设置是不同的。只有请求的进程将有机会获得移动的DNS服务器。
"WIMAX";//全球互通微波存取数据连接
"BLUETOOTH";//蓝牙
"DUMMY";//虚拟连接
"ETHERNET";//以太网
"MOBILE_FOTA";
"MOBILE_IMS";
"MOBILE_CBS";
"WIFI_P2P";//通过wifi直连wifi
修复config_protectedNetworks保护网络配置
修复config_data_usage_network_types数据网络配置
修复config_tether_upstream_types配置
修复config_autoBrightnessLevels屏幕亮度级别配置
修复config_autoBrightnessLcdBacklightValues背光自动控制配置
修复config_wifi_dual_band_support双频wifi配置
修复config_wifi_background_scan_support后台wifi自动扫描配置
修复config_automatic_brightness_available自动亮度控制配置
修复power_profile电源管理策略改善耗电
修复apns
修复etc/permissions配置
修复etc/media_profiles视频音频解码配置


AOSP修复相机1300像素
修复电池详细信息


2013.11.11
修改ramdisk,精简pantech定制化的services


2013.11.12
修复usb识别设备,可通用泛泰原厂usb驱动。

2013.11.18
修复耳机检测。被这个问题卡了很久。安卓有2种标准的检测方式,一种是switch class,另一种是alsa jack input event。泛泰官方系统支持第二种。


4.目前进展:
通话(rild):OK
数据网络(data network):OK
话筒(mic):OK
短信(mms):OK
彩信(sms):OK
听筒(headphone):OK
外放(speaker):OK
音量键(Volume button):OK
电源键(Power button):OK
LED灯:充电时会亮,但缺少framework层软件支持。
TF卡挂载:OK
指南针(compass):OK
光线感应(light sensor):OK
距离感应(Distance sensor):OK
陀螺仪(Gyroscope sensor):OK
重力感应(Gravity sensor):OK
线性加速计(Linear acceleration sensor):OK
旋转矢量计(Rotation vector sensor):OK
时间(RTC):OK
振动(Vibration):OK
GPS:OK
NFC:OK
WIFI:OK
蓝牙(Bluetooth):OK
蓝牙耳机(BlueTooth headset)
后置相机(back Camera):OK
前置相机(front Camera):OK
usb-otg:OK
耳机(headset detect):OK

有问题部分:


其它:网络设置会fc。
完整ROM刷机包大小仅145MB,耗电水平与官方系统差不多,待机一晚上约掉电1%


5.测试截图








通话:



数据网络



运营商短信



自动分割,不限制长度的短信



测试彩信最是吐血,测试一次要五毛

彩信自发自收



测试wifi


测试蓝牙


蓝牙耳机后来充电烧掉了,之后的修改的rom就没法测试了蓝牙耳机了。



测试摄像头
后置摄像头



前置摄像头

闪光灯



测试GPS



测试NFC读公交卡



测试各种传感器
振动



光线感应器



距离感应器


线性加速计

重力感应



陀螺仪

重力感应



指南针

旋转矢量计



测试LED灯(能亮,但无framework支持)



存储挂载



可以识别到内置存储和tf卡

可以识别usb-otg挂载的u盘



连接USB数据线后可出现MTP设备



可以读取内部存储和tf卡内容



电池检测


1080P高清硬解



跑分测试



游戏测试





CPU信息



屏幕信息

耳机检测





benjaminwan 发表于 2013-11-16 16:40:48

沙发呀沙发,真是个好沙发。

vampire31 发表于 2013-11-16 16:45:25

板凳留名:o

hu917632696 发表于 2013-11-16 17:00:53

前排支持大大

307175863 发表于 2013-11-16 17:06:20

支持这么勤苦

℡﹏Kellyゞ↘; 发表于 2013-11-16 17:08:05

好猛的CPU16线程

好样的123 发表于 2013-11-16 17:46:59

870,幸亏有了你..谢谢你,明大.

§╳Eric※yick 发表于 2013-11-16 17:48:05

小米牙:D

漂泊 发表于 2013-11-16 17:51:03

我靠,太牛逼了!!!!!!

Z-Liang 发表于 2013-11-16 18:28:40

给力,,,,,,
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 第三方ROM(AOSP)移植进度 by benjaminwan