Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Copyright 2012 The Android Open Source Project |
| 4 | # |
| 5 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
| 12 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | if [ $# != 6 ] |
| 18 | then |
| 19 | echo Usage: $0 BUILD_ID BUILD ROOTDEVICE DEVICE MANUFACTURER PRODUCT |
| 20 | echo Example: $0 1075408 KOT49Y mako mako lge occam |
| 21 | fi |
| 22 | |
| 23 | ZIP_TYPE=target_files # ota | target_files |
| 24 | |
| 25 | ZIP=$6-$ZIP_TYPE-$1.zip |
| 26 | BUILD=$2 |
| 27 | |
| 28 | ROOTDEVICE=$3 |
| 29 | DEVICE=$4 |
| 30 | MANUFACTURER=$5 |
| 31 | |
| 32 | cd ../$MANUFACTURER/$ROOTDEVICE/self-extractors || echo Error change dir |
| 33 | |
| 34 | EXTRACT_LIST_FILENAME=extract-lists.txt |
| 35 | |
| 36 | for COMPANY in `grep "[a-z|A-Z])" $EXTRACT_LIST_FILENAME | cut -f1 -d')'` |
| 37 | do |
| 38 | echo Processing files from $COMPANY |
| 39 | rm -rf tmp |
| 40 | FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary |
| 41 | mkdir -p $FILEDIR |
Bill Yi | 762617a | 2015-10-15 11:24:48 -0700 | [diff] [blame] | 42 | FILEDIR_ROOT=tmp/vendor/$MANUFACTURER/$ROOTDEVICE |
| 43 | |
| 44 | if test ${ROOTDEVICE} = "dragon" |
| 45 | then |
| 46 | FILEDIR_ROOT=tmp/vendor/${MANUFACTURER}_devices/$ROOTDEVICE |
| 47 | fi |
| 48 | mkdir -p ${FILEDIR_ROOT} |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 49 | |
Bill Yi | 158db85 | 2014-08-08 14:49:41 -0700 | [diff] [blame] | 50 | TO_EXTRACT=`sed -n -e '/'" $COMPANY"'/,/;;/ p' $EXTRACT_LIST_FILENAME | tail -n+3 | head -n-2 | sed -e 's/\\\//g'` |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 51 | |
Bill Yi | b143878 | 2014-09-09 17:59:54 -0700 | [diff] [blame] | 52 | # Check if TO_EXTRACT list has any APK files |
| 53 | if [[ ${TO_EXTRACT} == *.apk* ]] |
| 54 | then |
| 55 | APK_MAKEFILE=${FILEDIR}/Android.mk |
| 56 | echo "LOCAL_PATH := \$(call my-dir)" > ${APK_MAKEFILE} |
| 57 | echo "" >> ${APK_MAKEFILE} |
| 58 | fi |
| 59 | |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 60 | echo \ \ Extracting files from OTA package |
| 61 | for ONE_FILE in $TO_EXTRACT |
| 62 | do |
| 63 | if test ${ZIP_TYPE} = target_files |
| 64 | then |
| 65 | ONE_FILE=`echo $ONE_FILE | sed 's/system\//SYSTEM\//g'` |
| 66 | fi |
Bill Yi | d1d30cf | 2014-05-12 11:41:26 -0700 | [diff] [blame] | 67 | |
| 68 | if [[ $ONE_FILE == */lib64/* ]] |
| 69 | then |
| 70 | FILEDIR_NEW=$FILEDIR/lib64 |
Bill Yi | c70f48c | 2015-03-31 10:24:29 -0700 | [diff] [blame] | 71 | elif [[ $ONE_FILE == */arm/nb/* ]] |
| 72 | then |
| 73 | FILEDIR_NEW=$FILEDIR/armnb |
Bill Yi | d1d30cf | 2014-05-12 11:41:26 -0700 | [diff] [blame] | 74 | else |
| 75 | FILEDIR_NEW=$FILEDIR |
| 76 | fi |
| 77 | |
Bill Yi | b143878 | 2014-09-09 17:59:54 -0700 | [diff] [blame] | 78 | # apk makefile |
| 79 | if [[ ${ONE_FILE} == *.apk ]] |
| 80 | then |
| 81 | TMP_ONE_FILE_NAME=$(basename ${ONE_FILE} | sed 's/.apk//g') |
| 82 | |
| 83 | echo "include \$(CLEAR_VARS)" >> ${APK_MAKEFILE} |
| 84 | |
| 85 | echo "LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)" >> ${APK_MAKEFILE} |
| 86 | echo "LOCAL_MODULE := ${TMP_ONE_FILE_NAME}" >> ${APK_MAKEFILE} |
| 87 | echo "LOCAL_MODULE_TAGS := optional" >> ${APK_MAKEFILE} |
| 88 | echo "LOCAL_BUILT_MODULE_STEM := package.apk" >> ${APK_MAKEFILE} |
| 89 | echo "LOCAL_MODULE_OWNER := ${COMPANY}" >> ${APK_MAKEFILE} |
| 90 | echo "LOCAL_MODULE_CLASS := APPS" >> ${APK_MAKEFILE} |
| 91 | echo "LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk" >> ${APK_MAKEFILE} |
| 92 | echo "LOCAL_CERTIFICATE := PRESIGNED" >> ${APK_MAKEFILE} |
Bill Yi | bb7159d | 2014-11-03 10:25:09 -0800 | [diff] [blame] | 93 | |
Bill Yi | fa589b6 | 2015-03-17 12:42:36 -0700 | [diff] [blame] | 94 | if [[ ${ONE_FILE} == *priv-app/* ]] |
| 95 | then |
| 96 | echo "LOCAL_PRIVILEGED_MODULE := true" >> ${APK_MAKEFILE} |
| 97 | fi |
| 98 | |
Bill Yi | bb7159d | 2014-11-03 10:25:09 -0800 | [diff] [blame] | 99 | if [[ ${TMP_ONE_FILE_NAME} == "LeanbackLauncher" ]] |
| 100 | then |
| 101 | echo "LOCAL_OVERRIDES_PACKAGES := Launcher2" >> ${APK_MAKEFILE} |
| 102 | fi |
| 103 | |
Bill Yi | b143878 | 2014-09-09 17:59:54 -0700 | [diff] [blame] | 104 | echo "include \$(BUILD_PREBUILT)" >> ${APK_MAKEFILE} |
| 105 | echo "" >> ${APK_MAKEFILE} |
| 106 | fi |
| 107 | |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 108 | echo \ \ \ \ Extracting $ONE_FILE |
Bill Yi | d1d30cf | 2014-05-12 11:41:26 -0700 | [diff] [blame] | 109 | unzip -j -o $ZIP $ONE_FILE -d $FILEDIR_NEW> /dev/null || echo \ \ \ \ Error extracting $ONE_FILE |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 110 | if test ${ONE_FILE,,} = system/vendor/bin/gpsd -o ${ONE_FILE,,} = system/vendor/bin/pvrsrvinit -o ${ONE_FILE,,} = system/bin/fRom |
| 111 | then |
Bill Yi | d1d30cf | 2014-05-12 11:41:26 -0700 | [diff] [blame] | 112 | chmod a+x $FILEDIR_NEW/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 113 | fi |
Bill Yi | 771b791 | 2014-11-10 09:04:57 -0800 | [diff] [blame] | 114 | |
| 115 | ONE_FILE_BASE=$(basename $ONE_FILE) |
| 116 | if [[ $ONE_FILE_BASE == *atmel-a432-*-shamu-p1.tdat ]] |
| 117 | then |
| 118 | ATMEL_FILE=$(ls $FILEDIR_NEW/$ONE_FILE_BASE | cut -f6 -d'/') |
| 119 | sed -i "s/$ONE_FILE_BASE/$ATMEL_FILE/" moto/staging/device-partial.mk |
| 120 | elif [[ $ONE_FILE_BASE == *atmel-a432-*-shamu.tdat ]] |
| 121 | then |
| 122 | ATMEL_FILE=$(ls $FILEDIR_NEW/$ONE_FILE_BASE | cut -f6 -d'/') |
| 123 | sed -i "s/$ONE_FILE_BASE/$ATMEL_FILE/" moto/staging/device-partial.mk |
| 124 | fi |
| 125 | |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 126 | done |
| 127 | echo \ \ Setting up $COMPANY-specific makefiles |
| 128 | cp -R $COMPANY/staging/* tmp/vendor/$COMPANY/$DEVICE || echo \ \ \ \ Error copying makefiles |
| 129 | echo \ \ Setting up shared makefiles |
Bill Yi | 762617a | 2015-10-15 11:24:48 -0700 | [diff] [blame] | 130 | cp -R root/* ${FILEDIR_ROOT} || echo \ \ \ \ Error copying makefiles |
Bill Yi | ecc033e | 2014-03-19 11:37:18 -0700 | [diff] [blame] | 131 | echo \ \ Generating self-extracting script |
| 132 | SCRIPT=extract-$COMPANY-$DEVICE.sh |
| 133 | cat PROLOGUE > tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 134 | cat $COMPANY/COPYRIGHT >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 135 | cat PART1 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 136 | cat $COMPANY/LICENSE >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 137 | cat PART2 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 138 | echo tail -n +$(expr 2 + $(cat PROLOGUE $COMPANY/COPYRIGHT PART1 $COMPANY/LICENSE PART2 PART3 | wc -l)) \$0 \| tar zxv >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 139 | cat PART3 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 140 | (cd tmp ; tar zc --owner=root --group=root vendor/ >> $SCRIPT || echo \ \ \ \ Error generating embedded tgz) |
| 141 | chmod a+x tmp/$SCRIPT || echo \ \ \ \ Error generating script |
| 142 | ARCHIVE=$COMPANY-$DEVICE-$BUILD-$(md5sum < tmp/$SCRIPT | cut -b -8 | tr -d \\n).tgz |
| 143 | rm -f $ARCHIVE |
| 144 | echo \ \ Generating final archive |
| 145 | (cd tmp ; tar --owner=root --group=root -z -c -f ../$ARCHIVE $SCRIPT || echo \ \ \ \ Error archiving script) |
| 146 | rm -rf tmp |
| 147 | done |