V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phantastar
V2EX  ›  Android

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

  •  
  •   phantastar · 2017-03-27 05:30:15 +08:00 · 26966 次点击
    这是一个创建于 2789 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近被华为 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 比较活跃。
    HackerOO7
        4
    HackerOO7  
       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:00 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 必须得有尤其是 gralloc ,另外请分析一下 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   ·   实用小工具   ·   2704 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.