Red de conocimiento informático - Computadora portátil - Portación de AOSP para agregar dispositivos

Portación de AOSP para agregar dispositivos

Elementos y líneas de código en archivos make o scripts que describen lo que están haciendo y qué archivos están utilizando. También se proporcionan archivos que se pueden utilizar como ejemplos y comandos para buscarlos.

Este texto está destinado a desarrolladores que quieran añadir nuevos dispositivos o cambiar la configuración de los existentes. Esto da una indicación de qué archivos están involucrados.

== build/envsetup.sh ==

Algunas funciones son llamadas por

& ltpre & gt

. build/envsetup.sh

</pre>

En el directorio de nivel superior.

Algunas variables de entorno se configuran llamando a

& ltpre & gt

lunch

& lt/pre & gt;

En el directorio superior.

& ltpre & gt

Exportar producto objetivo=Variante

Exportar TARGET_SIMULATOR=false

Exportar tipo de compilación objetivo=Versión

</pre>

Busque sellersetup.sh en:

<pre>

vendors/ /vendorsetup sh

. proveedor/ / /vendorsetup.sh

dispositivo/ /*/vendorsetup.sh

& lt/pre & gt;

== proveedorsetup.sh ==

Este archivo es ejecutado por build/envsetup.sh y puede usar cualquier cosa

definida en envsetup.sh.

En particular, puedes agregar opciones de almuerzo usando add_lunch_combo

Funciones:

& ltpre & gt

add_lunch_combo full_crespo-user debug

& lt/pre & gt;

Los valores de las macros TARGET_PRODUCT y TARGET_BUILD_VARIANT provienen del nombre de la opción: add _ lunch _ combo TARGET _ BUILD _ VARIANT

En el ejemplo anterior, los valores resultantes son TARGET_PRODUCT=full_crespo y TARGET_BUILD_VARIANT=userdebug.

Estos archivos se pueden utilizar como ejemplos:

& ltpre & gt

Encontrado. - nombre proveedorsetup.sh

</pre>

<pre>

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

. /dispositivo/Samsung/crespo 4g/configuración del proveedor sh

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

</pre>

== Makefile ==

Se llama al proceso de compilación

p>

& ltpre & gt

Hecho

& lt/pre & gt;

En el directorio de nivel superior.

Makefile llama a build/core/main.mk

== build/core/main.mk ==

Establece varios estándares basados ​​en la configuración y la información del host variable.

& ltpre & gt

Incluye $(BUILD_SYSTEM)/config.mk

& lt/pre & gt;

Esto permite Forzamos una compilación limpia después de config.make

La configuración del entorno está completa, pero antes de generar dependencias. Este

archivo tiene rm -rf en línea, por lo que el departamento completo a continuación

se generará correctamente

& ltpre & gt

incluido $ (BUILD_SYSTEM)/cleanbuild.mk

</pre>

Estos objetivos modificadores no hacen nada por sí mismos, pero

cambian el comportamiento de la compilación.

(Debe definirse antes de incluir definición. make)

& ltpre & gt

INTERNAL _ MODIFIER _ TARGETS:= mostrar comandos verificar compilar todo

</pre>

Presentamos definiciones de sistemas de compilación estándar.

& ltpre & gt

incluye $(BUILD _ SYSTEM)/definiciones MK

& lt/pre & gt;

. == build/core/config.mk ==

Varias asignaciones para evitar rutas codificadas en todas partes

& ltpre & gt

incluyen $ (BUILD_SYSTEM)/path map .MK

</pre>

Intenta incluir buildspec.mk e intentará configurar las cosas.

Si este archivo no existe, la variable de entorno existirá

Si esto no funciona, el valor predeterminado es una

construcción ARM

& ltpre & gt

-Contiene $(TOPDIR)buildspec.mk

& lt/pre & gt;

Define la mayoría de las variables globales. Estas son

configuraciones de compilación específicas del usuario.

& ltpre & gt

Contiene $(BUILD_SYSTEM)/envsetup.mk

& lt/pre & gt;

En búsqueda para BoardConfig.mk

(dispositivo de destino)/BoardConfig.mk

device/*/(dispositivo de destino)/BoardConfig.mk

