dailybuild_rt2851_master.sh 13 KB

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