Qsee sample app 编译

 

1. 解压编译工具链

~/Qualcomm$ ls -l
总用量 20
drwxr-xr-x 10 zpx zpx 4096 8月   1  2017 ARM501bld94_old
drwxr-xr-x  9 zpx zpx 4096 8月   1  2017 gcc-linaro-4.9-2014.11-x86_64_aarch64-elf
drwxr-xr-x  4 zpx zpx 4096 8月   1  2017 gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux
drwxr-xr-x  7 zpx zpx 4096 8月   1  2017 HEXAGON_Tools
drwxr-xr-x  3 zpx zpx 4096 8月   1  2017 LLVM
~/ARM$ ls -l
总用量 4
drwxr-xr-x 10 zpx zpx 4096 6月  27  2017 ARM501bld94

2. 准备TZ 4.0.5 源代码

~/Android/TZ.BF.4.0.5$ ls -l
总用量 12
-rwxr-xr-x  1 zpx zpx  768 1月  13 15:41 BuildProducts.txt
drwxr-xr-x 15 zpx zpx 4096 10月 28  2016 static_analysis
drwxr-xr-x  6 zpx zpx 4096 10月 28  2016 trustzone_images

3. 设置环境变量

vim ~/.bashrc
119 ######zpx add#################################
120 export ARMROOT=/home/zpx/ARM/ARM501bld94
121 export ARMINC=$ARMROOT/include
122 export ARMLIB=$ARMROOT/lib
123 export ARMBIN=$ARMROOT/bin
124 export ARMPATH=$ARMROOT/bin64
125 export ARMINCLUDE=$ARMROOT/include
126 export ARMTOOLS=ARMCT5.01
127 export PATH=$ARMINC:$ARMLIB:$ARMBIN:$ARMPATH:$ARMINCLUDE:$PATH
128 
129 export LLVMTOOLS=LLVM
130 export LLVMROOT=/home/zpx/Qualcomm/LLVM/Snapdragon-llvm-3.5.2.4-compiler-linux64
131 export LLVMBIN=$LLVMROOT/bin
132 export LLVMLIB=$LLVMROOT/lib/clang/3.5.2/lib/linux
133 export MUSLPATH=$LLVMROOT/tools/lib64
134 export MUSL32PATH=$LLVMROOT/tools/lib32
135 export LLVMINC=$MUSLPATH/include
136 export LLVM32INC=$MUSL32PATH/include
137 export LLVMTOOLPATH=$LLVMROOT/tools/bin
138 export GNUROOT=/root/Qualcomm/gcc-linaro-4.9-2014.11-x86_64_aarch64-elf
139 export GNUARM7=/root/Qualcomm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux
140 export PATH=$MUSLPATH:$MUSL32PATH:$LLVMTOOLPATH:$LLVMBIN:$LLVMLIB:$PATH
141 
142 ############################################

4.修改编译脚本

vim trustzone_images/tools/build/scons/scripts/llvm.py

修改如下两处代码

@@ -234,9 +234,9 @@ def generate(env):
          #exit(1)
 
    if os.environ.has_key('GNUROOT'):
-      env.Replace(GNUROOT = os.environ['GNUROOT'])
+      env.Replace(GNUROOT = os.environ['HOME']+'/Qualcomm/gcc-linaro-4.9-2014.11-x86_64_aarch64-elf/')
    if os.environ.has_key('GNUARM7'):
-      env.Replace(GNUARM7 = os.environ['GNUARM7'])
+      env.Replace(GNUARM7 = os.environ['HOME']+'/Qualcomm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/')
    if os.environ.has_key('MUSLPATH'):
       env.Replace(MUSLPATH = os.environ['MUSLPATH'])
    if os.environ.has_key('MUSL32PATH'):
@@ -333,7 +333,7 @@ def generate(env):
          else:
             env.Replace(LINK = GNUROOT + "/bin/aarch64-none-elf-ld")
       else:
-         env.Replace(LINK = GNUARM7 + "/bin/arm-linux-gnueabihf-ld")
+         env.Replace(LINK = GNUARM7 + "/arm-linux-gnueabihf/bin/ld")
       env.Replace(NM_FILE = env.RealPath("${BUILD_SCRIPTS_ROOT}/nm.py"))
       env.Replace(NM = "${PYTHONCMD} ${NM_FILE}")
       env.Append(BUILDERS = {'GetSymbol' : Builder(action='${LLVMTOOLPATH}/arm-nm $SOURCE > ${BUILD_ROOT}/build/ms/aaa.tmp && $NM -f ${BUILD_ROOT}/build/ms/aaa.tmp -o $TARGET ', suffix='.sym', src_suffix='.elf')})

