最終更新:2016-07-06 (水) 15:12:18 (2842d)
lunch
Top / lunch
ビルドに関する各種個別情報を設定する envsetup.sh の関数
lunch <product_name>-<build_variant>
http://source.android.com/source/building.html
使い方
lunch <BUILD>-<BUILDTYPE> ;ビルドターゲットの指定 make -j8 ;Androidのビルド
- 例)lunch aosp_hammerhead-userdebug
定義場所
引数
lunch <product_name>-<build_variant> lunch aosp_hammerhead-userdebug
BUILD
ビルド名 デバイス名 メモ aosp_arm ARM emulator AOSP, fully configured with all languages, apps, input methods aosp_maguro maguro AOSP, running on Galaxy Nexus GSM/HSPA+ ("maguro") aosp_panda panda AOSP, running on PandaBoard ("panda") - mini_emulator
- 昔の
full emulator fully configured with all languages, apps, input methods full_maguro maguro full build running on Galaxy Nexus GSM/HSPA+ ("maguro") full_panda panda full build running on PandaBoard ("panda")
BUILDTYPE
- Android/ビルドタイプ
build type use ro.secure ro.debuggable ro.kernel.android.checkjni adb user limited access; suited for production 1 0 0 off userdebug like "user" but with root access and debuggability; preferred for debugging 0 1 0 on eng development configuration with additional debugging tools 0 1 1 on
例
android-5.1.1_r1での選択肢
$ lunch 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. aosp_hammerhead-userdebug 8. aosp_mako-userdebug 9. aosp_flounder-userdebug 10. aosp_shamu-userdebug 11. mini_emulator_mips-userdebug 12. mini_emulator_arm64-userdebug 13. mini_emulator_x86-userdebug 14. mini_emulator_x86_64-userdebug 15. m_e_arm-userdebug 16. aosp_manta-userdebug 17. aosp_flo-userdebug 18. aosp_grouper-userdebug 19. full_fugu-userdebug 20. aosp_fugu-userdebug 21. aosp_deb-userdebug 22. aosp_tilapia-userdebug Which would you like? [aosp_arm-eng] aosp_flo-userdebug ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=5.1.1 TARGET_PRODUCT=aosp_flo TARGET_BUILD_VARIANT=userdebug TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=krait TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 HOST_OS=linux HOST_OS_EXTRA=Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=LMY47V OUT_DIR=out ============================================
- printconfig
- TARGET_PRODUCT=aosp_flo?
Nexus 5でeng
user@user-VirtualBox:/media/user/AOSP-Build/android-5.1.1_r1$ lunch aosp_hammerhead-eng ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=5.1.1 TARGET_PRODUCT=aosp_hammerhead TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=krait TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 HOST_OS=linux HOST_OS_EXTRA=Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=LMY47V OUT_DIR=out ============================================
昔の
- full-eng
- full_x86-eng
- vbox_x86-eng
- full_mips-eng
- sdk-eng
Android/ビルドタイプ
eng
- This is the default flavor. A plain "make" is the same as "make eng". droid is an alias for eng.
- Installs modules tagged with: eng, debug, shell_$(TARGET_SHELL), user, and/or development.
- Installs non-APK modules that have no tags specified.
- Installs APKs according to the product definition files, in addition to tagged APKs.
- ro.secure=0
- ro.debuggable=1
- ro.kernel.android.checkjni=1
- adb is enabled by default.
user
- "make user"
- This is the flavor intended to be the final release bits.
- Installs modules tagged with shell_$(TARGET_SHELL?) and user.
- Installs non-APK modules that have no tags specified.
- Installs APKs according to the product definition files; tags are ignored for APK modules.
- ro.secure=1
- ro.debuggable=0
- adb is disabled by default.
userdebug
- "make userdebug"
- The same as user, except:
- Also installs modules tagged with debug.
- ro.debuggable=1
- adb is enabled by default.
SDKのビルド
- sdk-eng
- http://tools.android.com/build
デバイス別の推奨オプション/ブランチ
export
- TARGET_BUILD_APPS?
- TARGET_PRODUCT
- TARGET_BUILD_VARIANT
- TARGET_BUILD_TYPE
設定
- PLATFORM_VERSION_CODENAME?=REL
- PLATFORM_VERSION?=4.0.1
- TARGET_PRODUCT=full
- TARGET_BUILD_VARIANT=eng
- TARGET_BUILD_TYPE=release
- TARGET_BUILD_APPS?=
- TARGET_ARCH?=arm
- TARGET_ARCH_VARIANT?=armv7-a
- HOST_ARCH?=x86
- HOST_OS?=linux
- HOST_BUILD_TYPE?=release
- BUILD_ID?=ITL41D
定義
function lunch() { local answer if [ "$1" ] ; then answer=$1 else print_lunch_menu echo -n "Which would you like? [aosp_arm-eng] " read answer fi local selection= if [ -z "$answer" ] then selection=aosp_arm-eng elif (echo -n $answer | grep -q -e "^[0-9][0-9]*$") then if [ $answer -le ${#LUNCH_MENU_CHOICES[@]} ] then selection=${LUNCH_MENU_CHOICES[$(($answer-1))]} fi elif (echo -n $answer | grep -q -e "^[^\-][^\-]*-[^\-][^\-]*$") then selection=$answer fi if [ -z "$selection" ] then echo echo "Invalid lunch combo: $answer" return 1 fi export TARGET_BUILD_APPS= local product=$(echo -n $selection | sed -e "s/-.*$//") check_product $product if [ $? -ne 0 ] then echo echo "** Don't have a product spec for: '$product'" echo "** Do you have the right repo manifest?" product= fi local variant=$(echo -n $selection | sed -e "s/^[^\-]*-//") check_variant $variant if [ $? -ne 0 ] then echo echo "** Invalid variant: '$variant'" echo "** Must be one of ${VARIANT_CHOICES[@]}" variant= fi if [ -z "$product" -o -z "$variant" ] then echo return 1 fi export TARGET_PRODUCT=$product export TARGET_BUILD_VARIANT=$variant export TARGET_BUILD_TYPE=release echo set_stuff_for_environment printconfig }
関連
- combosetup?