pack.sh 4.13 KB
Newer Older
fuyanbin's avatar
fuyanbin committed
1
#!/bin/bash
牛文敏's avatar
牛文敏 committed
2
set -e
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
usage() {
    echo "Usage: $0 -V | --vendor  <vendor id>
                    -t | --type <pipe type>
                    -i | --image <image file>
                    --chroot-type <pack type>
                    --orgcode <organization code>
                    --channelid <channel id>
                    --help"
    exit 1
}
牛文敏's avatar
牛文敏 committed
14

15
16
17
18
19
20
VENDOR=""
PIPE_TYPE="small"
CHROOT_TYPE="androidrom"
DEPLOY="elf"
ORGCODE=""
CHANNELID=""
fuyanbin's avatar
typo    
fuyanbin committed
21
IMAGE_FILE=""
fuyanbin's avatar
fuyanbin committed
22

zhouzhenyu's avatar
zhouzhenyu committed
23
24
25
26
# new append
NOUPLOAD="false"
LOCAL="false"

27
28
29
30
export PATH=${PATH}:$(pwd)/tools/
PARSED_ARUGMENTS=$(getopt -a -n "$0" -o V:t:i: --long help,vendor:,type:,image:,chroot-type:,orgcode:,channelid:, -- "$@")
eval set -- "${PARSED_ARUGMENTS}"
while :
fuyanbin's avatar
fuyanbin committed
31
do
32
33
34
35
36
37
38
39
40
41
42
    case "$1" in
        -V | --vendor) VENDOR="$2"; shift 2 ;;
        -t | --type) PIPE_TYPE="$2"; shift 2 ;;
        -i | --image) IMAGE_FILE="$2"; shift 2 ;;
        --chroot-type) CHROOT_TYPE="$2"; shift 2 ;;
        --orgcode) ORGCODE="$2"; shift 2;;
        --channelid) CHANNELID="$2"; shift 2;;
        --help) usage ;;
        --) shift; break;;
        *) usage ;;
    esac
fuyanbin's avatar
fuyanbin committed
43
done
fuyanbin's avatar
fuyanbin committed
44

fuyanbin's avatar
cleanup    
fuyanbin committed
45
46
build_dir=$(mktemp -d /build/tmp.XXXXX)
packge_dir=$(mktemp -d /build/tmp.XXXXX)
47
48

build_image() {
fuyanbin's avatar
cleanup    
fuyanbin committed
49
50
    local img="$1"

51
52
53
    systemfile="$build_dir/system.PARTITION"
    systemfile_ext4="$build_dir/system.PARTITION.ext4"

fuyanbin's avatar
fuyanbin committed
54
    aml_image_v2_packer -d "$img" "$build_dir"
55
56
57
    if file "$systemfile" | grep "Android sparse image"
    then
        simg2img "$systemfile" "$systemfile_ext4"
fuyanbin's avatar
fuyanbin committed
58
        loopdev=$(losetup -P -f --show "$systemfile_ext4")
59
    else
fuyanbin's avatar
fuyanbin committed
60
        loopdev=$(losetup -P -f --show "$systemfile")
61
62
63
    fi

    mkdir "$build_dir/system"
fuyanbin's avatar
fuyanbin committed
64
    mount "$loopdev" "$build_dir/system"
65

fuyanbin's avatar
fuyanbin committed
66
    touch "$build_dir/system/.androidrom"
67

fuyanbin's avatar
fuyanbin committed
68
69
    rm -f "$build_dir/system/hugep-all.zip"
    cp -f "$build_dir/hugep-all.zip" "$build_dir/system/hugep-all.zip"
70

fuyanbin's avatar
fuyanbin committed
71
72
    find ./services/ -type f -name "*.rc" -exec install -t "$build_dir"/system/etc/init/ {} \;
    find ./services/ -type f ! -name  "*.rc" -exec install -m 0777 -t "$build_dir"/system/bin/ {} \;
73
74
    for file in $(find ./services/ -type f ! -name "*.rc")
    do
fuyanbin's avatar
fuyanbin committed
75
        chcon u:object_r:drmserver_exec:s0 "$build_dir/system/bin/$(basename "$file")"
76
77
    done

fuyanbin's avatar
fuyanbin committed
78
79
    umount "$loopdev"
    losetup -d "$loopdev"
80
81
82
83
84
85
86
87
88
    rm -rf "$build_dir/system"
    sync

    if [[ -f "$systemfile_ext4" ]]
    then
        rm -f "$systemfile"
        img2simg "$systemfile_ext4" "$systemfile"
        rm -f "$systemfile_ext4"
    fi
fuyanbin's avatar
fuyanbin committed
89
90
    aml_image_v2_packer -r "/$build_dir/image.cfg" "$build_dir" "${packge_dir}/$(basename "$img")"
    rm -rf "$build_dir/"
91
92
}

