Add genrule for the current sdk proto
This is intended to be added to all apexes exposing SDK apis. The
version can then be bumped by changing the value in a single place.
The current version is 0.
Also build this into the sdkext module.
Bug: 137191822
Test: m com.android.sdkext
Change-Id: Ic2cd92ad1d184c8a01f0bc3d4fc21deb588cb7e8
diff --git a/apex/sdkext/Android.bp b/apex/sdkext/Android.bp
index 12d6b86..b132f7e 100644
--- a/apex/sdkext/Android.bp
+++ b/apex/sdkext/Android.bp
@@ -17,7 +17,10 @@
manifest: "manifest.json",
binaries: [ "derive_sdk" ],
java_libs: [ "framework-sdkext" ],
- prebuilts: [ "com.android.sdkext.ldconfig" ],
+ prebuilts: [
+ "com.android.sdkext.ldconfig",
+ "cur_sdkinfo",
+ ],
key: "com.android.sdkext.key",
certificate: ":com.android.sdkext.certificate",
}
@@ -39,3 +42,28 @@
filename: "ld.config.txt",
installable: false,
}
+
+python_binary_host {
+ name: "gen_sdkinfo",
+ srcs: [
+ "derive_sdk/sdk.proto",
+ "gen_sdkinfo.py",
+ ],
+ proto: {
+ canonical_path_from_root: false,
+ },
+}
+
+gensrcs {
+ name: "cur_sdkinfo_src",
+ srcs: [""],
+ tools: [ "gen_sdkinfo" ],
+ cmd: "$(location) -v 0 -o $(out)",
+}
+
+prebuilt_etc {
+ name: "cur_sdkinfo",
+ src: ":cur_sdkinfo_src",
+ filename: "sdkinfo.binarypb",
+ installable: false,
+}
diff --git a/apex/sdkext/gen_sdkinfo.py b/apex/sdkext/gen_sdkinfo.py
new file mode 100644
index 0000000..5af478b
--- /dev/null
+++ b/apex/sdkext/gen_sdkinfo.py
@@ -0,0 +1,19 @@
+import sdk_pb2
+import sys
+
+if __name__ == '__main__':
+ argv = sys.argv[1:]
+ if not len(argv) == 4 or sorted([argv[0], argv[2]]) != ['-o', '-v']:
+ print('usage: gen_sdkinfo -v <version> -o <output-file>')
+ sys.exit(1)
+
+ for i in range(len(argv)):
+ if sys.argv[i] == '-o':
+ filename = sys.argv[i+1]
+ if sys.argv[i] == '-v':
+ version = int(sys.argv[i+1])
+
+ proto = sdk_pb2.SdkVersion()
+ proto.version = version
+ with open(filename, 'wb') as f:
+ f.write(proto.SerializeToString())