高通部分代码编译需要license,可向公司申请
下载qcom的amss即modem部分代码
下载android代码

modem部分包括sbl1 rpm tz mpss nonhlos.bin

android必须要有amss的代码,amss的代码不能放在android里面

cp ./LINUX/android/vendor/qcom/proprietary ~/Qcomm/msm8909-sdk/msm8909_svn/vendor/qcom/  -fr

编译android

source build/envsetup.sh

lunch msm8909-userdebug

make -j

编译sbl1

cd boot_images/build/ms
./build.sh TARGET_FAMILY=8909 –prod
./build.sh TARGET_FAMILY=8909 –prod -c //清除

修改

Index: boot_images/build/ms/setenv.sh===================================================================--- boot_images/build/ms/setenv.sh      (revision 73)+++ boot_images/build/ms/setenv.sh      (revision 74)@@ -70,19 +70,24 @@    } # Set up compiler path     #ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium-   export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/bin64-   export PYTHON_PATH=/pkg/qct/software/python/2.6.6/bin-   export MAKE_PATH=/pkg/gnu/make/3.81/bin-   export ARMTOOLS=ARMCT5.01-   export ARMROOT=/pkg/qct/software/arm/RVDS/5.01bld94+   export ARM_COMPILER_PATH=/opt/Qualcomm/ARM5.01bld94+   export PYTHON_PATH=/opt/Qualcomm/PYTHON/Python-2.6.6+   export MAKE_PATH=/usr/bin+   export ARMTOOLS=RCVT41+   export ARMROOT=/opt/Qualcomm/ARM5.01bld94    export ARMLIB=$ARMROOT/lib    export ARMINCLUDE=$ARMROOT/include    export ARMINC=$ARMINCLUDE    #export ARMCONF=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium   # export ARMDLL=$ARMROOT/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium-   export ARMBIN=$ARMROOT/bin64+   export ARMBIN=$ARMROOT/bin    export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$PATH    export ARMHOME=$ARMROOT-   export_armlmd_license+   export ARMLMD_LICENSE_FILE=${ARMROOT}/license.dat+   #export_armlmd_license+   export "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"+   export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"+   export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"+   export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933" fi

sbl1生成在 boot_images/build/ms/bin/8909/emmc/sbl1.mbn

编译rpm

cd rpm_proc/build
./build_8909.sh

修改

Index: rpm_proc/build/build_8909.sh===================================================================--- rpm_proc/build/build_8909.sh        (revision 73)+++ rpm_proc/build/build_8909.sh        (revision 74)@@ -15,6 +15,9 @@ export CHIPSET=msm8909 export CHIPSET_PMIC=pm8909 export SECPOLICY=USES_SEC_POLICY_DEFAULT_SIGN++source /opt/Qualcomm/setenv_qcom.sh + cd './rpm_proc/build/' python ./build_common.py $@

/opt/Qualcomm/setenv_qcom.sh

#!/bin/bashexport ARMROOT=/opt/Qualcomm/ARM5.01bld94export ARMTOOLS=RVCT41export ARMHOME=$ARMROOTexport ARMBIN=${ARMROOT}/binexport ARMPATH=${ARMROOT}/binexport ARMINC=${ARMROOT}/includeexport ARMINCLUDE=${ARMROOT}/includeexport ARMLIB=${ARMROOT}/libexport ARMLMD_LICENSE_FILE=${ARMROOT}/license.datexport SCONS_OVERRIDE_NUM_JOBS=8export PATH=.:${ARMBIN}:$PATHexport "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933"export LLVMTOOLS=LLVM#Snapdragon_LLVM_ARM_linux_3.8.4export LLVMROOT=/opt/Qualcomm/LLVMROOTexport LLVMBIN=$LLVMROOT/binexport LLVMLIB=$LLVMROOT/lib/clang/3.8.4/lib/linuxexport MUSLPATH=$LLVMROOT/tools/lib64export MUSL32PATH=$LLVMROOT/tools/lib32export LLVMINC=$MUSLPATH/includeexport LLVM32INC=$MUSL32PATH/includeexport LLVMTOOLPATH=$LLVMROOT/tools/binPYTHON_PATH=/opt/Qualcomm/PYTHON/Python-2.6.6/binexport GNUROOT=/opt/Qualcomm/GNU/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnuexport GNUARM7=/opt/Qualcomm/GNU/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linuxexport HEXAGON_ROOT=/opt/Qualcomm/HEXAGON_Toolsexport PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/gnu/bin:$PATH

上面的HEXAGON_Tools 6.4.06对应的版本居然在高通官网上下不到,其他版本都不行,安装也不成功,这个已安装成功的,还是我向别人要的,然后直接放在对应的路径下

编译tz

cd trustzone_images/build/ms./build.sh CHIPSET=msm8909 tz sampleapp tzbsp_no_xpu playready widevine isdbtmm aostlm securitytest keymaster commonlib ./build.sh CHIPSET=msm8909 tz sampleapp tzbsp_no_xpu playready widevine isdbtmm aostlm securitytest keymaster commonlib  -c

修改

