當前位置:編程學習大全網 - 源碼下載 - AOSP移植添加裝置

AOSP移植添加裝置

make文件或腳本中的元素和代碼行,描述它們正在做什麽以及它們正在使用哪些文件。還提供了可用作示例的文件以及如何搜索這些文件的命令。

此文本面向希望添加新設備或更改現有設備配置的開發人員。這給出了涉及哪些文件的壹些指示。

== build/envsetup.sh ==

有些函數是通過調用

& ltpre & gt

。build/envsetup.sh

& lt/pre & gt;

在頂層目錄中。

壹些環境變量是通過調用

& ltpre & gt

午餐

& lt/pre & gt;

在頂層目錄中。

& ltpre & gt

出口目標產品=變型

導出TARGET_SIMULATOR=false

導出目標構建類型=發布

& lt/pre & gt;

在以下位置搜索vendorsetup.sh:

& ltpre & gt

供應商/ /vendorsetup.sh

vendor/ / /vendorsetup.sh

device/ /*/vendorsetup.sh

& lt/pre & gt;

== vendorsetup.sh ==

這個文件由build/envsetup.sh執行,可以使用任何東西

在envsetup.sh中定義。

特別是,您可以使用add_lunch_combo添加午餐選項

功能:

& ltpre & gt

add _ lunch _ combo full _ crespo-user debug

& lt/pre & gt;

宏TARGET_PRODUCT和TARGET_BUILD_VARIANT的值來自選項名:add _ lunch _ combo TARGET _ BUILD _ VARIANT

在上面的示例中,結果值是TARGET_PRODUCT=full_crespo和TARGET_BUILD_VARIANT=userdebug。

這些文件可以用作示例:

& ltpre & gt

找到。-名稱vendorsetup.sh

& lt/pre & gt;

& ltpre & gt

。/device/Samsung/crespo/vendor setup . sh

。/device/Samsung/crespo 4g/vendor setup . sh

。/device/HTC/passion/vendor setup . sh

& lt/pre & gt;

== Makefile ==

構建過程通過調用

& ltpre & gt

制造

& lt/pre & gt;

在頂層目錄中。

Makefile調用build/core/main.mk

== build/core/main.mk ==

根據配置和主機信息設置各種標準變量。

& ltpre & gt

包含$(BUILD_SYSTEM)/config.mk

& lt/pre & gt;

這允許我們在config.make之後強制壹個幹凈的構建

環境設置已經完成,但是在我們生成任何依賴項之前。這

文件內聯rm -rf,因此下面完成的dep將

正確生成

& ltpre & gt

包含$(BUILD_SYSTEM)/cleanbuild.mk

& lt/pre & gt;

這些修改器目標本身不做任何事情,但是

更改生成的行為。

(必須在包含定義之前定義。make)

& ltpre & gt

INTERNAL _ MODIFIER _ TARGETS:= show commands check build all

& lt/pre & gt;

引入標準的構建系統定義。

& ltpre & gt

include $(BUILD _ SYSTEM)/definitions . MK

& lt/pre & gt;

== build/core/config.mk ==

各種映射,以避免到處都是硬編碼路徑

& ltpre & gt

include $(BUILD _ SYSTEM)/path map . MK

& lt/pre & gt;

嘗試包含buildspec.mk,它將嘗試設置東西。

如果這個文件不存在,環境變量會存在

如果這不起作用,那麽默認的是壹個

手臂構造

& ltpre & gt

-包含$(TOPDIR)buildspec.mk

& lt/pre & gt;

定義大多數全局變量。這些是

特定於用戶的構建配置。

& ltpre & gt

包含$(BUILD_SYSTEM)/envsetup.mk

& lt/pre & gt;

在中搜索BoardConfig.mk

(目標設備)/BoardConfig.mk

device/*/(目標設備)/BoardConfig.mk

並加載文件

& ltpre & gt

包括$(board_config_mk)

& lt/pre & gt;

& ltpre & gt

包含$(BUILD_SYSTEM)/dumpvar.mk

& lt/pre & gt;

== BoardConfig.mk ==

這些文件可以用作示例:

& ltpre & gt

找到。-名稱BoardConfig.mk

& lt/pre & gt;

& ltpre & gt

。/device/Samsung/crespo/board config . MK

。/device/Samsung/crespo 4g/board config . MK

。/device/HTC/passion/board config . MK

。/build/target/board/generic/board config . MK

。/build/target/board/generic _ x86/board config . MK

。/build/target/board/emulator/board config . MK

。/build/target/board/sim/board config . MK

& lt/pre & gt;

== build/buildspec.mk.default ==

這是壹個什麽都不做的模板文件。要使用它,請將其復制到文件中

在根目錄中命名為“buildspec.mk ”,並取消註釋或更改

所需配置所需的變量。文件

“buildspec.mk”不應簽入源代碼管理。

選擇要為之構建的產品。在產品目錄中查找

