dailybuild_rt2841_master.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. #!/bin/bash
  2. ###############################################
  3. #脚本需要放置在根目录下运行
  4. ###############################################
  5. stty erase '^H'
  6. version=""
  7. WORKSPACE=$(pwd)
  8. ANDROID_DIR=$WORKSPACE"/kernel/android/pie"
  9. ROOTFS_NAME="R1"
  10. #SQA_PATH=$WORKSPACE"/SQA_DailyBuild/cts-golden"
  11. SQA_PATH=$WORKSPACE"/SQA_DailyBuild/odin"
  12. SQA_AUDIO_FW_PATH=$WORKSPACE"/SQA_DailyBuild/tv051"
  13. #ANDROIDDEVICE="R1"
  14. VIDEO_ADDNAME=".opt.2k"
  15. AUDIO_ADDNAME=".MS12D.AC4.dbx"
  16. BOOTCODE="RTD285OB6_B1_F1_TV051"
  17. NEWSAN_BOOTCODE="RTD285OB6_B1_F1_TV051_SA"
  18. CUS_ID="tv051"
  19. PROJECTNAME="develop.android.pie.rtd284o.tv051.emmc.andtv.optee"
  20. COPYTMPNAME=$PROJECTNAME"_img"
  21. KEY_OPTION=$WORKSPACE"/kernel/android/pie/device/tv051/R1/rt2841Releasekeys"
  22. Temp_file=$WORKSPACE"/temp_file/temp_file_41"
  23. RTK_TV_NEWMENU=FALSE
  24. TCL_APPS_SVN_SRC_APK=https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk
  25. # check cur path is android top
  26. if [ ! -d $ANDROID_DIR/frameworks ]; then
  27. echo "please run me from android top path."
  28. exit 0
  29. fi
  30. if [ ! -d "$Temp_file" ]; then
  31. cd $WORKSPACE
  32. mkdir temp_file
  33. chmod 755 -R temp_file
  34. fi
  35. function customize_app() {
  36. rm -rf $ANDROID_DIR/vendor/tv051/app/PrimeVideo_Panasonic
  37. rm -rf $ANDROID_DIR/vendor/tv051/app/Esticker_songxia
  38. rm -rf $ANDROID_DIR/vendor/tv051/app/AudioLink
  39. }
  40. var_d=$(date '+%m%d%H')
  41. mmver="V$var_d"
  42. echo "MAIN::var_d=" $var_d
  43. echo "MAIN::mmver=" $mmver
  44. function pre_build_debug() {
  45. version="V8-T841T01-debug$var_d"
  46. CTS_build=n
  47. OTA_build=y
  48. Rebuild=y
  49. Checkout_app=y
  50. export TCL_PRODUCT_VERSION=$version
  51. echo "userdebug: TCL_PRODUCT_VERSION: " $TCL_PRODUCT_VERSION
  52. repo forall -c "pwd && git clean -xfd && git checkout -- ."
  53. rm -rf out
  54. repo init -u ssh://10.126.16.60:29418/rt2841_manifest -m odin-gms.xml -b master
  55. repo sync -j8
  56. if [ x$Checkout_app = "xy" ]; then
  57. HEAD_VERSION=$(svn info $TCL_APPS_SVN_SRC_APK | grep Revision | cut -d' ' -f2)
  58. if [ -z "$HEAD_VERSION" ]; then
  59. echo "HEAD_VERSION is empty, continue without update apps."
  60. HEAD_VERSION="0000"
  61. else
  62. echo "Update apps to SVN $HEAD_VERSION"
  63. ./kernel/android/pie/device/tv051/R1/update_apps_rt2841.sh $HEAD_VERSION
  64. fi
  65. fi
  66. customize_app
  67. mmver="V$var_d"_SVN-"$HEAD_VERSION"
  68. repo manifest -r -o manifest-master-$mmver.xml
  69. cd $ANDROID_DIR/build/make
  70. sed -i "s/ro.build.user=.*/ro.build.user=\DailyBuild\"/" tools/buildinfo.sh
  71. sed -i "s/ro.build.host=.*/ro.build.host=\scbc-X299-WU8\"/" tools/buildinfo.sh
  72. }
  73. function build_android() {
  74. if [ x$CTS_build = "xy" ]; then
  75. ANDROIDLUNCHNAME="R1-user"
  76. COMPILEMODE="user"
  77. else
  78. ANDROIDLUNCHNAME="R1-userdebug"
  79. COMPILEMODE="userdebug"
  80. fi
  81. if [ x$Rebuild = "xy" ]; then
  82. make_kernel_android
  83. Compile_Libvip
  84. else
  85. make_kernel_android_noclean
  86. Compile_Libvip
  87. fi
  88. make_img
  89. if [ x$OTA_build = "xy" ]; then
  90. if [ x$CTS_build = "xy" ]; then
  91. echo "There is not make ota !!!!"
  92. else
  93. make_ota
  94. fi
  95. fi
  96. }
  97. #报错退出
  98. function make_error_exit() {
  99. if [ "$(echo $?)" != "0" ]; then #在make clean;make如果失败,则走到这一步,即可在下面进行打印或操作;
  100. echo "There is a error , The compiler is fail !!!!"
  101. exit
  102. fi
  103. }
  104. #编译VIP
  105. function Compile_Libvip() {
  106. # Compile VIP TABLE
  107. cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/
  108. ./genPanelFactory.pl
  109. }
  110. #编译kernel 时间比较长
  111. function make_kernel_android() {
  112. echo "start make kernel & android"
  113. cd $ANDROID_DIR
  114. rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
  115. # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
  116. unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
  117. unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
  118. cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
  119. if [ x$CUSTOMER = "xNEWSAN" ]; then
  120. cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image
  121. else
  122. cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
  123. fi
  124. cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
  125. cp -f $Temp_file/* $rtk_image
  126. # Run process.sh to encrypt
  127. cd $rtk_image
  128. ./process.sh
  129. # Add default power to 'On'
  130. cd $ANDROID_DIR"/vendor/realtek/hardware/interfaces/rtkconfigs/1.0/default/RtkProjectConfigs/ProjectConfigs/model"
  131. sed -i 's/^ModeStatus = 1/ModeStatus = 0/g' EU_1_RT41_32.ini
  132. cd $WORKSPACE/kernel/system
  133. # make kernel/android user build + ota
  134. # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
  135. case $COMPILEMODE in
  136. user)
  137. ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -n $RTK_TV_NEWMENU
  138. ;;
  139. *)
  140. ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -n $RTK_TV_NEWMENU
  141. ;;
  142. esac
  143. make_error_exit
  144. echo "make kernel_android succeed"
  145. }
  146. function make_kernel_android_noclean() {
  147. echo "start make kernel & android without clean"
  148. echo "start make kernel & android"
  149. cd $ANDROID_DIR
  150. rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
  151. # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
  152. unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
  153. unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
  154. cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
  155. if [ x$CUSTOMER = "xNEWSAN" ]; then
  156. cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image
  157. else
  158. cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
  159. fi
  160. cp -f $Temp_file/* $rtk_image
  161. cd $rtk_image
  162. ./process.sh
  163. cd $WORKSPACE/kernel/system
  164. # make kernel/android user build + ota
  165. # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
  166. case $COMPILEMODE in
  167. user)
  168. ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -n $RTK_TV_NEWMENU
  169. ;;
  170. *)
  171. ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -n $RTK_TV_NEWMENU
  172. ;;
  173. esac
  174. make_error_exit
  175. echo "make kernel & android without clean succeed"
  176. }
  177. #编译ota
  178. function make_ota() {
  179. cd $ANDROID_DIR
  180. rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
  181. # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
  182. unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
  183. unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
  184. cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
  185. if [ x$CUSTOMER = "xNEWSAN" ]; then
  186. cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image
  187. else
  188. cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
  189. fi
  190. cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
  191. cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $rtk_image
  192. source build/envsetup.sh
  193. #选择需要设备
  194. lunch $ANDROIDLUNCHNAME
  195. make otapackage -j4
  196. make_error_exit
  197. }
  198. #make img
  199. function make_img() {
  200. echo "start to make_img()>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
  201. echo $PROJECTNAME
  202. echo $COPYTMPNAME
  203. cd $WORKSPACE/image_file_creator/
  204. #git clean -fdx
  205. #git reset --hard
  206. ### Copy OPTEE to different image_file_creator
  207. echo "copy kernel/optee"
  208. cp -rf ../kernel/system/tmp/$COPYTMPNAME/* components/packages/package7/
  209. cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin components/packages/package7/customer/$CUS_ID/
  210. cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.map components/packages/package7/customer/$CUS_ID/
  211. echo "copy bin_panel"
  212. mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
  213. mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
  214. cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/bin_panel/PanelParam/
  215. cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
  216. cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
  217. cd -
  218. echo "copy video/audio fw"
  219. # VCPU 1
  220. cp -f $SQA_PATH"/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip" components/packages/package7/bluecore.video.zip
  221. cp -f $SQA_PATH"/AV_FW/System.map.video"$VIDEO_ADDNAME components/packages/package7/System.map.video
  222. # ACPU 1
  223. cp -f $SQA_AUDIO_FW_PATH"/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip" components/packages/package7/bluecore.audio.zip
  224. cp -f $SQA_AUDIO_FW_PATH"/AV_FW/System.map.audio"$AUDIO_ADDNAME components/packages/package7/System.map.audio
  225. #add impdata
  226. cp -f $ANDROID_DIR/out/target/product/$ROOTFS_NAME/impdata.img components/packages/package7/
  227. # Make image with bootcode
  228. if [ x$CUSTOMER = "xNEWSAN" ]; then
  229. cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $WORKSPACE/image_file_creator/components/packages/package7/
  230. else
  231. cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $WORKSPACE/image_file_creator/components/packages/package7/
  232. fi
  233. make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
  234. mv install.img install_USB.img
  235. mv install.img.impdata install.img.impdata_USB
  236. cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $Temp_file
  237. if [ x$CTS_build = "xy" ]; then
  238. # Make GSI image with bootcode
  239. echo "make gsi image with bootcode..."
  240. rm -rf $WORKSPACE/image_file_creator/components/packages/package7/vbmeta.img
  241. rm -rf $WORKSPACE/image_file_creator/components/packages/package7/system.img
  242. cp -f $WORKSPACE/GSI_Image/* $WORKSPACE/image_file_creator/components/packages/package7/
  243. make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
  244. mv install.img install_GSI.img
  245. fi
  246. make_error_exit
  247. echo "make img succeed"
  248. }
  249. function copy_file() {
  250. var_md=$(date '+%m%d')
  251. echo "make_userdebug::var_md=" $var_md
  252. rm -rf $WORKSPACE/DailyBuild_RT2841*
  253. mkdir -p $WORKSPACE/DailyBuild_RT2841_$var_md
  254. cp -f $WORKSPACE/image_file_creator/install_USB.img $WORKSPACE/DailyBuild_RT2841_$var_md/$version.img
  255. if [ x$CTS_build = "xy" ]; then
  256. cp -f $WORKSPACE/image_file_creator/install_GSI.img $WORKSPACE/DailyBuild_RT2841_$var_md/$version_GSI.img
  257. cp -f $ANDROID_DIR/signed-ota_update.zip $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
  258. else
  259. cp -f $ANDROID_DIR/out/target/product/R1/*.zip $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
  260. fi
  261. mv $WORKSPACE/manifest-master-$mmver.xml $WORKSPACE/DailyBuild_RT2841_$var_md/
  262. md5sum $WORKSPACE/DailyBuild_RT2841_$var_md/* >$WORKSPACE/DailyBuild_RT2841_$var_md/MD5.TXT
  263. cp -r $WORKSPACE/DailyBuild_RT2841_$var_md /home/RT2841_2851_dailybuild/
  264. }
  265. function scopy_file() {
  266. var_md=$(date '+%m%d')
  267. echo "make_userdebug::var_md=" $var_md
  268. rm -rf $WORKSPACE/DailyBuild_RT2841*
  269. mkdir -p $WORKSPACE/DailyBuild_RT2841_$var_md
  270. cp -f $WORKSPACE/image_file_creator/install_USB.img $WORKSPACE/DailyBuild_RT2841_$var_md/$version.img
  271. if [ x$CTS_build = "xy" ]; then
  272. cp -f $WORKSPACE/image_file_creator/install_GSI.img $WORKSPACE/DailyBuild_RT2841_$var_md/$version_GSI.img
  273. cp -f $ANDROID_DIR/signed-ota_update.zip $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
  274. else
  275. cp -f $ANDROID_DIR/out/target/product/R1/*.zip $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
  276. fi
  277. mv $WORKSPACE/manifest-master-$mmver.xml $WORKSPACE/DailyBuild_RT2841_$var_md/
  278. md5sum $WORKSPACE/DailyBuild_RT2841_$var_md/* >$WORKSPACE/DailyBuild_RT2841_$var_md/MD5.TXT
  279. cp -r $WORKSPACE/DailyBuild_RT2841_$var_md /home/RT2841_2851_dailybuild/
  280. }
  281. pre_build_debug
  282. build_android
  283. copy_file