Home | History | Annotate | Download | only in self-extractors
      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