那工作。

目標產品

選擇要構建的變體。如果不選擇,默認為eng。

用戶是我們運送的東西。

Userdebug是這樣的,打開了幾個標誌

用於調試。

Eng有很多額外的開發工具。

目標_構建_變量

自定義模塊

目標模擬器

如果您願意,請將其設置為調試或發布。否則,它默認為

arm的發布和模擬器的調試。

目標_構建_類型

主機_構建_類型

調試模塊模塊名

目標工具前綴

主機_自定義_調試_CFLAGS

目標_自定義_調試_CFLAGS

自定義_區域設置

輸出方向

附加_構建_屬性

NO_FALLBACK_FONT

WEBCORE _儀器儀表

啟用_SVG

內部版本號

== build/envsetup.mk ==

設置版本信息。

& ltpre & gt

include $(BUILD _ SYSTEM)/version _ defaults . MK

& lt/pre & gt;

如果您更新構建系統,使環境設置

或者buildspec.mk需要更新,增加這個數字,然後

還沒有重新運行這些程序的人必須在

可以建造。請確保也更新中的相應值

buildspec.mk.default和envsetup.sh。

& ltpre & gt

CORRECT _ BUILD _ ENV _ SEQUENCE _ NUMBER:= 10

& lt/pre & gt;

& ltpre & gt

包含$(BUILD _ SYSTEM)/product _ config . MK

& lt/pre & gt;

目標產品:sim卡已滿

TARGET_BUILD_VARIANT:工程用戶用戶調試測試

= = build/core/version _ defaults . MK = =

處理各種內部版本信息。

保證定義了以下內容:

平臺_版本

平臺_ SDK _版本

平臺版本代碼名稱

默認應用目標軟件開發套件

內部版本號

內部版本號

查找可選文件(BUILD_SYSTEM)/build_id.mk

& lt/pre & gt;

== build/core/build_id.mk ==

BUILD_ID通常用於指定分支名稱

內部版本號

顯示_構建_編號

== build/product_config.mk ==

提供“產品-& lt;prodname & gt-& lt;目標>目標,它允許您構建

無需設置環境的特定配置。

& ltpre & gt

目標產品:=(產品目標))

TARGET_BUILD_VARIANT :=(產品目標))

& lt/pre & gt;

提供“APP-& lt;appname >;"目標,它允許您構建

未捆綁的應用程序。

包括產品定義。

我們需要這樣做來將TARGET_PRODUCT轉換成它的

在我們開始定義任何規則之前。

產品_設備在產品文件(目標_產品)中定義。在產品make文件$( PRODUCT _ MAKEFILES)列表中搜索mk。

在AndroidProducts.mk文件中設置PRODUCT_MAKEFILES。

& ltpre & gt

(調用get-product-makefiles,

$(SRC _ TARGET _ DIR)/product/Android products . MK))

& lt/pre & gt;

將“更快”這樣的短名稱轉換為產品路徑

定義該產品的文件。

& ltpre & gt

內部產品:=(目標產品))

& lt/pre & gt;

& ltpre & gt

目標設備:=(內部產品)。產品_設備)

PRODUCT_LOCALES :=(產品。$(內部產品)。產品_區域設置))

產品_品牌

產品_型號

產品_制造商

& lt/pre & gt;

& ltpre & gt

產品_ OTA _公共密鑰

& lt/pre & gt;

== AndroidProducts.mk ==

該文件應該將PRODUCT_MAKEFILES設置為產品生成文件的列表

向生成系統公開。LOCAL_DIR已經被設置為

包含該文件的目錄。

該文件可能不依賴於除

本地目錄;不要使用任何條件句,也不要查找

任何未在此文件或

它包括。

文件設備/Samsung/crespo/Android products . MK

& ltpre & gt

PRODUCT_MAKEFILES :=

$(LOCAL_DIR)/full_crespo.mk

& lt/pre & gt;

這些文件可以用作示例:

& ltpre & gt

找到。-名稱AndroidProducts.mk

& lt/pre & gt;

& ltpre & gt

。/device/sample/products/Android products . MK

。/device/Samsung/crespo/Android products . MK

。/device/Samsung/crespo 4g/Android products . MK

。/device/HTC/passion/Android products . MK

。/build/target/product/Android products . MK

& lt/pre & gt;

返回所有AndroidProducts.mk文件列表的命令在build/core/product.mk中定義:

& ltpre & gt

定義_查找-Android-產品-文件

(殼牌測試-d供應商& amp& amp查找供應商-max depth 6-name androidproducts . MK)

$(SRC _ TARGET _ DIR)/product/Android products . MK

endef

& lt/pre & gt;

==產品文件==

搜索可用作示例的文件:

& ltpre & gt

grep -R產品_設備設備版本

& lt/pre & gt;

& ltpre & gt

DEVICE/Samsung/crespo/full _ crespo . MK:PRODUCT _ DEVICE:= crespo