5 编译

cd trustzone_images/build/ms/

./build.sh CHIPSET=msm8937 devcfg sampleapp

6编译结果:

ELF Properties:
Elf Header:
| Magic                      | ELF                           |
| Class                      | ELF64                          |
| Data                       | 2's complement, little endian  |
| Version                    | 1 (Current)                    |
| OS/ABI                     | No extensions or unspecified   |
| ABI Version                | 0                              |
| Type                       | DYN (Shared object file)       |
| Machine                    | 183                            |
| Version                    | 0x1                            |
| Entry address              | 0x00000000                     |
| Program headers offset     | 0x00000040                     |
| Section headers offset     | 0x00000000                     |
| Flags                      | 0x00000000                     |
| ELF header size            | 64                             |
| Program headers size       | 56                             |
| Number of program headers  | 5                              |
| Section headers size       | 64                             |
| Number of section headers  | 0                              |
| String table section index | 0                              |

Elf Program Headers:
| S.No | Type | Offset | VirtAddr | PhysAddr | FileSize | MemSize | Flags | Align |
|------|------|--------|----------|----------|----------|---------|-------|-------|
|  1   | LOAD |0x03000 | 0x00000  | 0x00000  | 0x45d6d  | 0x45d6d |  0x5  | 0x100 |
|  2   | LOAD |0x48d80 | 0x46000  | 0x46000  | 0x327a8  | 0x427a8 |  0x6  | 0x80  |
|  3   | LOAD |0x7be00 | 0x89000  | 0x89000  | 0x00270  | 0x00270 |  0x6  | 0x1000|
|  4   | LOAD |0x7ce00 | 0x8a000  | 0x8a000  | 0x000b0  | 0x000b0 |  0x6  | 0x1000|
|  5   | LOAD |0x7de00 | 0x8b000  | 0x8b000  | 0x031e0  | 0x031e0 |  0x4  | 0x1000|

Hash Segment Properties:
| Header Size  | 40B  |

Header:
| cert_chain_ptr  | 0xffffffff  |
| cert_chain_size | 0x00001800  |
| code_size       | 0x000000e0  |
| data_is_none    | 0x00000000  |
| flash_parti_ver | 0x00000003  |
| image_dest_ptr  | 0xffffffff  |
| image_id        | 0x00000004  |
| image_size      | 0x000019e0  |
| image_src       | 0x00000000  |
| sig_ptr         | 0xffffffff  |
| sig_size        | 0x00000100  |

SecElf Properties:
| image_type        | 0     |
| max_elf_segments  | 100   |
| testsig_serialnum | None  |

------------------------------------------------------

SUMMARY:
Following actions were performed: "sign, encrypt, validate"
Output is saved at: /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/core/bsp/trustzone/qsapps/smplap64/build/ZALAANAA/sign_and_encrypt

| Idx | SignId | Parse | Integrity | Sign | Encrypt |              Validate              |
|     |        |       |           |      |         | Parse | Integrity | Sign | Encrypt |
|-----|--------|-------|-----------|------|---------|-------|-----------|------|---------|
|  1. |smplap64|   T   |     NA    |  T   |    T    |   T   |     T     |  T   |    T    |

 Install file: "/home/zpx/Android/TZ.BF.4.0.5/trustzone_images/core/bsp/trustzone/qsapps/smplap64/build/ZALAANAA/sign_and_encrypt/default/smplap64/smplap64.mbn" as "bin/ZALAANAA/signed_encrypted/smplap64.mbn"...
 === Generating  sampleapp/A53_64/ZALAANAA/smplap64.mdt...
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.mdt
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b00
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b01
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b02
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b03
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b04
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b05
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/signed_encrypted/smplap64.b06
 === Generating  sampleapp/A53_64/ZALAANAA/smplap64.mdt...
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.mdt
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b00
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b01
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b02
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b03
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b04
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b05
BIN /home/zpx/Android/TZ.BF.4.0.5/trustzone_images/build/ms/bin/PIL_IMAGES/SPLITBINS_ZALAANAA/unsigned/smplap64.b06

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值