y cargue el archivo

p>

& ltpre & gt

Incluye $(board_config_mk)

& lt/pre & gt;

& ltpre & gt

Contiene $(BUILD_SYSTEM)/dumpvar.mk

& lt/pre & gt;

== BoardConfig.mk ==

Estos archivos se pueden utilizar como ejemplo:

& ltpre & gt

Encontrados. - Nombre BoardConfig.mk

& lt/pre & gt

& ltpre & gt

. /dispositivo/Samsung/crespo/board config .

. /dispositivo/Samsung/crespo 4g/configuración de placa MK

. /device/HTC/passion/boardconfig.MK

.

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

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

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

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

& lt/pre & gt;

== build/buildspec.mk.default ==

Este es un archivo de plantilla que no hace nada. Para usarlo, cópielo en un archivo llamado "buildspec.mk" en el directorio raíz y descomente o cambie las variables requeridas para la configuración deseada. El archivo

"buildspec.mk" no debe incluirse en el control de código fuente.

Selecciona el producto para el que deseas desarrollar. Encuentra en el catálogo de productos

el que funciona.

Producto objetivo

Seleccione la variante a construir. Si no se selecciona, el valor predeterminado es inglés.

Los usuarios son lo que enviamos.

Userdebug es así, con varios indicadores activados

para la depuración.

Eng tiene muchas herramientas de desarrollo adicionales.

Target_Build_Variables

Módulo personalizado

Simulador de Target

Si lo prefiere, configúrelo para depurar o liberar. De lo contrario, el valor predeterminado es la liberación del brazo y la depuración del emulador.

Target_build_type

Host_build_type

Nombre del módulo del módulo de depuración

Prefijo de la herramienta de destino

Host_Custom_Debug_CFLAGS

Target_Custom_Debug_CFLAGS

Configuración_local personalizada

Dirección de salida

ADDITIONAL_BUILD_PROPERTIES

NO_FALLBACK_FONT

WEBCORE_INSTORMENTATION

ENABLE_SVG

Número de compilación

== build/envsetup.mk ==

Establecer información de versión.

& ltpre & gt

incluye $(BUILD _ SYSTEM)/version _ defaults

& lt/pre & gt; p>Si actualiza su sistema de compilación para que sea necesario actualizar la configuración del entorno

o buildspec.mk, aumente este número, luego

Las personas que no hayan vuelto a ejecutar estos programas deberán hazlo en

Se puede construir. Asegúrese de actualizar también los valores correspondientes en buildspec.mk.default y envsetup.sh.

& ltpre & gt

CORRECT_BUILD_ENV_ SEQUENCE_ NUMBER:= 10

& lt/pre & gt;

& ltpre & gt

Contiene $(BUILD _ SYSTEM)/product _ config

& lt/pre & gt;

Producto de destino: sim. La tarjeta está llena

TARGET_BUILD_VARIANT: prueba de depuración de usuarios de ingeniería

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

Maneja información diversa de la versión interna.

Asegúrese de que esté definido lo siguiente:

Platform_version

Platform_SDK_version

Nombre del código de versión de la plataforma

Aplicación predeterminada Kit de desarrollo de software de destino

Número de versión de compilación

Número de versión de compilación

Busque el archivo opcional (BUILD_SYSTEM)/build_id.mk

</pre>

== build/core/build_id.mk ==

BUILD_ID se usa generalmente para especificar el nombre de la rama

build_number

show_build_number

== build/product_config.mk ==

Proporcione "product-<prodname>-& lt;target>objetivo, que le permite construir

sin configurar una configuración específica del entorno

& ltpre>

producto objetivo:= (objetivo de producto)

