# Copyright 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Use the default values if they weren't explicitly set if test "$XLOADERSRC" = "" then XLOADERSRC=xloader.img fi if test "$BOOTLOADERSRC" = "" then BOOTLOADERSRC=bootloader.img fi if test "$RADIOSRC" = "" then RADIOSRC=radio.img fi if test "$SLEEPDURATION" = "" then SLEEPDURATION=5 fi # Prepare the staging directory rm -rf tmp mkdir -p tmp/$PRODUCT-$VERSION # Extract the bootloader(s) and radio(s) as necessary if test "$XLOADER" != "" then unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$XLOADERSRC fi if test "$BOOTLOADERFILE" = "" then unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$BOOTLOADERSRC fi if test "$RADIO" != "" -a "$RADIOFILE" = "" then unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/$RADIOSRC fi if test "$CDMARADIO" != "" -a "$CDMARADIOFILE" = "" then unzip -d tmp ${SRCPREFIX}$PRODUCT-target_files-$BUILD.zip RADIO/radio-cdma.img fi # Copy the various images in their staging location cp ${SRCPREFIX}$PRODUCT-img-$BUILD.zip tmp/$PRODUCT-$VERSION/image-$PRODUCT-$VERSION.zip if test "$XLOADER" != "" then cp tmp/RADIO/$XLOADERSRC tmp/$PRODUCT-$VERSION/xloader-$DEVICE-$XLOADER.img fi if test "$BOOTLOADERFILE" = "" then cp tmp/RADIO/$BOOTLOADERSRC tmp/$PRODUCT-$VERSION/bootloader-$DEVICE-$BOOTLOADER.img else cp $BOOTLOADERFILE tmp/$PRODUCT-$VERSION/bootloader-$DEVICE-$BOOTLOADER.img fi if test "$RADIO" != "" then if test "$RADIOFILE" = "" then cp tmp/RADIO/$RADIOSRC tmp/$PRODUCT-$VERSION/radio-$DEVICE-$RADIO.img else cp $RADIOFILE tmp/$PRODUCT-$VERSION/radio-$DEVICE-$RADIO.img fi fi if test "$CDMARADIO" != "" then if test "$CDMARADIOFILE" = "" then cp tmp/RADIO/radio-cdma.img tmp/$PRODUCT-$VERSION/radio-cdma-$DEVICE-$CDMARADIO.img else cp $CDMARADIOFILE tmp/$PRODUCT-$VERSION/radio-cdma-$DEVICE-$CDMARADIO.img fi fi # Write flash-all.sh cat > tmp/$PRODUCT-$VERSION/flash-all.sh << EOF #!/bin/sh # Copyright 2012 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. if ! [ \$(\$(which fastboot) --version | grep "version" | cut -c18-23 | sed 's/\.//g' ) -ge 3301 ]; then echo "fastboot too old; please download the latest version at https://developer.android.com/studio/releases/platform-tools.html" exit 1 fi EOF if test "$UNLOCKBOOTLOADER" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot oem unlock EOF fi if test "$ERASEALL" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot erase boot fastboot erase cache fastboot erase recovery fastboot erase system fastboot erase userdata EOF fi if test "$XLOADER" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot flash xloader xloader-$DEVICE-$XLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img EOF if test "$TWINBOOTLOADERS" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot reboot-bootloader sleep $SLEEPDURATION EOF if test "$RADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot flash radio radio-$DEVICE-$RADIO.img fastboot reboot-bootloader sleep $SLEEPDURATION EOF fi if test "$CDMARADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img fastboot reboot-bootloader sleep $SLEEPDURATION EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.sh << EOF fastboot -w update image-$PRODUCT-$VERSION.zip EOF chmod a+x tmp/$PRODUCT-$VERSION/flash-all.sh # Write flash-all.bat cat > tmp/$PRODUCT-$VERSION/flash-all.bat << EOF @ECHO OFF :: Copyright 2012 The Android Open Source Project :: :: Licensed under the Apache License, Version 2.0 (the "License"); :: you may not use this file except in compliance with the License. :: You may obtain a copy of the License at :: :: http://www.apache.org/licenses/LICENSE-2.0 :: :: Unless required by applicable law or agreed to in writing, software :: distributed under the License is distributed on an "AS IS" BASIS, :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. :: See the License for the specific language governing permissions and :: limitations under the License. PATH=%PATH%;"%SYSTEMROOT%\System32" EOF if test "$UNLOCKBOOTLOADER" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot oem unlock EOF fi if test "$ERASEALL" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot erase boot fastboot erase cache fastboot erase recovery fastboot erase system fastboot erase userdata EOF fi if test "$XLOADER" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot flash xloader xloader-$DEVICE-$XLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img EOF if test "$TWINBOOTLOADERS" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot reboot-bootloader ping -n $SLEEPDURATION 127.0.0.1 >nul EOF if test "$RADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot flash radio radio-$DEVICE-$RADIO.img fastboot reboot-bootloader ping -n $SLEEPDURATION 127.0.0.1 >nul EOF fi if test "$CDMARADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img fastboot reboot-bootloader ping -n $SLEEPDURATION 127.0.0.1 >nul EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-all.bat << EOF fastboot -w update image-$PRODUCT-$VERSION.zip echo Press any key to exit... pause >nul exit EOF # Write flash-base.sh cat > tmp/$PRODUCT-$VERSION/flash-base.sh << EOF #!/bin/sh # Copyright 2012 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. if ! [ \$(\$(which fastboot) --version | grep "version" | cut -c18-23 | sed 's/\.//g' ) -ge 3301 ]; then echo "fastboot too old; please download the latest version at https://developer.android.com/studio/releases/platform-tools.html" exit 1 fi EOF if test "$XLOADER" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot flash xloader xloader-$DEVICE-$XLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot flash bootloader bootloader-$DEVICE-$BOOTLOADER.img EOF if test "$TWINBOOTLOADERS" = "true" then cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot flash bootloader2 bootloader-$DEVICE-$BOOTLOADER.img EOF fi cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot reboot-bootloader sleep $SLEEPDURATION EOF if test "$RADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot flash radio radio-$DEVICE-$RADIO.img fastboot reboot-bootloader sleep $SLEEPDURATION EOF fi if test "$CDMARADIO" != "" then cat >> tmp/$PRODUCT-$VERSION/flash-base.sh << EOF fastboot flash radio-cdma radio-cdma-$DEVICE-$CDMARADIO.img fastboot reboot-bootloader sleep $SLEEPDURATION EOF fi chmod a+x tmp/$PRODUCT-$VERSION/flash-base.sh # Create the distributable package (cd tmp ; zip -r ../$PRODUCT-$VERSION-factory.zip $PRODUCT-$VERSION) mv $PRODUCT-$VERSION-factory.zip $PRODUCT-$VERSION-factory-$(sha256sum < $PRODUCT-$VERSION-factory.zip | cut -b -8).zip # Clean up rm -rf tmp