zoukankan      html  css  js  c++  java
  • Android-x86 Porting Guide for OPENTHOS Developers

    https://github.com/openthos/system-analysis/issues/114


    本文通过对android-x86的移植过程做完整的记录,提高OPENTHOS开发者对android-x86项目的整体理解,是HAL开发的入门指导。

    从远程仓库获取源代码

    • 初始化本地源代码仓库
    mkdir oreo-x86
    cd oreo-x86
    repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b oreo-x86
    
    • 在oreo-x86/.repo/manifests目录中可见android-x86.xmldefault.xml两个文件,其中:
      default.xml用于描述远程AOSP源代码仓库;
      android-x86.xml用于描述andriod-x86源代码仓库。
    • 配置AOSP源代码仓库
      由于部分国家或地区Google访问受限,可用tsinghua tuna源替换googlesource源提高源代码同步速度。
    sed -i 's:android.googlesource.com:aosp.tuna.tsinghua.edu.cn:g' .repo/manifests/default.xml
    
    • android-x86.xml中remove-project标签用于描述在AOSP项目中移除的项目,部分需要被修改的项目也通过此方法进行替换。
    • 为了完整的重现移植流程,暂时从android-x86.xml中移除如下项目:
    <remove-project name="device/generic/common" />
    <remove-project name="device/generic/x86" />
    <remove-project name="device/generic/x86_64" />
    <project path="device/generic/common" name="device/generic/  common" remote="x86" revision="oreo-x86" />
    <project path="device/generic/firmware" name="device/generic/firmware" remote="x86" revision="oreo-x86" />
    <project path="device/generic/x86" name="device/generic/x86" remote="x86" revision="oreo-x86" />
    <project path="device/generic/x86_64" name="device/generic/x86_64" remote="x86" revision="oreo-x86" />
    
    • 从远程仓库下载源代码
    repo sync -f -j1
    

    创建设备配置文件

    本文档中,添加的设备配置文件vendor name为tsinghua,device name为openthos_32、openthos_64,对应32位、64位openthos。本文档以openthos_64为例,openthos_32类似。

    • 创建文件夹
    mkdir device/tsinghua/openthos_64
    
    • 从android-x86获取common、firmware
    cd device/tsinghua
    git clone git://git.osdn.net/gitroot/android-x86/device/generic/firmware -b oreo-x86
    git clone git://git.osdn.net/gitroot/android-x86/device/generic/common -b oreo-x86
    
    • 修改common、firmware中的设备配置文件路径
    for var in `grep -rl device/generic`; do sed -i 's:device/generic:device/tsinghua:g' $var; done
    
    • 创建device/tsinghua/openthos_64/vendorsetup.sh文件,用于在lunch宏中添加openthos_64设备选项
    add_lunch_combo openthos_64-eng
    add_lunch_combo openthos_64-userdebug
    add_lunch_combo openthos_64-user
    
    • 创建device/tsinghua/openthos_64/AndroidProducts.mk文件
    PRODUCT_MAKEFILES := 
        $(LOCAL_DIR)/openthos_64.mk
    
    • 创建device/tsinghua/openthos_64/BoardConfig.mk文件,用于配置设备
    TARGET_NO_BOOTLOADER := true
    TARGET_CPU_ABI := x86_64
    TARGET_ARCH := x86_64
    TARGET_ARCH_VARIANT := x86_64
    
    TARGET_2ND_CPU_ABI := x86
    TARGET_2ND_ARCH := x86
    TARGET_2ND_ARCH_VARIANT := x86_64
    
    TARGET_CPU_ABI_LIST_64_BIT := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) $(NATIVE_BRIDGE_ABI_LIST_64_BIT)
    TARGET_CPU_ABI_LIST_32_BIT := $(TARGET_2ND_CPU_ABI) $(TARGET_2ND_CPU_ABI2) $(NATIVE_BRIDGE_ABI_LIST_32_BIT)
    TARGET_CPU_ABI_LIST := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) $(TARGET_2ND_CPU_ABI) $(TARGET_2ND_CPU_ABI2) $(NATIVE_BRIDGE_ABI_LIST_64_BIT) $(NATIVE_BRIDGE_ABI_LIST_32_BIT)
    
    TARGET_USERIMAGES_USE_EXT4 := true
    BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
    BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
    BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
    BOARD_FLASH_BLOCK_SIZE := 512
    TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
    
    include device/tsinghua/common/BoardConfig.mk
    
    • 创建device/tsinghua/openthos_64/openthos_64.mk文件
    # includes the base of Android-x86 platform
    $(call inherit-product,device/tsinghua/common/x86_64.mk)
    
    # Overrides
    PRODUCT_NAME := openthos_64
    PRODUCT_BRAND := Android-x86
    PRODUCT_DEVICE := openthos_64
    PRODUCT_MODEL := Generic Android-x86_64
    

    编译并测试

    运行

    . build/envsetup.sh
    

    运行

    lunch
    

    并选择openthos_64-userdebug

    You're building on Linux
    
    Lunch menu... pick a combo:
         1. aosp_arm-eng
         2. aosp_arm64-eng
         3. aosp_mips-eng
         4. aosp_mips64-eng
         5. aosp_x86-eng
         6. aosp_x86_64-eng
         7. openthos_32-eng
         8. openthos_32-userdebug
         9. openthos_32-user
         10. openthos_64-eng
         11. openthos_64-userdebug
         12. openthos_64-user
    
    Which would you like? [aosp_arm-eng] 11
    

    运行

    make iso_img -j32
    

  • 相关阅读:
    Cocos Creator 功能介绍
    Cocos Creator 功能介绍
    Cocos Creator打包发布
    Cocos CreatorUI系统下
    Web前端开发工具和环境清单
    Web前端开发工具和环境清单
    Cocos CreatorUI系统上
    Cocos Creator开发hello World
    前端微信小程序电影类仿淘票票微信小程序
    前端微信小程序电影类仿淘票票微信小程序
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644480.html
Copyright © 2011-2022 走看看