Add script to update prebuilt dex
Test: testing/update_prebuilt.sh (with changes in)
Change-Id: If3cfbc011b7a3407f6d7391abdd217aac18c1448
diff --git a/testing/Android.bp b/testing/Android.bp
index fa1d9c5..defe2a0 100644
--- a/testing/Android.bp
+++ b/testing/Android.bp
@@ -53,6 +53,10 @@
name: "test_framework-sdkextensions-sources",
srcs: ["impl-src/**/*.java"],
path: "impl-src",
+ visibility: [
+ "//frameworks/base",
+ "//packages/modules/SdkExtensions:__subpackages__",
+ ],
}
diff --git a/testing/update_prebuilt.sh b/testing/update_prebuilt.sh
new file mode 100755
index 0000000..4c0d530
--- /dev/null
+++ b/testing/update_prebuilt.sh
@@ -0,0 +1,45 @@
+#!/bin/bash -ex
+
+# This script updates the prebuilt test_framework-sdkextension.jar, which is
+# required when the "new APIs" added change.
+
+function gettop() {
+ local p=$(pwd)
+ while [[ ! -e "${p}/build/envsetup.sh" ]]; do
+ p="${p}/.."
+ done
+ echo $(readlink -f $p)
+}
+
+function is_aosp() {
+ grep -q 'https://android-review.googlesource.com' $(gettop)/.repo/manifests/default.xml
+}
+
+if [[ -z "$OUT" ]]; then
+ echo "lunch first"
+ exit 1
+fi
+
+dir=$(dirname $(readlink -f $BASH_SOURCE))
+bps="${dir}/../framework/Android.bp"
+# AOSP does not use combined stubs, so needs special treatment.
+if is_aosp; then
+ bps="$bps $(gettop)/frameworks/base/Android.bp"
+fi
+
+for bp in $bps; do
+ if ! test -e $bp; then
+ echo $bp does not exist
+ exit 1
+ elif test -e "${bp}.bak"; then
+ echo "skipping ${bp} modification because ${bp}.bak exists"
+ continue
+ fi
+ cp $bp "${bp}.bak"
+ sed -i -e 's|":framework-sdkextensions-sources"|":framework-sdkextensions-sources",":test_framework-sdkextensions-sources"|' $bp
+done
+
+$(gettop)/build/soong/soong_ui.bash --make-mode framework-sdkextensions
+
+for bp in $bps; do mv "${bp}.bak" $bp ; touch $bp; done
+cp "${OUT}/apex/com.android.sdkext/javalib/framework-sdkextensions.jar" "${dir}/test_framework-sdkextensions.jar"