xref: /aosp_15_r20/development/scripts/combine_sdks.sh (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
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