1# Copyright 2011 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# Use the default values if they weren't explicitly set
16if test "$XLOADERSRC" = ""
17then
18  XLOADERSRC=xloader.img
19fi
20if test "$BOOTLOADERSRC" = ""
21then
22  BOOTLOADERSRC=bootloader.img
23fi
24if test "$RADIOSRC" = ""
25then
26  RADIOSRC=radio.img
27fi
28if test "$SLEEPDURATION" = ""
29then
30  SLEEPDURATION=5
31fi
32
33# Prepare the staging directory
34rm -rf tmp
35mkdir -p tmp/$PRODUCT-$VERSION
36
37# Extract the bootloader(s) and radio(s) as necessary
38if test "$XLOADER" != ""
39then
40  unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$XLOADERSRC
41fi
42if test "$BOOTLOADERFILE" = ""
43then
44  unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$BOOTLOADERSRC
45fi
46if test "$RADIO" != "" -a "$RADIOFILE" = ""
47then
48  unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$RADIOSRC
49fi
50if test "$CDMARADIO" != "" -a "$CDMARADIOFILE" = ""
51then
52  unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/radio-cdma.img
53fi
54
55# Copy the various images in their staging location
56cp ${SRCPREFIX}$PRODUCT-img-$BUILD.zip tmp/$PRODUCT-$VERSION/image-$PRODUCT-$VERSION.zip
57if test "$XLOADER" != ""
58then
59  cp tmp/RADIO/$XLOADERSRC tmp/$PRODUCT-$VERSION/xloader-$DEVICE-$XLOADER.img
60fi
61if test "$BOOTLOADERFILE" = ""
62then
63  cp tmp/RADIO/$BOOTLOADERSRC tmp/$PRODUCT-$VERSION/bootloader-$DEVICE-$BOOTLOADER.img
64else
65  cp $BOOTLOADERFILE tmp/$PRODUCT-$VERSION/bootloader-$DEVICE-$BOOTLOADER.img
66fi
67if test "$RADIO" != ""
68then
69  if test "$RADIOFILE" = ""
70  then
71    cp tmp/RADIO/$RADIOSRC tmp/$PRODUCT-$VERSION/radio-$DEVICE-$RADIO.img
72  else
73    cp $RADIOFILE tmp/$PRODUCT-$VERSION/radio-$DEVICE-$RADIO.img
74  fi
75fi
76if test "$CDMARADIO" != ""
77then
78  if test "$CDMARADIOFILE" = ""
79  then
80    cp tmp/RADIO/radio-cdma.img tmp/$PRODUCT-$VERSION/radio-cdma-$DEVICE-$CDMARADIO.img
81  else
82    cp $CDMARADIOFILE tmp/$PRODUCT-$VERSION/radio-cdma-$DEVICE-$CDMARADIO.img
83  fi
84fi
85
86# Write flash-all.sh
87cat > tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
88#!/bin/sh
89
90# Copyright 2012 The Android Open Source Project
91#
92# Licensed under the Apache License, Version 2.0 (the "License");
93# you may not use this file except in compliance with the License.
94# You may obtain a copy of the License at
95#
96#      http://www.apache.org/licenses/LICENSE-2.0
97#
98# Unless required by applicable law or agreed to in writing, software
99# distributed under the License is distributed on an "AS IS" BASIS,
100# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
101# See the License for the specific language governing permissions and
102# limitations under the License.
103
104EOF
105if test "$UNLOCKBOOTLOADER" = "true"
106then
107cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
108fastboot oem unlock
109EOF
110fi
111if test "$ERASEALL" = "true"
112then
113cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
114fastboot erase boot
115fastboot erase cache
116fastboot erase recovery
117fastboot erase system
118fastboot erase userdata
119EOF
120fi
121if test "$XLOADER" != ""
122then
123cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
124fastboot flash xloader xloader-$DEVICE-$XLOADER.img
125EOF
126fi
127cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
128fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img
129EOF
130if test "$TWINBOOTLOADERS" = "true"
131then
132cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
133fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img
134EOF
135fi
136cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
137fastboot reboot-bootloader
138sleep $SLEEPDURATION
139EOF
140if test "$RADIO" != ""
141then
142cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
143fastboot flash radio radio-$DEVICE-$RADIO.img
144fastboot reboot-bootloader
145sleep $SLEEPDURATION
146EOF
147fi
148if test "$CDMARADIO" != ""
149then
150cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
151fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img
152fastboot reboot-bootloader
153sleep $SLEEPDURATION
154EOF
155fi
156cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF
157fastboot -w update image-$PRODUCT-$VERSION.zip
158EOF
159chmod a+x tmp/$PRODUCT-$VERSION/flash-all.sh
160
161# Write flash-all.bat
162cat > tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
163@ECHO OFF
164:: Copyright 2012 The Android Open Source Project
165::
166:: Licensed under the Apache License, Version 2.0 (the "License");
167:: you may not use this file except in compliance with the License.
168:: You may obtain a copy of the License at
169::
170::      http://www.apache.org/licenses/LICENSE-2.0
171::
172:: Unless required by applicable law or agreed to in writing, software
173:: distributed under the License is distributed on an "AS IS" BASIS,
174:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
175:: See the License for the specific language governing permissions and
176:: limitations under the License.
177
178PATH=%PATH%;"%SYSTEMROOT%\System32"
179EOF
180if test "$UNLOCKBOOTLOADER" = "true"
181then
182cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
183fastboot oem unlock
184EOF
185fi
186if test "$ERASEALL" = "true"
187then
188cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
189fastboot erase boot
190fastboot erase cache
191fastboot erase recovery
192fastboot erase system
193fastboot erase userdata
194EOF
195fi
196if test "$XLOADER" != ""
197then
198cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
199fastboot flash xloader xloader-$DEVICE-$XLOADER.img
200EOF
201fi
202cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
203fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img
204EOF
205if test "$TWINBOOTLOADERS" = "true"
206then
207cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
208fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img
209EOF
210fi
211cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
212fastboot reboot-bootloader
213ping -n $SLEEPDURATION 127.0.0.1 >nul
214EOF
215if test "$RADIO" != ""
216then
217cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
218fastboot flash radio radio-$DEVICE-$RADIO.img
219fastboot reboot-bootloader
220ping -n $SLEEPDURATION 127.0.0.1 >nul
221EOF
222fi
223if test "$CDMARADIO" != ""
224then
225cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
226fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img
227fastboot reboot-bootloader
228ping -n $SLEEPDURATION 127.0.0.1 >nul
229EOF
230fi
231cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF
232fastboot -w update image-$PRODUCT-$VERSION.zip
233
234echo Press any key to exit...
235pause >nul
236exit
237EOF
238
239# Write flash-base.sh
240cat > tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
241#!/bin/sh
242
243# Copyright 2012 The Android Open Source Project
244#
245# Licensed under the Apache License, Version 2.0 (the "License");
246# you may not use this file except in compliance with the License.
247# You may obtain a copy of the License at
248#
249#      http://www.apache.org/licenses/LICENSE-2.0
250#
251# Unless required by applicable law or agreed to in writing, software
252# distributed under the License is distributed on an "AS IS" BASIS,
253# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
254# See the License for the specific language governing permissions and
255# limitations under the License.
256
257EOF
258if test "$XLOADER" != ""
259then
260cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
261fastboot flash xloader xloader-$DEVICE-$XLOADER.img
262EOF
263fi
264cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
265fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img
266EOF
267if test "$TWINBOOTLOADERS" = "true"
268then
269cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
270fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img
271EOF
272fi
273cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
274fastboot reboot-bootloader
275sleep $SLEEPDURATION
276EOF
277if test "$RADIO" != ""
278then
279cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
280fastboot flash radio radio-$DEVICE-$RADIO.img
281fastboot reboot-bootloader
282sleep $SLEEPDURATION
283EOF
284fi
285if test "$CDMARADIO" != ""
286then
287cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF
288fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img
289fastboot reboot-bootloader
290sleep $SLEEPDURATION
291EOF
292fi
293chmod a+x tmp/$PRODUCT-$VERSION/flash-base.sh
294
295# Create the distributable package
296(cd tmp ; zip -r ../$PRODUCT-$VERSION-factory.zip $PRODUCT-$VERSION)
297mv $PRODUCT-$VERSION-factory.zip $PRODUCT-$VERSION-factory-$(sha256sum < $PRODUCT-$VERSION-factory.zip | cut -b -8).zip
298
299# Clean up
300rm -rf tmp
301