diff --git a/Dockerfile b/Dockerfile index 28c92dd7bf97d2e51478ab7d18f6470d64471999..28a60982283d40ea5e3ebe9add5bf35f1073ce18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -148,8 +148,8 @@ RUN mkdir -p $USERSCRIPTS_DIR RUN apt-get -qq update RUN apt-get -qqy upgrade -RUN apt-get install -y bc bison bsdmainutils build-essential ccache cgpt clang cron \ - curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick kmod \ +RUN apt-get install -y apksigner bc bison bsdmainutils build-essential ccache cgpt clang cron \ + curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick kmod \ lib32ncurses5-dev libncurses5 lib32readline-dev lib32z1-dev libtinfo5 liblz4-tool \ libncurses5-dev libsdl1.2-dev libssl-dev libxml2 \ libxml2-utils lsof lzop maven pngcrush \ diff --git a/Dockerfile.community b/Dockerfile.community index 1444d9c075ed352089ebbbf79abce4b4aa5046c3..b06f7f8b893ebe11a606edcb5ab3f57c3fc1a28e 100644 --- a/Dockerfile.community +++ b/Dockerfile.community @@ -153,7 +153,7 @@ RUN apt-get -qq update RUN apt-get -qqy upgrade RUN apt-get install -y bc bison bsdmainutils build-essential ccache cgpt clang cron \ - curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick kmod \ + curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick kmod \ lib32ncurses5-dev libncurses5 lib32readline-dev lib32z1-dev libtinfo5 liblz4-tool \ libncurses5-dev libsdl1.2-dev libssl-dev libxml2 \ libxml2-utils lsof lzop maven pngcrush \ diff --git a/src/build.sh b/src/build.sh index b9add0c8e191c5fe3e7b0a2dcf30346244afd706..bef55e759a77b36027f9cba165fb103f74a17580 100755 --- a/src/build.sh +++ b/src/build.sh @@ -113,7 +113,10 @@ if [ -n "${BRANCH_NAME}" ] && [ -n "${DEVICE}" ]; then if ! repo sync -c --force-sync then sync_successful=false + else + repo forall -c 'git lfs pull' fi + if [ ! -d "vendor/$vendor" ]; then echo ">> [$(date)] Missing \"vendor/$vendor\", aborting" @@ -215,6 +218,13 @@ if [ -n "${BRANCH_NAME}" ] && [ -n "${DEVICE}" ]; then if lunch "${BRUNCH_DEVICE}" && mka && mka sdk_addon ; then build_success=true fi + elif [[ ! -z "${APP_NAME}" ]]; then + echo ">> [$(date)] Build ${APP_NAME} app" + if lunch "${BRUNCH_DEVICE}"; then + if make "${APP_NAME}"; then + build_success=true + fi + fi elif brunch "${BRUNCH_DEVICE}"; then build_success=true fi @@ -275,6 +285,30 @@ if [ -n "${BRANCH_NAME}" ] && [ -n "${DEVICE}" ]; then popd fi + if [[ ! -z "${APP_NAME}" ]]; then + + echo ">> [$(date)] ===== TEST =====" + pwd + + APK_PATH="$source_dir/system/priv-app/${APP_NAME}/${APP_NAME}.apk" + if [ ! -f "$APK_PATH" ]; then + APK_PATH="$source_dir/system/app/${APP_NAME}/${APP_NAME}.apk" + if [ ! -f "$APK_PATH" ]; then + APK_PATH="$source_dir/system/product/priv-app/${APP_NAME}/${APP_NAME}.apk" + if [ ! -f "$APK_PATH" ]; then + APK_PATH="$source_dir/system/product/app/${APP_NAME}/${APP_NAME}.apk" + fi + fi + fi + + mv ${APK_PATH} "$ZIP_DIR/$zipsubdir" + + echo ">> [$(date)] APK path: ${APK_PATH}" + echo ">> [$(date)] App signature" + java -jar /usr/bin/apksigner sign --key "$source_dir"/build/target/product/security/platform.pk8 --cert "$source_dir"/build/target/product/security/platform.x509.pem --out "$ZIP_DIR/$zipsubdir/${APP_NAME}.apk" "$ZIP_DIR/$zipsubdir/${APP_NAME}.apk" + + fi + cd "$source_dir" || return 1 build_successful=true else