blob: 535ec56ae5fd363ed5239bd5033bf35235ba66c6 [file] [log] [blame]
Jean-Baptiste Queru1a2a9562011-11-09 09:58:05 -08001#!/bin/sh
2
3# Copyright (C) 2011 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
Jean-Baptiste Queruaee5be42011-12-12 09:40:14 -080017# 221846 = IML40B
18# 236517 = IML70C
19ZIP=tervigon-ota-236517.zip
20BUILD=iml70c
Jean-Baptiste Queru1a2a9562011-11-09 09:58:05 -080021ROOTDEVICE=stingray
22DEVICE=wingray
23MANUFACTURER=moto
24
25for COMPANY in nvidia broadcom
26do
27 echo Processing files from $COMPANY
28 rm -rf tmp
29 FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary
30 mkdir -p $FILEDIR
31 mkdir -p tmp/vendor/$MANUFACTURER/$ROOTDEVICE
32 case $COMPANY in
33 broadcom)
34 TO_EXTRACT="\
35 system/etc/firmware/bcm4329.hcd \
36 system/etc/wifi/bcm4329.cal \
37 system/vendor/firmware/fw_bcm4329_mfg.bin
38 "
39 ;;
40 nvidia)
41 TO_EXTRACT="\
42 system/etc/firmware/nvmm_aacdec.axf \
43 system/etc/firmware/nvddk_audiofx_core.axf \
44 system/etc/firmware/nvddk_audiofx_transport.axf \
45 system/etc/firmware/nvmm_adtsdec.axf \
46 system/etc/firmware/nvmm_audiomixer.axf \
47 system/etc/firmware/nvmm_h264dec.axf \
48 system/etc/firmware/nvmm_jpegdec.axf \
49 system/etc/firmware/nvmm_jpegenc.axf \
50 system/etc/firmware/nvmm_manager.axf \
51 system/etc/firmware/nvmm_mp2dec.axf \
52 system/etc/firmware/nvmm_mp3dec.axf \
53 system/etc/firmware/nvmm_mpeg4dec.axf \
54 system/etc/firmware/nvmm_reference.axf \
55 system/etc/firmware/nvmm_service.axf \
56 system/etc/firmware/nvmm_sorensondec.axf \
57 system/etc/firmware/nvmm_sw_mp3dec.axf \
58 system/etc/firmware/nvmm_wavdec.axf \
59 system/etc/firmware/nvrm_avp.bin \
60 system/lib/egl/libEGL_tegra.so \
61 system/lib/egl/libGLESv1_CM_tegra.so \
62 system/lib/egl/libGLESv2_tegra.so \
63 system/lib/hw/gralloc.tegra.so \
64 system/lib/hw/hwcomposer.tegra.so \
65 system/lib/libcgdrv.so \
66 system/lib/libnvddk_2d.so \
67 system/lib/libnvddk_2d_v2.so \
68 system/lib/libnvddk_audiofx.so \
69 system/lib/libnvdispatch_helper.so \
70 system/lib/libnvdispmgr_d.so \
71 system/lib/libnvmm.so \
72 system/lib/libnvmm_camera.so \
73 system/lib/libnvmm_contentpipe.so \
74 system/lib/libnvmm_image.so \
75 system/lib/libnvmm_manager.so \
76 system/lib/libnvmm_service.so \
77 system/lib/libnvmm_tracklist.so \
78 system/lib/libnvmm_utils.so \
79 system/lib/libnvmm_video.so \
80 system/lib/libnvomx.so \
81 system/lib/libnvomxilclient.so \
82 system/lib/libnvos.so \
83 system/lib/libnvrm.so \
84 system/lib/libnvrm_channel.so \
85 system/lib/libnvrm_graphics.so \
86 system/lib/libnvsm.so \
87 system/lib/libnvwsi.so \
88 system/lib/libstagefrighthw.so
89 "
90 ;;
91 esac
92 echo \ \ Extracting files from OTA package
93 for ONE_FILE in $TO_EXTRACT
94 do
95 echo \ \ \ \ Extracting $ONE_FILE
96 unzip -j -o $ZIP $ONE_FILE -d $FILEDIR > /dev/null || echo \ \ \ \ Error extracting $ONE_FILE
97 if test $ONE_FILE = system/vendor/bin/gpsd -o $ONE_FILE = system/vendor/bin/pvrsrvinit
98 then
99 chmod a+x $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE
100 fi
101 if test $(echo $ONE_FILE | grep \\.apk\$ | wc -l) = 1
102 then
103 echo \ \ \ \ Splitting $ONE_FILE
104 mkdir -p $FILEDIR/$(basename $ONE_FILE).parts || echo \ \ \ \ Error making parts dir for $ONE_FILE
105 unzip $FILEDIR/$(basename $ONE_FILE) -d $FILEDIR/$(basename $ONE_FILE).parts > /dev/null || echo \ \ \ \ Error unzipping $ONE_FILE
106 rm $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error removing original $ONE_FILE
107 rm -rf $FILEDIR/$(basename $ONE_FILE).parts/META-INF || echo \ \ \ \ Error removing META-INF for $ONE_FILE
108 fi
109 done
110 echo \ \ Setting up $COMPANY-specific makefiles
111 cp -R $COMPANY/staging/* tmp/vendor/$COMPANY/$DEVICE || echo \ \ \ \ Error copying makefiles
112 echo \ \ Setting up shared makefiles
113 cp -R root/* tmp/vendor/$MANUFACTURER/$ROOTDEVICE || echo \ \ \ \ Error copying makefiles
114 echo \ \ Generating self-extracting script
115 SCRIPT=extract-$COMPANY-$DEVICE.sh
116 cat PROLOGUE > tmp/$SCRIPT || echo \ \ \ \ Error generating script
117 cat $COMPANY/COPYRIGHT >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
118 cat PART1 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
119 cat $COMPANY/LICENSE >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
120 cat PART2 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
121 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
122 cat PART3 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
123 (cd tmp ; tar zc --owner=root --group=root vendor/ >> $SCRIPT || echo \ \ \ \ Error generating embedded tgz)
124 chmod a+x tmp/$SCRIPT || echo \ \ \ \ Error generating script
125 ARCHIVE=$COMPANY-$DEVICE-$BUILD-$(md5sum < tmp/$SCRIPT | cut -b -8 | tr -d \\n).tgz
126 rm -f $ARCHIVE
127 echo \ \ Generating final archive
128 (cd tmp ; tar --owner=root --group=root -z -c -f ../$ARCHIVE $SCRIPT || echo \ \ \ \ Error archiving script)
129 rm -rf tmp
130done