Index: trustzone_images/build/ms/setenv.sh===================================================================--- trustzone_images/build/ms/setenv.sh (revision 73)+++ trustzone_images/build/ms/setenv.sh (revision 74)@@ -43,28 +43,15 @@      rm -f __temp.out    } # Set up compiler path-   ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium-   PYTHON_PATH=/pkg/qct/software/python/2.6.6/bin-   MAKE_PATH=/pkg/gnu/make/3.81/bin-   export ARMTOOLS=ARMCT5.01-   export ARMROOT=/pkg/qct/software/arm/RVDS/5.01bld94-   export ARMLIB=$ARMROOT/lib-   export ARMINCLUDE=$ARMROOT/include-   export ARMINC=$ARMINCLUDE-#   export ARMCONF=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium-#   export ARMDLL=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium-   export ARMBIN=$ARMROOT/bin64+#---------------------------------------------set ARM6 version---------------------------------------------------------------------------   # PYTHONBIN specifies version that will be added to PATH-   if [ -z ${PYTHONBIN} ]; then-      # Set default version for legacy builds-      PYTHONBIN=${PYTHON_PATH}-   fi+source /opt/Qualcomm/setenv_qcom.sh+export ARMTOOLS=ARMCT6-   export PATH=$MAKE_PATH:$PYTHONBIN:$ARM_COMPILER_PATH:$PATH-   export ARMHOME=$ARMROOT-   export_armlmd_license+++  #----------------------------------------------------------------------------------------------------------------------------------------- fi #==============================================================================

编译MPSS

cd modem_proc/build/ms
./build.sh 8909.gen.prod -k //文档里有三个选项,三个都试下,不然后面打包nonhlos.bin会失败,因为content.xml对应的文件没有,即根据content.xml查找对应的路径

 <file_path>modem_proc/build/ms/bin/8909.gen.prodfile_path>

修改

Index: modem_proc/build/ms/build.sh===================================================================--- modem_proc/build/ms/build.sh        (revision 73)+++ modem_proc/build/ms/build.sh        (revision 74)@@ -25,6 +25,54 @@ source ./setenv.sh fi+source  /opt/Qualcomm/setenv_qcom.sh+export HEXAGON_RTOS_RELEASE=6.4.04+export ARMTOOLS=RVCT221+export HEXAGON_ROOT=/opt/Qualcomm/HEXAGON_Tools +# export HEXAGON_ROOT=/root/Qualcomm/HEXAGON_Tools+#export PATH=$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/bin:$PATH+# export ARMTOOLS=RCVT221+#!/bin/bash+# --------   ---     ---------------------------------------------------------+# 4/26/17    sy      Initial creation+# ==========================================================================++export BUILDSPEC=KLOCWORK++# Set up common path+export PYTHON_PATH=/usr/bin+export MAKE_PATH=/usr/bin++# PYTHONBIN specifies version that will be added to PATH+if [ -z ${PYTHONBIN}  ]; then+       # Set default version for legacy builds+          PYTHONBIN=${PYTHON_PATH}+fi+      export ARMTOOLS=RVCT41      +      export ARMROOT=/opt/Qualcomm/ARM5.01bld94    +      export ARMLIB=$ARMROOT/lib+      export ARMINCLUDE=$ARMROOT/include+      export ARMINC=$ARMINCLUDE+      export ARMBIN=$ARMROOT/bin+      export ARMHOME=$ARMROOT+      export SCONS_OVERRIDE_NUM_JOBS=8+      # Set up LLVM path+      export LLVMTOOLS=LLVM+      export LLVMROOT=/opt/Qualcomm/LLVMROOT+      export LLVMBIN=$LLVMROOT/bin+      export LLVMLIB=$LLVMROOT/lib/clang/3.8.4/lib/linux+      export MUSLPATH=$LLVMROOT/tools/lib64+      export MUSL32PATH=$LLVMROOT/tools/lib32+      export LLVMINC=$MUSLPATH/include+      export LLVM32INC=$MUSL32PATH/include+      export LLVMTOOLPATH=$LLVMROOT/tools/bin+      export GNUROOT=/opt/Qualcomm/GNU/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu+      export GNUARM7=/opt/Qualcomm/GNU/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux+      export "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"+      export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"+      export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"+      export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933"+      export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/gnu/bin:$PATH # Call the main build command python build_variant.py $* build_result=$?

这是需要制作分区表
amss_8909/common/build/partition.xml
这里将sec去掉,不然烧录后起不来,除非做sec功能

make rawprogram0.xml patch0.xml

boot_images/core/storage/tools/ptool/ptool.py -x partition.xml
生成
gpt_backup0.bin
gpt_both0.bin
gpt_main0.bin
zeros_1sector.bin
patch0.xml
rawprogram0.xml
将/common/build$ 下的 *.bin rawprogram0.xml patch0.xml 拷贝到android 对应的out目录out/target/product/msm8909/下,

编译 nonhlos.bin

cd ./common/build/
python update_common_info.py –nonhlos

更多相关文章

  1. Android屏幕禁止休眠的方法
  2. Android(安卓)root file system 的创建
  3. NDK/JNI02-实例开发流程
  4. Android开发实践 带你理解使用WebView
  5. 树莓派3(全志A20)Android固件编译
  6. NDK/JNI02-实例开发流程
  7. android onTouchEvent和setOnTouchListener中onTouch的区别
  8. 2011.10.19(3)——— android 一个便签的Widget例子
  9. Android(安卓)Toolchain与Bionic Libc

随机推荐

  1. Android开发规范(编码+性能+UI)
  2. Android数据库升级
  3. Android开发规范(编码+性能+UI)
  4. Android下uid与多用户释疑(一)
  5. 移动设备操作系统知识点简摘又名我的期末
  6. Android系统架构分析 和 Android应用程序
  7. 有关Android线程的学习
  8. 学习Android从0开始之背景篇-Android系统
  9. android的init实例
  10. Android存储数据的三种方式