移植 AOSP 的必要条件都有哪些? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phantastar
V2EX    Android

移植 AOSP 的必要条件都有哪些?

  •  
  •   phantastar 2017-03-27 05:30:15 +08:00 32031 次点击
    这是一个创建于 3121 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近被华为 mate8 系统上的各种不便搞得头大,遂决定直接移植 aosp 到手机上。
    看了 aosp 官网和 XDA university 的介绍,似乎都没有给出 Nexus 设备以外的详细移植介绍。
    所以小弟在这里想麻烦各位 V 友给予一些提示,小弟初次接触 Android 移植,还请各位大大给予一条明路:
    1.aosp 移植方面有没有详细教程,应该去哪里寻找?(这个有的话小弟就可以己去琢磨了)
    2.aosp 移植的必要前提有哪些?(官网的 preparation 步骤已经完成)
    3.只有 Android6.0 的 kernel 源码,可以移植 Android7.1 吗?(华为官方只开放了 mate8 Android6.0 的 kernel 源代码,目前 mate8 最高可以升级至官方 Android7.0)
    4.华为官方的 kernel 源码应该怎样利用以结合 aosp ?
    5.如果 mate8 因 kernel 限制而只能移植 Android6.0 aosp ,那么 HTC one M7 这类官方停更机型为什么可以打破限制,出现第三方的最新版本系统 ROM ?
    109 条回复    2018-07-28 17:57:38 +08:00
    1  2  
    mengzx
        1
    mengzx  
       2017-03-27 07:56:15 +08:00 via Android
    可以看看 aokp 这些 rom 使用,如果一定要自己编译我也不知道,就是感觉编译这些是不是太费时间了
    Shura
        2
    Shura  
       2017-03-27 08:03:48 +08:00 via Android
    麒麟 soc 的手机最好就不要折腾了,官方开源不完整,很难移植的。至于 m7 因为 soc 是骁龙 600 ,相同 soc 的很容易移植的。
    nxn1987
        3
    nxn1987  
       2017-03-27 08:13:39 +08:00   1
    移植最大的问题是驱动,官方开源 kernel 但是不开源驱动的,所以基本上无解。

    大厂的 SoC 开源相对规范一些,再加上民间大神多,很多坑都有人解决,所以第三方 ROM 比较活跃。
    8rB61FLBPVSxW2C8
        4
    8rB61FLBPVSxW2C8  
       2017-03-27 08:18:10 +08:00 via Android
    麒麟 CPU ,不用考虑拉,外部连分泄露的代码都没。 HAL 都层搞不了
    paranoiagu
        5
    paranoiagu  
       2017-03-27 08:20:12 +08:00 via Android
    最大的问题是麒麟似乎没人搞,资料也少。
    华为官方有 7.1ROM 吗?有的话,直接用华为自己的内核试试看。
    总的来说,不简单。
    phantastar
        6
    phantastar  
    OP
       2017-03-27 09:29:28 +08:00
    @mengzx 嗯嗯谢谢
    crysislinux
        7
    crysislinux  
       2017-03-27 09:31:59 +08:00
    不如换个手机算了。。
    phantastar
        8
    phantastar  
    OP
       2017-03-27 09:34:11 +08:00
    @paranoiagu 上面有人提到说驱动不开源。请问按您的意思,是不是驱动可以用华为现成的(或者说制作不含驱动的 rom )
    phantastar
        9
    phantastar  
    OP
       2017-03-27 09:37:07 +08:00
    @nxn1987 我现在在想一个问题:有没有办法将华为官方的驱动合并入 aosp ,还望您给出一些意见
    phantastar
        10
    phantastar  
    OP
       2017-03-27 09:37:38 +08:00
    @Shura 嗯嗯我在考虑联系官方
    phantastar
        11
    phantastar  
    OP
       2017-03-27 09:38:21 +08:00
    @HackerOO7 简直要哭了
    phantastar
        12
    phantastar  
    OP
       2017-03-27 09:40:39 +08:00
    @crysislinux 其实这个问题有点像是:如何为一部国产手机制作 rom (又名:菜鸟的成长)(括弧笑)
    gam2046
        13
    gam2046  
       2017-03-27 09:45:06 +08:00
    个人感觉比较吭的 都是和驱动相关的,比如第三方 ROM 里 人民群众喜闻乐见的相机不能用啦, WiFi 不正常啦之类的。你这直接说不含驱动的 ROM ,那就没啥意义了,手机上所有硬件都不能用,那为啥不去买个功能机算了。至于驱动从官方其他系统系统中移植的可行性不太懂,但是参考 Windows 的情况,可能会出现与系统不适配的情况(类比, XP 的显卡驱动丢到 Win10 上 很可能也是用不了的)。

    综上,楼主的华为可能成为学费机,比较切实可行的方案时,出掉手中的华为回口血,然后重新买个自己喜欢的(比如说亲儿子系列)
    badec
        14
    badec  
       2017-03-27 09:51:29 +08:00
    华为 emui5 已经很贴近原生了,有什么真的很不便的问题吗? lz 的描述只有换一部手机才能解决
    qdk0901
        15
    qdk0901  
       2017-03-27 09:56:18 +08:00
    kernel 不升级,一些驱动能重用。
    但是原有的 hal 库在新版本上就有可能用不了了
    besto
        16
    besto  
       2017-03-27 10:21:54 +08:00
    一台好电脑,最好装 Linux 。
    没有底层的库还是不要指望了。
    phantastar
        17
    phantastar  
    OP
       2017-03-27 10:25:16 +08:00
    @gam2046 嗯嗯感谢,我想完美移植,看来难度不小
    ovear
        18
    ovear  
       2017-03-27 10:30:05 +08:00 via Android
    小版本还好,大版本的系统架构可能都不一样,驱动也有很大几率不通用。)比如说 2.3 到 4.0 的触摸屏驱动,就是完全不同的架构。
    更大的问题是,如果驱动是在内核里面的。。。而那个内核又不支持你所需的版本。。那就基本残废了
    d7101120120
        19
    d7101120120  
       2017-03-27 10:34:34 +08:00 via Android
    如果是不喜欢 emui 的图标之类的可以装一个 nova launcher
    mozartgho
        20
    mozartgho  
       2017-03-27 11:20:22 +08:00
    64 位 Linux , 50G 空闲硬盘是必须的。可以看 CM 的 wiki ,另外需要设备厂商开放 Device Tree ,否则没法适配
    jyf
        21
    jyf  
       2017-03-27 11:24:25 +08:00
    @phantastar 应该可以的 就我了解 ubuntu phone 底层就用的 android 的那一套 但是内核的模块要直接用估计做的工作要多许多
    besto
        22
    besto  
       2017-03-27 11:58:54 +08:00
    @mozartgho 50G 是妥妥不够的。 AOSP 带 git 就有 46G 大小。
    shanjinwei
        23
    shanjinwei  
       2017-03-27 12:24:19 +08:00 via Android
    这个的工作量相当于重新开发
    Cabana
        24
    Cabana  
       2017-03-27 12:39:24 +08:00 via Android
    首先你得找一台编译服务器
    kmahyyg
        25
    kmahyyg  
       2017-03-27 12:41:50 +08:00 via Android
    device tree + vendor files ,基本就这两个

    github 搜索 android_device_厂商_设备代号,可以有 device tree 。 The muppets 里集合了大多数厂商的 vendor 文件,仍在 github.
    mozartgho
        26
    mozartgho  
       2017-03-27 12:44:52 +08:00
    phantastar
        27
    phantastar  
    OP
       2017-03-27 13:20:54 +08:00 via Android
    @ovear 嗯嗯,我私信了一位 XDA 的华为 ROM 作者,希望能得到一些帮助
    phantastar
        28
    phantastar  
    OP
       2017-03-27 13:24:11 +08:00 via Android
    @d7101120120 我想完全照着 pixel 的 ROM 来移植,完完全全的原生安卓那种感觉,目前还不考虑换设备这个问题,我想费费脑筋去解决这个的适配问题
    phantastar
        29
    phantastar  
    OP
       2017-03-27 13:25:09 +08:00 via Android
    @mozartgho 嗯嗯我去 CM 那边瞅瞅
    phantastar
        30
    phantastar  
    OP
       2017-03-27 13:28:06 +08:00 via Android
    @besto 我完成 repo sync 后大概占用 50+G ,我在考虑顺便换硬盘了
    phantastar
        31
    phantastar  
    OP
       2017-03-27 13:28:58 +08:00 via Android
    @shanjinwei 感谢,我可能有点初生牛犊不怕虎,想下手试试
    phantastar
        32
    phantastar  
    OP
       2017-03-27 13:30:39 +08:00 via Android
    @Cabana 笔记本 i5 H 版也可以做 Jack 服务器的吧,谷歌官方对服务器的事儿简直就是一笔带过,我要哭了
    phantastar
        33
    phantastar  
    OP
       2017-03-27 13:40:37 +08:00 via Android
    @kmahyyg 嗯嗯我查了一下这个 muppets ,很厉害。但是没有 mate8 ,我用您说的语法查询找到了 mate8 国际版的 vendor 和 kernel 。我在想是否有方法能自己去扒取那些没有现成资料的设备的 tree 还有 vendorfiles
    phantastar
        34
    phantastar  
    OP
       2017-03-27 13:41:40 +08:00 via Android
    @mozartgho 本来想买 240G SSD 的,你这么说的话这下完蛋了
    phantastar
        35
    phantastar  
    OP
       2017-03-27 13:43:10 +08:0 via Android
    @badec 嗯,其实我就是自己矫情想搞一搞事情,钻研学习一下
    besto
        36
    besto  
       2017-03-27 14:14:55 +08:00
    @phantastar 至少编译 4 小时。另外 4G 内存基本一定会有 OOM 的问题。
    phantastar
        37
    phantastar  
    OP
       2017-03-27 14:28:35 +08:00
    @besto 嗯嗯,编译之前请问都存在哪些必要步骤?似乎网上没有太详细的教程
    RobertYang
        38
    RobertYang  
       2017-03-27 14:58:03 +08:00 via Android
    @mozartgho 一台机器一个版本 200GB 可用空间完全足够
    RobertYang
        39
    RobertYang  
       2017-03-27 14:59:56 +08:00 via Android
    @besto 4 小时够编译两台了,还是笔记本。。。
    besto
        40
    besto  
       2017-03-27 15:03:30 +08:00
    @RobertYang 最新 Android ,用笔记本 2 小时能编完?
    RobertYang
        41
    RobertYang  
       2017-03-27 15:05:52 +08:00 via Android
    @besto 怎么不能,而且还是用的高通 llvm ,跑的还慢
    besto
        42
    besto  
       2017-03-27 15:11:57 +08:00   1
    @phantastar
    第一步没有任何难度,拿到 AOSP 之后,先编译那个能在模拟器上跑的,检查 android 的编译环境,该装的装好,内存不够, jack server 大小调调好。先保证默认那个能在模拟器上跑的能搞起来。
    第二步就比较麻烦了,假设没有 kernel 和任何厂家 native 的代码,那么最好能拿到 kernel image+dtb 的组合,能 root 现有机器,把所有的 binary 都拿出来,做的好的厂家,所有自己的东西会放 /vendor ,不好的,随便放,那就麻烦了。不管怎么样, hal 层的 so 必须得有尤其是 grallc ,另外请分析一下 init.xxxx.rc ,看看里面有没有什么必须要启动的 service ,一并移植了。
    第三步,是如何烧进去,自己查教程。。。注意分区表

    以上只能说有可能起来, wifi/bt 很可能不可用(这些说不定有 firmware 啥的),如果有 key 签名啥的,很可能就是起不来的。
    besto
        43
    besto  
       2017-03-27 15:15:11 +08:00
    @RobertYang 32 核 E5-2450 +48G 内存,全 SSD ,编译一遍用时也得 40 分钟,你确定是原始 Android ,干净的还没有 ccache ?
    RobertYang
        44
    RobertYang  
       2017-03-27 15:21:22 +08:00 via Android
    @besto make clean 之后 2 小时 12 分钟, lineageos cm14.1 ,可能没清 ccache ,晚上我全清了再试下咯
    xingda920813
        45
    xingda920813  
       2017-03-27 15:26:27 +08:00
    @kmahyyg

    CyanogenMod, LineageOS 某一款设备的维护者是怎么制作或取得 device, vendor 和 kernel 的?

    换句话说, 如果一款设备比较冷门, Github 上搜不到(也没有维护者), 我怎么自己制作 device 和 vendor?
    xingda920813
        46
    xingda920813  
       2017-03-27 15:28:37 +08:00
    @besto

    第二步有什么教程或参考资料没? 感觉涉及到厂商的东西很不好取得.

    以前 CyanogenMod 的 Wiki 上写的也不是很详细.
    besto
        47
    besto  
       2017-03-27 15:29:31 +08:00
    @RobertYang 我只能说你得笔记本很强大 :-) 当然系统里可能有些精简。 ccache 倒是不会节约太多时间的。
    RobertYang
        48
    RobertYang  
       2017-03-27 15:32:04 +08:00 via Android
    @besto i7 6700HQ 在 Win 下面开的 Ubuntu 虚拟机,给分了 8G 内存过去,当然是在 SSD 下面,没你说的那么夸张
    besto
        49
    besto  
       2017-03-27 15:41:35 +08:00   1
    @xingda920813 并没有,因为懂这个的,基本都是做 rom 的,或是 vendor 自己的人。
    phantastar
        50
    phantastar  
    OP
       2017-03-27 16:04:32 +08:00
    @besto 这位先生不知道能不能微信或者 telegram 与你联系,您指出了大致方向,不过我觉得有些细碎的东西可能还要与你后续联系。
    我微信:jack6551
    Telegram:https://t.me/androidopensourceproject
    群主是我
    CuminLo
        51
    CuminLo  
       2017-03-27 16:13:53 +08:00
    赶紧收藏。
    一直想自己移植,但是技术太差。
    希望群主能出了教程之类的,让我们小白也搞搞其他机器的移植。
    honeycomb
        52
    honeycomb  
       2017-03-27 16:14:22 +08:00 via Android
    @besto 4.3 正式发布的时候,为了开当时还只是隐藏着的 appops 编译过, 4G 内存的虚拟机还勉强够用。
    besto
        53
    besto  
       2017-03-27 16:15:38 +08:00
    @honeycomb 名字很有个性。
    besto
        54
    besto  
       2017-03-27 16:16:50 +08:00
    @phantastar 你可以继续提问,聊天工具上讲实话很难说清楚。说实话坑非常之多,并不是非常推荐自己移植这个。
    uleh
        55
    uleh  
       2017-03-27 16:23:43 +08:00
    1. 移植驱动
    2. 根据硬件不同,部分 HAL 可能需要改
    3. 1 和 2 搞定,基本就 OK 了。 Framework 再往上可能会有点小问题,但应该不会很多
    honeycomb
        56
    honeycomb  
       2017-03-27 16:51:21 +08:00
    @besto 注册的时候弄错了,原本想用 Honeypot 。
    kmahyyg
        57
    kmahyyg  
       2017-03-27 17:23:04 +08:00 via Android   1
    @besto 膜拜大神

    @xingda920813 vendor 的话有个专门的 extract-files.sh 可以提取, tree 来自于 kernel+driver ,这个就只能借助官方开源的部分来自己改。

    自己在 16G ram +300gb ssd 的 linode 跑过 rr , ccache 100g , e3-1275 v3 *8 ,耗时 1.5h
    kmahyyg
        58
    kmahyyg  
       2017-03-27 17:26:31 +08:00 via Android
    @besto 搭车问个问题,按照 RR 和 Lineageos+aosp 的 wiki 部署安装编译环境,然后编译 RR 的官方支持机型,私有库齐全,最终提示 build successfully ,但是下载回来的 zip 包里的 system.new.dat 是坏的,这个问题在哪里?

    我的编译环境安装脚本:(newbie) https://bitbucket.org/kmahyyg/android-build-env
    phantastar
        59
    phantastar  
    OP
       2017-03-27 17:39:17 +08:00 via Android
    @besto 好的感谢,我的硬盘被 repo 同步的东西塞满了,这月末薪水下来换上硬盘就干。到时候还要麻烦先生您予以指导。
    phantastar
        60
    phantastar  
    OP
       2017-03-27 17:41:06 +08:00 via Android
    @uleh 嗯嗯感谢,我暂时没有了硬盘空间,这段时间要睡饱饱,等待月末搞起
    Inkroot
        61
    Inkroot  
       2017-03-27 18:26:59 +08:00
    赶紧收藏,自己也想移植 Rom 来着。。。
    paranoiagu
        62
    paranoiagu  
       2017-03-27 19:10:44 +08:00 via Android
    @phantastar 其实我也不会。驱动肯定是在内核中的。总之我觉得几乎不可能。需要了解的内容太多了。
    paranoiagu
        63
    paranoiagu  
       2017-03-27 19:12:22 +08:00 via Android
    @mozartgho 不需要 500g , 120g 妥妥的够了。又不是要编译几十个机型。
    feikaras
        64
    feikaras  
       2017-03-27 20:26:56 +08:00
    三个字总结,买手机。
    abmin521
        65
    abmin521  
       2017-03-27 20:34:50 +08:00   1
    我只知道最后一个 HTC 是大部分都开源 kernel 的

    PS
    根据维基上面说的 5.0/5.0.1/5.0.2(Lollipop)基于 Linux Kernel 3.4.0
    但是 htc one x 用了 3.1 的 kernel 也用上了 Android5.1


    还是一句话坑多,不是靠这个吃饭的,感觉没必要
    Flygoat
        66
    Flygoat  
       2017-03-27 20:41:38 +08:00   2
    解释一下,关于驱动部分, AOSP 也必须使用部分可以从 Stock ROM 提取出的闭源二进制驱动或 Firmware ,位于 AOSP 源码的 vendor 目录下。但大都以库的形式存在,比如 LibRIL.so 这些的。 HAL 层会引用这些库。但是这些库定义的东西目前除了逆向工程和部分厂商开放的文档( Qualcomm 把自家的 RIL 文档全部开放了, Github 里修改过的 kickstart , QCRIL 满天飞)之外没有办法获取。特别是针对这些小众 SoC 。所以,除非获得菊厂的支持,以一己之力搞这个,洗洗睡吧。我在有类似设备有 Qualcomm 文档的情况下花了快半年才给我的三星国内定制版平板上了 AOSP 。
    Flygoat
        67
    Flygoat  
       2017-03-27 20:42:43 +08:00
    关于 Kernel 的话 Android 版本间的 Fallback 变化其实不大,照着官方的 Changelist 打打 Patch 就好了。
    Flygoat
        68
    Flygoat  
       2017-03-27 20:53:08 +08:00
    另外找了一下麒麟 950 和 balong720 baseband 连公开的 datasheet 都没有。这个难度。。。。。
    phantastar
        69
    phantastar  
    OP
       2017-03-27 21:07:27 +08:00 via Android
    @Flygoat 嗯嗯感谢,我还没有放弃。请问您的意思是不是说 aosp 和华为官方 vendor 的库对接需要手动调整?
    Flygoat
        70
    Flygoat  
       2017-03-27 21:10:50 +08:00
    @phantastar #69 不是手动调整的问题,是从头开始写一个 HAL 层
    phantastar
        71
    phantastar  
    OP
       2017-03-27 21:13:53 +08:00 via Android
    @Flygoat HAL 层重写可以使用 Python 吗?还是强制 Java or 汇编?
    phantastar
        72
    phantastar  
    OP
       2017-03-27 21:14:38 +08:00 via Android
    @Flygoat 逆向工程是不是意味着要去读机器码?
    Flygoat
        73
    Flygoat  
       2017-03-27 21:16:57 +08:00
    @phantastar #72 意味着很可能需要拆机器找引脚定义读 SPI 。最轻的情况是要去逆向原机器里的二进制。读机器是肯定的。
    fashioncj
        74
    fashioncj  
       2017-03-27 21:21:46 +08:00   2
    补充几点, jack-server 4G 内存或者 8G 内存基本都会 oom ,需要调整最大 heap ,最好用全局变量。
    默认编译线程是核心数 X2 最好。
    repo 下载的时候可以直接取出,不要获取之前的变化。能大幅度减少空间。
    vendor 的话用已有固件或者手机, extract 脚本运行就好。
    Flygoat
        76
    Flygoat  
       2017-03-27 21:42:16 +08:00
    @phantastar #71 Java 混 C 。。。。。当然估计手机里放个 Python 环境也不是不可以但是怎么 Include 这些库。。。
    phantastar
        77
    phantastar  
    OP
       2017-03-27 22:08:07 +08:00 via Android
    @fashioncj 感谢, repo 不要获取之前的变化是不是说 repo sync 加--current-branch 或者应该是什么?
    extract 脚本是不是要自己写
    phantastar
        78
    phantastar  
    OP
       2017-03-27 22:09:02 +08:00 via Android
    @Flygoat 那我去搞定 Java 还有 C 好了
    phantastar
        79
    phantastar  
    OP
       2017-03-27 22:09:52 +08:00 via Android
    @kokutou 嗯嗯好哒,我去作者咨询一下,十分感谢!
    Flygoat
        80
    Flygoat  
       2017-03-27 22:12:15 +08:00   1
    @phantastar #77
    直接 repo init 的时候 -b 就好了,刚刚看到有人作了不完美的 CM13 ,应该难度会小很多,主要问题会集中在 RIL 。
    kmahyyg
        81
    kmahyyg  
       2017-03-27 22:35:00 +08:00 via Android
    @Flygoat 能帮忙看下#58 吗?
    kmahyyg
        82
    kmahyyg  
       2017-03-27 22:35:42 +08:00 via Android
    @phantastar repo sync 一般默认就行,偶尔需要--no-clone-bundle
    phantastar
        83
    phantastar  
    OP
       2017-03-28 06:29:12 +08:00 via Android
    @Flygoat 嗯嗯十分感谢,我心里有点踏实了,后面如果遇到一些零碎问题麻烦还请您多指教
    phantastar
        84
    phantastar  
    OP
       2017-03-28 06:32:07 +08:00 via Android
    @kmahyyg 嗯嗯谢谢, clone bundle 是做什么的我不知道,我最近一次 repo 加入了这个命令。另外大家可能还在睡觉,上面还有一位叫 besto 的先生也很专业,你可以看看他是否在线
    besto
        85
    besto  
       2017-03-28 10:29:54 +08:00   1
    @phantastar Android 标准 hal 层必须是 C/C++,广义 hal 层可以用任何可以跑的语言,前提是搞的定权限问题。
    besto
        86
    besto  
       2017-03-28 10:33:22 +08:00   1
    @phantastar AOSP 是开源的。我们的一切假定前提是,没有任何 vendor 的支持(有 datasheet 也没啥意义),那么只要保证 vendor 没有过度修改 AOSP 内和 HAL 对接的相关 code 。
    fashioncj
        87
    fashioncj  
       2017-03-28 10:38:24 +08:00   1
    @phantastar 脚本是自带的。。
    脚本是 extract-files.sh ,应该在最开始的目录下。。
    besto
        88
    besto  
       2017-03-28 11:08:49 +08:00
    @kmahyyg 关于#58 ,我没有做过 OTA 相关的东西,抱歉无法帮到你,试试用全镜像?
    phantastar
        89
    phantastar  
    OP
       2017-03-28 11:44:11 +08:00
    @besto #85 嗯嗯感谢,权限问题如果解决起来比较难的话,我还是去熟悉一下 C/C++比较明智。
    phantastar
        90
    phantastar  
    OP
       2017-03-28 11:48:10 +08:00
    @besto #86 怨我之前 AOSP 官网看得一知半解,请问您的意思是不是 AOSP 交给 vendor 后他们可以修改和 HAL 对接的相关 code 以适配自己的硬件?
    kmahyyg
        91
    kmahyyg  
       2017-03-28 11:49:17 +08:00 via Android
    @besto 就是全镜像,只是是卡刷包。。。。。。。
    phantastar
        92
    phantastar  
    OP
       2017-03-28 11:53:41 +08:00
    @fashioncj 十分感谢,我去找一找这个文件
    phantastar
        93
    phantastar  
    OP
       2017-03-28 11:58:49 +08:00
    刚刚下单了 intel 540s M.2 SSD ,到货后即刻重装 Ubuntu !(我是英特尔 SSD 的死忠粉丝,之前买到一块服务器拆下来的 Intel S3500 480G ,一查居然还有 3 年质保)
    besto
        94
    besto  
       2017-03-28 11:59:44 +08:00
    @kmahyyg 我这边 vendor 还是可以产生普通的 system.img(Android 7.0) 并没有在 AOSP 里做什么修改,只增加了一些编译脚本和 mk 。这块我不是非常了解,帮你问一下吧。
    besto
        95
    besto  
       2017-03-28 12:06:10 +08:00   1
    @phantastar Android 的 code 相对混乱。 Android 其实分为 2 部分, AOSP/GMS 还有 partner 可以拿到的 developer branch 。不和 Google 签订协议,也可以拿到 AOSP 的 code ,你想改啥就该啥。如果和 Google 签订 AOSP 的协议,需要过 CTS 认证(理论上不通过 CTS 认证,并且是 Goolgle 认为你过了,不可以称自己为 Android 设备),严格意义上,不可以改任何 google 的 code ,即使是 BUG ,但厂家仍旧可以通过在编译前打 patch 。再进一步可以签订 GMS 的协议,附加在 AOSP 的协议之上,这个包主要会有 Google Play 等那一堆东西,同时需要过 GTS 的测试。
    besto
        96
    besto  
       2017-03-28 12:14:41 +08:00   1
    @kmahyyg 做 OTA 的同事告诉我,默认就有 system.img 那个 system.new.dat 是 block ota 的东西,要么你再看看?
    phantastar
        97
    phantastar  
    OP
       2017-03-28 14:50:10 +08:00
    @besto #95 嗯嗯感谢。我有一问题不解,根据上面诸多内容的汇总,我现在知道移植 AOSP 需要做至少两个工作: 1.提取 vendor 目录中的驱动库。 2.重写 HAL 层。那问题来了,重写 HAL 层所需的软件工具是什么?麒麟官方的 SDK 吗?
    phantastar
        98
    phantastar  
    OP
       2017-03-28 15:03:23 +08:00
    @besto 另外: 1.华为官方开源的安卓 6.0kernel 是不是需要改写(需要什么样的工具)?因为我想适配安卓 7.1 。
    2.移植驱动的话,又该用什么工具呢?
    besto
        99
    besto  
       2017-03-28 15:17:58 +08:00   1
    @phantastar 说句不太好听的啊,但凡需要重写 HAL 的,绝对搞不定。所以,官方支持到哪个版本,就扒哪个版本的库,可以碰碰运气能不能用。
    kmahyyg
        100
    kmahyyg  
       2017-03-28 16:29:49 +08:00 via Android
    @besto 感谢,我自己试试。
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2383 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 01:22 PVG 09:22 LAX 18:22 JFK 21:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86