TARGET_BUILD_VARIANT :=( objetivo del producto))

</pre>

Proporciona el objetivo "APP-<appname>". Le permite crear

aplicaciones desagregadas

incluidas las definiciones de productos

Necesitamos hacer esto para convertir TARGET_PRODUCT en él.

Antes de comenzar a definir cualquier regla

Se define product_device. en el archivo del producto (Target_Product) Busque mk en la lista del archivo de creación del producto $(PRODUCT_MAKEFILES) >

Establezca PRODUCT_MAKEFILES en el archivo AndroidProducts.mk

& ltpre & gt

.

(Llame a get-product-makefiles,

$(SRC _ TARGET_DIR)/product/Android Products . MK))

</pre>

Convierta nombres cortos como "más rápido" en rutas de productos

El archivo que define el producto

& ltpre & gt

Producto interno:=(producto de destino) )

& lt/pre & gt ;

<pre>

Dispositivo de destino:= (producto interno)

PRODUCT_LOCALES: = (producto. $(producto interno). product_locale))

product_brand

product_model

product_manufacturer

& lt/pre & gt ;

& ltpre & gt

Product_OTA_PublicKey

& lt/pre & gt;

== AndroidProducts .mk ==

Este archivo debe tener PRODUCT_MAKEFILES establecido en la lista de archivos de creación de productos

expuestos al sistema de compilación. LOCAL_DIR se ha configurado en

el directorio que contiene el archivo.

Este archivo no puede depender de nada más que

directorios locales, no utilice ningún condicional y no busque

ningún archivo que no esté en este archivo; o

Incluye.

Archivo dispositivo/Samsung/crespo/productos Android MK

& ltpre & gt

PRODUCT_MAKEFILES :=

$(LOCAL_DIR) /full_crespo.mk

& lt/pre & gt;

Estos archivos se pueden utilizar como ejemplos:

& ltpre & gt

aparece. -Nombre AndroidProducts.mk

</pre>

<pre>

. /dispositivo/muestra/productos/productos Android MK

. /dispositivo/Samsung/crespo/productos Android MK

. /dispositivo/Samsung/crespo 4g/productos Android MK

. /dispositivo/HTC/passion/productos Android MK

.

/build/target/product/Android Products .MK

</pre>

El comando para devolver la lista de todos los archivos AndroidProducts.mk está en build/core/product.mk Definición:

& ltpre & gt

Definition_Find-Android-Product-Documents

(Shell Test-D Supplier&&Find Supplier- profundidad máxima de 6 nombres de productos android. MK )

$(SRC _ TARGET _ DIR)/producto/Productos Android MK

endef

& lt/pre & gt;

<. p>==Archivos de producto==

Buscar archivos que puedan usarse como ejemplos:

& ltpre & gt

grep -R product_device versión del dispositivo

</pre>

<pre>

DISPOSITIVO/Samsung/crespo/full_crespo.MK :PRODUCTO _ DISPOSITIVO:= crespo

DISPOSITIVO/ Samsung/crespo 4g/full_crespo 4g . MK:PRODUCT_DEVICE:= crespo 4g

DEVICE/HTC/passion/full_ passion . /target/product/sdk.mk:product_device:=generic

build/target/product/generic.mk: product_device:=generic

build/target/PRODUCT/generic_x86.MK :PRODUCT_DEVICE:=generic_x86

build/target/product/core.mk: product_device:=generic

build/target/PRODUCT/full_x86 .MK:product_device:=generic_x86

build/target/PRODUCT/full .MK:PRODUCT_ DEVICE:=generic

build/target/product/sim.mk:product_device:=sim

</pre> ;

estos El dispositivo del producto se utiliza en el archivo

& ltpre & gt

build/core/product.mk:product_device

build/core/PRODUCT_config MK:TARGET_DEVICE:=(producto interno). Product_Device)

</pre>

==Agregar nuevo dispositivo==

Agregar un archivo de configuración para el nuevo dispositivo de mi empresa, mydevice.

