blob: c48d328682b622d12ae4b858849a1f894f3db57f [file] [log] [blame]
Bill Yiecc033e2014-03-19 11:37:18 -07001#!/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
17if [ $# != 6 ]
18then
19 echo Usage: $0 BUILD_ID BUILD ROOTDEVICE DEVICE MANUFACTURER PRODUCT
20 echo Example: $0 1075408 KOT49Y mako mako lge occam
21fi
22
23ZIP_TYPE=target_files # ota | target_files
24
25ZIP=$6-$ZIP_TYPE-$1.zip
26BUILD=$2
27
28ROOTDEVICE=$3
29DEVICE=$4
30MANUFACTURER=$5
31
32cd ../$MANUFACTURER/$ROOTDEVICE/self-extractors || echo Error change dir
33
34EXTRACT_LIST_FILENAME=extract-lists.txt
35
36for COMPANY in `grep "[a-z|A-Z])" $EXTRACT_LIST_FILENAME | cut -f1 -d')'`
37do
38 echo Processing files from $COMPANY
39 rm -rf tmp
40 FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary
41 mkdir -p $FILEDIR
Bill Yi762617a2015-10-15 11:24:48 -070042 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 Yiecc033e2014-03-19 11:37:18 -070049
Bill Yi158db852014-08-08 14:49:41 -070050 TO_EXTRACT=`sed -n -e '/'" $COMPANY"'/,/;;/ p' $EXTRACT_LIST_FILENAME | tail -n+3 | head -n-2 | sed -e 's/\\\//g'`
Bill Yiecc033e2014-03-19 11:37:18 -070051
Bill Yib1438782014-09-09 17:59:54 -070052 # 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 Yiecc033e2014-03-19 11:37:18 -070060 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 Yid1d30cf2014-05-12 11:41:26 -070067
68 if [[ $ONE_FILE == */lib64/* ]]
69 then
70 FILEDIR_NEW=$FILEDIR/lib64
Bill Yic70f48c2015-03-31 10:24:29 -070071 elif [[ $ONE_FILE == */arm/nb/* ]]
72 then
73 FILEDIR_NEW=$FILEDIR/armnb
Bill Yid1d30cf2014-05-12 11:41:26 -070074 else
75 FILEDIR_NEW=$FILEDIR
76 fi
77
Bill Yib1438782014-09-09 17:59:54 -070078 # 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 Yibb7159d2014-11-03 10:25:09 -080093
Bill Yifa589b62015-03-17 12:42:36 -070094 if [[ ${ONE_FILE} == *priv-app/* ]]
95 then
96 echo "LOCAL_PRIVILEGED_MODULE := true" >> ${APK_MAKEFILE}
97 fi
98
Bill Yibb7159d2014-11-03 10:25:09 -080099 if [[ ${TMP_ONE_FILE_NAME} == "LeanbackLauncher" ]]
100 then
101 echo "LOCAL_OVERRIDES_PACKAGES := Launcher2" >> ${APK_MAKEFILE}
102 fi
103
Bill Yib1438782014-09-09 17:59:54 -0700104 echo "include \$(BUILD_PREBUILT)" >> ${APK_MAKEFILE}
105 echo "" >> ${APK_MAKEFILE}
106 fi
107
Bill Yiecc033e2014-03-19 11:37:18 -0700108 echo \ \ \ \ Extracting $ONE_FILE
Bill Yid1d30cf2014-05-12 11:41:26 -0700109 unzip -j -o $ZIP $ONE_FILE -d $FILEDIR_NEW> /dev/null || echo \ \ \ \ Error extracting $ONE_FILE
Bill Yiecc033e2014-03-19 11:37:18 -0700110 if test ${ONE_FILE,,} = system/vendor/bin/gpsd -o ${ONE_FILE,,} = system/vendor/bin/pvrsrvinit -o ${ONE_FILE,,} = system/bin/fRom
111 then
Bill Yid1d30cf2014-05-12 11:41:26 -0700112 chmod a+x $FILEDIR_NEW/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE
Bill Yiecc033e2014-03-19 11:37:18 -0700113 fi
Bill Yi771b7912014-11-10 09:04:57 -0800114
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 Yiecc033e2014-03-19 11:37:18 -0700126 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 Yi762617a2015-10-15 11:24:48 -0700130 cp -R root/* ${FILEDIR_ROOT} || echo \ \ \ \ Error copying makefiles
Bill Yiecc033e2014-03-19 11:37:18 -0700131 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
147done