在 Android4.01 Android4.03  版本下chooseproduct 命令无显示,按照如下方法可以解决。
 
修改 build/envsetup.sh chooseproduct()函数如下
 
 
  1. function chooseproduct() 
  2.  
  3. #lhc180 add  
  4.  
  5. # Find all AndroidProducts.mk files under the dirs device/, build/target/ and vendor/ 
  6. # Extract lines containing .mk from them 
  7. # Extract lines containing LOCAL_DIR 
  8. # Extract the name of the product specific file 
  9.  
  10.     local -a productlist 
  11.     productlist=(`/usr/bin/find  $(gettop)/device/  $(gettop)/build/target/ $(gettop)/vendor/ -name AndroidProducts.mk 2>/dev/null
  12.                 xargs grep -h \.mk| 
  13.                 grep LOCAL_DIR| 
  14.                 cut -d'/' -f2|cut -d' ' -f1|sort|uniq|cut -d'.' -f1`) 
  15.  
  16.     local index=1 
  17.     local pselect 
  18.     echo "Product choices are:" 
  19.     for pselect  in ${productlist[@]} 
  20.     do 
  21.         echo "     $index. $pselect" 
  22.         let "index = $index + 1" 
  23.     done 
  24. #lhc180 add 
  25.  
  26.     if [ "x$TARGET_PRODUCT" != x ] ; then 
  27.         default_value=$TARGET_PRODUCT 
  28.     else 
  29.         default_value=full 
  30.     fi 
  31.  
  32.     export TARGET_PRODUCT= 
  33.     local ANSWER 
  34.     while [ -z "$TARGET_PRODUCT" ] 
  35.     do 
  36.  
  37.         echo "You can also type the name of a product if you know it." 
  38.         echo -n "Which product would you like? [$default_value] " 
  39.         if [ -z "$1" ] ; then 
  40.             read ANSWER 
  41.         else 
  42.             echo $1 
  43.             ANSWER=$1 
  44.         fi 
  45.  
  46.         if [ -z "$ANSWER" ] ; then 
  47.             export TARGET_PRODUCT=$default_value 
  48.  
  49. #lhc180 add 
  50.         elif (echo -n $ANSWER | grep -q -e "^[0-9][0-9]*$") ; then 
  51.             local poo=`echo -n $ANSWER` 
  52.             if [ $poo -le ${#productlist[@]} ] ; then 
  53.                 export TARGET_PRODUCT=${productlist[$(($ANSWER-1))]} 
  54.             else 
  55.                 echo "** Bad product selection: $ANSWER" 
  56.             fi 
  57. #lhc180 add 
  58.  
  59.         else 
  60.             if check_product $ANSWER 
  61.             then 
  62.                 export TARGET_PRODUCT=$ANSWER 
  63.             else 
  64.                 echo "** Not a valid product: $ANSWER" 
  65.             fi 
  66.         fi 
  67.         if [ -n "$1" ] ; then 
  68.             break 
  69.         fi 
  70.     done 
  71.  
  72.     set_stuff_for_environment 
修改后的结果:
 
 
  1. Product choices are: 
  2.      1. core 
  3.      2. full_maguro 
  4.      3. full 
  5.      4. full_panda 
  6.      5. full_tuna 
  7.      6. full_x86 
  8.      7. generic_armv5 
  9.      8. generic 
  10.      9. generic_x86 
  11.      10. large_emu_hw 
  12.      11. sample_addon 
  13.      12. sdk 
  14.      13. sdk_x86 
  15.      14. vbox_x86