Crear AndroidProducts.mk

& ltpre & gt

mkdir -p dispositivo/mi empresa/mi dispositivo

nano dispositivo/mi empresa/mi dispositivo/productos Android

& lt/pre & gt;

& ltpre & gt

PRODUCT_MAKEFILES :=

$(LOCAL_DIR)/full_mydevice.mk

& lt/pre & gt;

Crea el archivo full_mydevice.mk

Por ejemplo build/target/product /full.mk

& ltpre & gt

nano dispositivo/mi empresa/mi dispositivo/full_mi dispositivo MK

& lt/pre & gt. ;

& ltpre & gt

(SRC_TARGET_DIR)/product/full_base.MK)

(SRC_TARGET_DIR)/ board/generic/device.mk)

Nombre del producto:=Completar mi dispositivo

Dispositivo del producto:=Mi dispositivo

Product_Brand:=Android

PRODUCTO_MODELO:= Android completo en mi dispositivo

</pre>

Crear el archivo proveedorsetup.sh

& ltpre & gt

nano dispositivo/mi empresa /my device/vendorsetup .

& lt/pre & gt;

& ltpre & gt

añadir _ almuerzo _ combo completo _ mi dispositivo-eng.

& lt/pre & gt;

Cree el archivo BoardConfig.mk

Los ejemplos son

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

device/Samsung/crespo/BoardConfig.mk

device/Samsung/crespo/ boardconfigcommon

& ltpre & gt

mkdir -p dispositivo/mi empresa/mi dispositivo

nano dispositivo/mi empresa/mi dispositivo/configuración de placa .MK

</pre>

<pre>

TARGET_NO_BOOTLOADER := verdadero

target_none_ kernel:= verdadero

Target_CPU_ABI:= armeabi

HAVE_HTC_AUDIO_DRIVER:= verdadero

BOARD_USES_GENERIC_AUDIO:= verdadero

USE_CAMERA_ Stub:=True

TARGET_SHELL := mksh

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

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

& lt/pre & gt;

>Configurar Android para mi dispositivo

& ltpre & gt

. build/envsetup.sh

& lt/pre & gt;

& ltpre & gt

Incluye dispositivo/HTC/passion/vendor setup.sh

Incluir configuración de dispositivo/mi empresa/mi dispositivo/proveedor sh

Incluir configuración de dispositivo/Samsung/crespo 4g/proveedor sh

Incluir dispositivo/Samsung/crespo. /configuración del proveedor sh

& lt/pre & gt;

& ltpre & gt

Almuerzo

& lt/pre &. gt;

<pre>

Estás construyendo Linux

Menú de almuerzo... Elige una combinación:

1. p>

2.full_x86-eng

3.Simulator

4.full_passion-depuración de usuario

5.Full_ Mis dispositivos - Ingeniería

6.full_crespo4g-userdebug

7.full_crespo-userdebug

¿Cuál quieres? [Todo en inglés] 5

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

Código de versión de plataforma=AOSP

Versión de plataforma=AOSP

Producto de destino=dispositivo completo

Target_ build_variable=proyecto

target_simulator=false

target_build_type=release

target build_application=

TARGET_ARCH=arm

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

HOST_ARCH=x86

HOST_OS=linux

Tipo de compilación de host=Versión

BUILD_ID=OPENMASTER

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

</pre>

Crear Android para mi dispositivo

& ltpre & gt

Brand-j4

& lt/pre & gt;

& ltpre & gt

Archivo de notificación combinado: out /target/product/my device/obj/ AVISO .html

Imagen fs del sistema de destino:out/target/product/my device/obj/PACKAGING/system image _ middles/system .

Instalar la imagen fs del sistema: out/. destino/producto/mi dispositivo/sistema . img

Lista de archivos instalados: out/target/product/mi dispositivo/archivos-instalados

& lt/pre & gt;<. /p>

[[Categoría: Android]]