1*90c8c64dSAndroid Build Coastguard Worker#!/bin/bash 2*90c8c64dSAndroid Build Coastguard Worker 3*90c8c64dSAndroid Build Coastguard Workerfunction replace() 4*90c8c64dSAndroid Build Coastguard Worker{ 5*90c8c64dSAndroid Build Coastguard Worker echo replacing $1 6*90c8c64dSAndroid Build Coastguard Worker rm $V -rf "$UNZIPPED_BASE_DIR"/$1 7*90c8c64dSAndroid Build Coastguard Worker cp $V -rf "$UNZIPPED_IMAGE_DIR"/$1 "$UNZIPPED_BASE_DIR"/$1 8*90c8c64dSAndroid Build Coastguard Worker} 9*90c8c64dSAndroid Build Coastguard Worker 10*90c8c64dSAndroid Build Coastguard WorkerV="" 11*90c8c64dSAndroid Build Coastguard WorkerQ="-q" 12*90c8c64dSAndroid Build Coastguard Workerif [ "$1" == "-v" ]; then 13*90c8c64dSAndroid Build Coastguard Worker V="-v" 14*90c8c64dSAndroid Build Coastguard Worker Q="" 15*90c8c64dSAndroid Build Coastguard Worker shift 16*90c8c64dSAndroid Build Coastguard Workerfi 17*90c8c64dSAndroid Build Coastguard Worker 18*90c8c64dSAndroid Build Coastguard WorkerNOZIP="" 19*90c8c64dSAndroid Build Coastguard Workerif [ "$1" == "-nozip" ]; then 20*90c8c64dSAndroid Build Coastguard Worker NOZIP="1" 21*90c8c64dSAndroid Build Coastguard Worker shift 22*90c8c64dSAndroid Build Coastguard Workerfi 23*90c8c64dSAndroid Build Coastguard Worker 24*90c8c64dSAndroid Build Coastguard WorkerBASE="$1" 25*90c8c64dSAndroid Build Coastguard WorkerIMAGES="$2" 26*90c8c64dSAndroid Build Coastguard WorkerOUTPUT="$3" 27*90c8c64dSAndroid Build Coastguard Worker 28*90c8c64dSAndroid Build Coastguard Workerif [[ -z "$BASE" || -z "$IMAGES" || -z "$OUTPUT" ]] ; then 29*90c8c64dSAndroid Build Coastguard Worker echo "usage: combine_sdks.sh [-v] [-nozip] BASE IMAGES OUTPUT" 30*90c8c64dSAndroid Build Coastguard Worker echo 31*90c8c64dSAndroid Build Coastguard Worker echo " BASE and IMAGES should be sdk zip files. The system image files," 32*90c8c64dSAndroid Build Coastguard Worker echo " emulator and other runtime files will be copied from IMAGES and" 33*90c8c64dSAndroid Build Coastguard Worker echo " everything else will be copied from BASE. All of this will be" 34*90c8c64dSAndroid Build Coastguard Worker echo " bundled into OUTPUT and zipped up again (unless -nozip is specified)." 35*90c8c64dSAndroid Build Coastguard Worker echo 36*90c8c64dSAndroid Build Coastguard Worker exit 1 37*90c8c64dSAndroid Build Coastguard Workerfi 38*90c8c64dSAndroid Build Coastguard Worker 39*90c8c64dSAndroid Build Coastguard WorkerTMP=$(mktemp -d) 40*90c8c64dSAndroid Build Coastguard Worker 41*90c8c64dSAndroid Build Coastguard WorkerTMP_ZIP=tmp.zip 42*90c8c64dSAndroid Build Coastguard Worker 43*90c8c64dSAndroid Build Coastguard Worker# determine executable extension 44*90c8c64dSAndroid Build Coastguard Workercase `uname -s` in 45*90c8c64dSAndroid Build Coastguard Worker *_NT-*) # for Windows 46*90c8c64dSAndroid Build Coastguard Worker EXE=.exe 47*90c8c64dSAndroid Build Coastguard Worker ;; 48*90c8c64dSAndroid Build Coastguard Worker *) 49*90c8c64dSAndroid Build Coastguard Worker EXE= 50*90c8c64dSAndroid Build Coastguard Worker ;; 51*90c8c64dSAndroid Build Coastguard Workeresac 52*90c8c64dSAndroid Build Coastguard Worker 53*90c8c64dSAndroid Build Coastguard WorkerBASE_DIR="$TMP"/base 54*90c8c64dSAndroid Build Coastguard WorkerIMAGES_DIR="$TMP"/images 55*90c8c64dSAndroid Build Coastguard WorkerOUTPUT_TMP_ZIP="$BASE_DIR/$TMP_ZIP" 56*90c8c64dSAndroid Build Coastguard Worker 57*90c8c64dSAndroid Build Coastguard Workerunzip $Q "$BASE" -d "$BASE_DIR" 58*90c8c64dSAndroid Build Coastguard Workerunzip $Q "$IMAGES" -d "$IMAGES_DIR" 59*90c8c64dSAndroid Build Coastguard Worker 60*90c8c64dSAndroid Build Coastguard WorkerUNZIPPED_BASE_DIR=$(echo "$BASE_DIR"/*) 61*90c8c64dSAndroid Build Coastguard WorkerUNZIPPED_IMAGE_DIR=$(echo "$IMAGES_DIR"/*) 62*90c8c64dSAndroid Build Coastguard Worker 63*90c8c64dSAndroid Build Coastguard Worker# 64*90c8c64dSAndroid Build Coastguard Worker# The commands to copy over the files that we want 65*90c8c64dSAndroid Build Coastguard Worker# 66*90c8c64dSAndroid Build Coastguard Worker 67*90c8c64dSAndroid Build Coastguard Worker# replace tools/emulator # at this time we do not want the exe from SDK1.x 68*90c8c64dSAndroid Build Coastguard Workerreplace tools/lib/images 69*90c8c64dSAndroid Build Coastguard Workerreplace tools/lib/res 70*90c8c64dSAndroid Build Coastguard Workerreplace tools/lib/fonts 71*90c8c64dSAndroid Build Coastguard Workerreplace tools/lib/layoutlib.jar 72*90c8c64dSAndroid Build Coastguard Workerreplace docs 73*90c8c64dSAndroid Build Coastguard Workerreplace android.jar 74*90c8c64dSAndroid Build Coastguard Worker 75*90c8c64dSAndroid Build Coastguard Workerfor i in widgets categories broadcast_actions service_actions; do 76*90c8c64dSAndroid Build Coastguard Worker replace tools/lib/$i.txt 77*90c8c64dSAndroid Build Coastguard Workerdone 78*90c8c64dSAndroid Build Coastguard Worker 79*90c8c64dSAndroid Build Coastguard Workerif [ -d "$UNZIPPED_BASE_DIR"/usb_driver ]; then 80*90c8c64dSAndroid Build Coastguard Worker replace usb_driver 81*90c8c64dSAndroid Build Coastguard Workerfi 82*90c8c64dSAndroid Build Coastguard Worker 83*90c8c64dSAndroid Build Coastguard Worker# 84*90c8c64dSAndroid Build Coastguard Worker# end 85*90c8c64dSAndroid Build Coastguard Worker# 86*90c8c64dSAndroid Build Coastguard Worker 87*90c8c64dSAndroid Build Coastguard Workerif [ -z "$NOZIP" ]; then 88*90c8c64dSAndroid Build Coastguard Worker pushd "$BASE_DIR" &> /dev/null 89*90c8c64dSAndroid Build Coastguard Worker # rename the directory to the leaf minus the .zip of OUTPUT 90*90c8c64dSAndroid Build Coastguard Worker LEAF=$(echo "$OUTPUT" | sed -e "s:.*\.zip/::" | sed -e "s:.zip$::") 91*90c8c64dSAndroid Build Coastguard Worker mv * "$LEAF" 92*90c8c64dSAndroid Build Coastguard Worker # zip it 93*90c8c64dSAndroid Build Coastguard Worker zip $V -qr "$TMP_ZIP" "$LEAF" 94*90c8c64dSAndroid Build Coastguard Worker popd &> /dev/null 95*90c8c64dSAndroid Build Coastguard Worker 96*90c8c64dSAndroid Build Coastguard Worker cp $V "$OUTPUT_TMP_ZIP" "$OUTPUT" 97*90c8c64dSAndroid Build Coastguard Worker echo "Combined SDK available at $OUTPUT" 98*90c8c64dSAndroid Build Coastguard Workerelse 99*90c8c64dSAndroid Build Coastguard Worker OUT_DIR="${OUTPUT//.zip/}" 100*90c8c64dSAndroid Build Coastguard Worker mv $V "$BASE_DIR"/* "$OUT_DIR" 101*90c8c64dSAndroid Build Coastguard Worker echo "Unzipped combined SDK available at $OUT_DIR" 102*90c8c64dSAndroid Build Coastguard Workerfi 103*90c8c64dSAndroid Build Coastguard Worker 104*90c8c64dSAndroid Build Coastguard Workerrm $V -rf "$TMP" 105*90c8c64dSAndroid Build Coastguard Worker 106