fuyanbin's avatar
fuyanbin committed
93
generate_vendor_confg() {
94
95
96
97
98
99
    local yaml_file_src
    local yaml_file

    yaml_file="$build_dir"/vendor.yaml
    yaml_file_src="$build_dir"/vendor.yaml.src
    cp vendor.yaml.src "$yaml_file_src"
fuyanbin's avatar
fuyanbin committed
100
101
102
103
    sed -i'' "s#__VENDOR__#$VENDOR#g"  "$yaml_file_src"
    sed -i'' "s#__ORGCODE__#$ORGCODE#g"  "$yaml_file_src"
    sed -i'' "s#__CHROOT_TYPE__#$CHROOT_TYPE#g"  "$yaml_file_src"
    sed -i'' "s#__DEPLOY__#$DEPLOY#g"  "$yaml_file_src"
104
105
106
107
108
109
110
111
112
113
114
115
116
117
    aio -m enc -i "$yaml_file_src" -o "$yaml_file"
}

update_hugepall_zipfile() {
    local yaml_file
    local hugep_zip_file
    local hugep_zip_file_origin

    yaml_file="$build_dir"/vendor.yaml
    hugep_zip_file="$build_dir/hugep-all.zip"
    hugep_zip_file_origin="./services/hugep-all.zip"

    cp "$hugep_zip_file_origin" "$hugep_zip_file"

fuyanbin's avatar
fuyanbin committed
118
    zip -u -j "$hugep_zip_file" "$yaml_file"
119
120
}

zhouzhenyu's avatar
zhouzhenyu committed
121
upload() {
fuyanbin's avatar
cleanup    
fuyanbin committed
122
123
124
125
    local date_i
    local outfile
    local outfile_7z
    local MD5SUM
zhouzhenyu's avatar
zhouzhenyu committed
126

fuyanbin's avatar
cleanup    
fuyanbin committed
127
128
129
130
    outfile="${packge_dir}/$(basename "$IMAGE_FILE")"
    outfile_7z="${outfile}.7z"
    date_i="$(date +%Y-%m-%d-%s)"
    MD5SUM=$(md5sum "$outfile" | awk '{print $1}' )
zhouzhenyu's avatar
zhouzhenyu committed
131

fuyanbin's avatar
cleanup    
fuyanbin committed
132
133
134
135
    if [[ "$NOUPLOAD" != "true" ]]
    then
        7z a -mm=LZMA2 "$outfile_7z" "$outfile"
        upload.sh --file "$outfile_7z" --directory product/terminal/chroot_androidrom/"$ORGCODE/$date_i"
fuyanbin's avatar
typo    
fuyanbin committed
136
        IMG_URL="https://cdn.linkfog.cn/""product/terminal/chroot_androidrom/$ORGCODE/$date_i/$outfile_7z"
zhouzhenyu's avatar
zhouzhenyu committed
137
138
        echo "RESULT: ${VENDOR} ${IMG_URL} ${MD5SUM} ${TITLE}"

fuyanbin's avatar
cleanup    
fuyanbin committed
139
        rm -f "$outfile" "$outfile_7z"
fuyanbin's avatar
fuyanbin committed
140
        rm -rf "$packge_dir/"
zhouzhenyu's avatar
zhouzhenyu committed
141
142
143
    fi
}

fuyanbin's avatar
cleanup    
fuyanbin committed
144
export PATH="$PATH:$(pwd)"/tools/
fuyanbin's avatar
fuyanbin committed
145
146
147

generate_vendor_confg
update_hugepall_zipfile
148
build_image "$IMAGE_FILE"
zhouzhenyu's avatar
zhouzhenyu committed
149
upload