DEVICE/Samsung/crespo 4g/full _ crespo 4g . MK:PRODUCT _ DEVICE:= crespo 4g

DEVICE/HTC/passion/full _ passion . MK:產品_設備:= passion

構建/目標/產品/sdk.mk:產品_設備:=通用

構建/目標/產品/通用. mk:產品_設備:=通用

build/target/PRODUCT/generic _ x86 . MK:PRODUCT _ DEVICE:= generic _ x86

構建/目標/產品/核心. mk:產品_設備:=通用

build/target/PRODUCT/full _ x86 . MK:產品_設備:= generic_x86

build/target/PRODUCT/full . MK:PRODUCT _ DEVICE:=泛型

構建/目標/產品/sim.mk:產品_設備:= sim

& lt/pre & gt;

這些文件中使用了產品設備

& ltpre & gt

build/core/product.mk:產品_設備

build/core/PRODUCT _ config . MK:TARGET _ DEVICE:=(內部產品)。產品_設備)

& lt/pre & gt;

==添加新設備==

為mycompany公司的新設備mydevice添加配置文件。

創建AndroidProducts.mk

& ltpre & gt

mkdir -p設備/我的公司/我的設備

nano device/my company/my device/Android products . MK

& lt/pre & gt;

& ltpre & gt

PRODUCT_MAKEFILES :=

$(LOCAL_DIR)/full_mydevice.mk

& lt/pre & gt;

創建文件full_mydevice.mk

例如build/target/product/full.mk

& ltpre & gt

nano device/my company/my device/full _ my device . MK

& lt/pre & gt;

& ltpre & gt

(SRC _ TARGET _ DIR)/product/full _ base . MK)

(SRC _目標_目錄)/board/generic/device.mk)

產品名稱:=完整我的設備

產品設備:=我的設備

產品_品牌:=安卓

PRODUCT _ MODEL:= my device上的完整Android

& lt/pre & gt;

創建文件vendorsetup.sh

& ltpre & gt

nano device/my company/my device/vendorsetup . sh

& lt/pre & gt;

& ltpre & gt

add _ lunch _ combo full _ my device-eng

& lt/pre & gt;

創建文件BoardConfig.mk

例子有

build/target/board/generic/board config . MK

設備/三星/crespo/BoardConfig.mk

device/Samsung/crespo/boardconfigcommon . MK

& ltpre & gt

mkdir -p設備/我的公司/我的設備

nano device/my company/my device/board config . MK

& lt/pre & gt;

& ltpre & gt

TARGET_NO_BOOTLOADER := true

目標_無_內核:=真

目標_CPU_ABI := armeabi

HAVE_HTC_AUDIO_DRIVER := true

BOARD_USES_GENERIC_AUDIO := true

使用_相機_存根:=真

TARGET_SHELL := mksh

TARGET _ ARCH _ VARIANT:= arm V7-a-neon

ARCH _ ARM _ HAVE _ TLS _ REGISTER:= true

& lt/pre & gt;

為我的設備配置Android

& ltpre & gt

。build/envsetup.sh

& lt/pre & gt;

& ltpre & gt

包括device/HTC/passion/vendor setup . sh

包括設備/my company/my device/vendor setup . sh

包括device/Samsung/crespo 4g/vendor setup . sh

包括device/Samsung/crespo/vendor setup . sh

& lt/pre & gt;

& ltpre & gt

午餐

& lt/pre & gt;

& ltpre & gt

您正在構建Linux

午餐菜單...選擇壹個組合:

1.全引擎

2.full_x86-eng

3.模擬器

4.full _ passion-用戶調試

5.完整_我的設備-工程

6.full_crespo4g-userdebug

7.full_crespo-userdebug

妳想要哪個?[全英] 5

============================================

平臺版本代號=AOSP

平臺版本=AOSP

目標產品=完整設備

目標_構建_變量=工程

目標模擬器=假

目標_構建_類型=發布

目標構建應用程序=

TARGET_ARCH=arm

TARGET _ ARCH _ VARIANT = arm V7-a-neon

HOST_ARCH=x86

HOST_OS=linux

主機構建類型=發布

BUILD_ID=OPENMASTER

============================================

& lt/pre & gt;

為我的設備構建Android

& ltpre & gt

品牌-j4

& lt/pre & gt;

& ltpre & gt

組合通知文件:out/target/product/my device/obj/NOTICE . html

目標系統fs映像:out/target/product/my device/obj/PACKAGING/system image _ intermediates/system . img

安裝系統fs映像:out/target/product/my device/system . img

已安裝文件列表:out/target/product/my device/installed-files . txt

& lt/pre & gt;

[[類別:安卓]]

  • 上一篇:智能手機網絡選擇、操作系統。
  • 下一篇:股票中的資金動能指標的紅綠黃蘭代表什麽意思
  • copyright 2024編程學習大全網