Portación de AOSP para agregar dispositivos
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) p>
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 p>
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]]