1 #!/bin/sh 2 3 # Copyright (C) 2010 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 # 138179 = IRJ89 18 # 146649 = IRK18 19 # 185907 = IRK76 20 # 236517 = IML70C 21 # 237179 = IML73 22 # 237867 = IML74B 23 # 238432 = IML74E 24 # 238649 = IML74G 25 # 239410 = IML74K 26 # 262866 = IMM30D 27 # 299849 = IMM76D 28 # end ics-mr1 29 BRANCH=ics-mr1 30 if test $BRANCH=ics-mr1 31 then 32 ZIP=sojus-ota-299849.zip 33 BUILD=imm76d 34 fi # ics-mr1 35 ROOTDEVICE=crespo 36 DEVICE=crespo4g 37 MANUFACTURER=samsung 38 39 for COMPANY in akm broadcom cypress imgtec nxp samsung 40 do 41 echo Processing files from $COMPANY 42 rm -rf tmp 43 FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary 44 mkdir -p $FILEDIR 45 mkdir -p tmp/vendor/$MANUFACTURER/$ROOTDEVICE 46 case $COMPANY in 47 akm) 48 TO_EXTRACT="\ 49 system/vendor/lib/libakm.so \ 50 " 51 ;; 52 broadcom) 53 TO_EXTRACT="\ 54 system/vendor/bin/gpsd \ 55 system/vendor/firmware/bcm4329.hcd \ 56 system/vendor/lib/hw/gps.s5pc110.so \ 57 " 58 ;; 59 cypress) 60 TO_EXTRACT="\ 61 system/vendor/firmware/cypress-touchkey.bin \ 62 " 63 ;; 64 imgtec) 65 TO_EXTRACT="\ 66 system/vendor/bin/pvrsrvinit \ 67 system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so \ 68 system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so \ 69 system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so \ 70 system/vendor/lib/hw/gralloc.s5pc110.so \ 71 system/vendor/lib/libglslcompiler.so \ 72 system/vendor/lib/libIMGegl.so \ 73 system/vendor/lib/libpvr2d.so \ 74 system/vendor/lib/libpvrANDROID_WSEGL.so \ 75 system/vendor/lib/libPVRScopeServices.so \ 76 system/vendor/lib/libsrv_init.so \ 77 system/vendor/lib/libsrv_um.so \ 78 system/vendor/lib/libusc.so \ 79 " 80 ;; 81 nxp) 82 TO_EXTRACT="\ 83 system/vendor/firmware/libpn544_fw.so \ 84 " 85 ;; 86 samsung) 87 TO_EXTRACT="\ 88 system/app/SprintMenu.apk \ 89 system/app/SystemUpdateUI.apk \ 90 system/app/WiMAXHiddenMenu.apk \ 91 system/app/WiMAXSettings.apk \ 92 system/lib/libsecril-client.so \ 93 system/lib/libWiMAXNative.so \ 94 system/vendor/firmware/wimaxfw.bin \ 95 system/vendor/firmware/wimaxloader.bin \ 96 system/vendor/firmware/wimax_boot.bin \ 97 system/vendor/lib/libsec-ril.so \ 98 system/vendor/lib/libSECmWiMAXcAPI.so \ 99 system/vendor/lib/wimax_service.jar \ 100 " 101 ;; 102 esac 103 echo \ \ Extracting files from OTA package 104 for ONE_FILE in $TO_EXTRACT 105 do 106 echo \ \ \ \ Extracting $ONE_FILE 107 unzip -j -o $ZIP $ONE_FILE -d $FILEDIR > /dev/null || echo \ \ \ \ Error extracting $ONE_FILE 108 if test $ONE_FILE = system/vendor/bin/gpsd -o $ONE_FILE = system/vendor/bin/pvrsrvinit 109 then 110 chmod a+x $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE 111 fi 112 if test $(echo $ONE_FILE | grep \\.apk\$ | wc -l) = 1 113 then 114 echo \ \ \ \ Splitting $ONE_FILE 115 mkdir -p $FILEDIR/$(basename $ONE_FILE).parts || echo \ \ \ \ Error making parts dir for $ONE_FILE 116 unzip $FILEDIR/$(basename $ONE_FILE) -d $FILEDIR/$(basename $ONE_FILE).parts > /dev/null || echo \ \ \ \ Error unzipping $ONE_FILE 117 rm $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error removing original $ONE_FILE 118 rm -rf $FILEDIR/$(basename $ONE_FILE).parts/META-INF || echo \ \ \ \ Error removing META-INF for $ONE_FILE 119 fi 120 done 121 echo \ \ Setting up $COMPANY-specific makefiles 122 cp -R $COMPANY/staging/* tmp/vendor/$COMPANY/$DEVICE || echo \ \ \ \ Error copying makefiles 123 echo \ \ Setting up shared makefiles 124 cp -R root/* tmp/vendor/$MANUFACTURER/$ROOTDEVICE || echo \ \ \ \ Error copying makefiles 125 echo \ \ Generating self-extracting script 126 SCRIPT=extract-$COMPANY-$DEVICE.sh 127 cat PROLOGUE > tmp/$SCRIPT || echo \ \ \ \ Error generating script 128 cat $COMPANY/COPYRIGHT >> tmp/$SCRIPT || echo \ \ \ \ Error generating script 129 cat PART1 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script 130 cat $COMPANY/LICENSE >> tmp/$SCRIPT || echo \ \ \ \ Error generating script 131 cat PART2 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script 132 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 133 cat PART3 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script 134 (cd tmp ; tar zc --owner=root --group=root vendor/ >> $SCRIPT || echo \ \ \ \ Error generating embedded tgz) 135 chmod a+x tmp/$SCRIPT || echo \ \ \ \ Error generating script 136 ARCHIVE=$COMPANY-$DEVICE-$BUILD-$(md5sum < tmp/$SCRIPT | cut -b -8 | tr -d \\n).tgz 137 rm -f $ARCHIVE 138 echo \ \ Generating final archive 139 (cd tmp ; tar --owner=root --group=root -z -c -f ../$ARCHIVE $SCRIPT || echo \ \ \ \ Error archiving script) 140 rm -rf tmp 141 done 142