aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-07-21 20:41:34 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-07-21 20:41:34 +0000
commitfbe165c4713483680260c99bd3c710b939cb250d (patch)
treeeb56aeb5e27070ba7db3889cc42c81311f8b0556
parentdbd3f9115eb155b925da152736ed108b34adf054 (diff)
parent5ad18434eaaeaa86d3f98aca164ca84ebb175e27 (diff)
downloadcommon-android13-mainline-go-media-release.tar.gz
Snap for 8857176 from 5ad18434eaaeaa86d3f98aca164ca84ebb175e27 to mainline-go-media-releaseaml_go_med_330913000android13-mainline-go-media-release
Change-Id: Idb179950832cdad7a8363fecfcd013b2f093c8cc
-rw-r--r--build/allowed_deps.txt3
-rwxr-xr-xbuild/mainline_modules_sdks.py48
-rw-r--r--proguard/Android.bp22
-rw-r--r--proguard/system-server.pro1
-rw-r--r--sdk/ModuleDefaults.bp6
5 files changed, 79 insertions, 1 deletions
diff --git a/build/allowed_deps.txt b/build/allowed_deps.txt
index d83e4f02..06c04bb8 100644
--- a/build/allowed_deps.txt
+++ b/build/allowed_deps.txt
@@ -212,6 +212,7 @@ car-rotary-lib(minSdkVersion:28)
car-rotary-lib-resources(minSdkVersion:28)
car-ui-lib(minSdkVersion:28)
car-ui-lib-resources(minSdkVersion:28)
+cbor-java(minSdkVersion:30)
census(minSdkVersion:30)
clatd(minSdkVersion:30)
codecs_g711dec(minSdkVersion:29)
@@ -240,6 +241,7 @@ crtend_so(minSdkVersion:30)
crtend_so(minSdkVersion:apex_inherit)
crtend_so(minSdkVersion:current)
datastallprotosnano(minSdkVersion:29)
+dlmalloc(minSdkVersion:apex_inherit)
dnsproxyd_protocol_headers(minSdkVersion:29)
DocumentsUI-res-lib(minSdkVersion:29)
exoplayer-annotation_stubs(minSdkVersion:16)
@@ -764,6 +766,7 @@ ndk_libc++abi(minSdkVersion:16)
ndk_libunwind(minSdkVersion:16)
net-utils-device-common(minSdkVersion:29)
net-utils-device-common-bpf(minSdkVersion:29)
+net-utils-device-common-ip(minSdkVersion:29)
net-utils-device-common-netlink(minSdkVersion:29)
net-utils-device-common-struct(minSdkVersion:29)
net-utils-framework-common(minSdkVersion:29)
diff --git a/build/mainline_modules_sdks.py b/build/mainline_modules_sdks.py
index eaa4639c..e4a5b24d 100755
--- a/build/mainline_modules_sdks.py
+++ b/build/mainline_modules_sdks.py
@@ -20,6 +20,7 @@ the APEXes in it are built, otherwise all configured SDKs are built.
"""
import argparse
import dataclasses
+import datetime
import functools
import io
import json
@@ -255,6 +256,22 @@ def sdk_snapshot_api_diff_file(snapshots_dir, sdk_name, sdk_version):
return os.path.join(snapshots_dir, f"{sdk_name}-{sdk_version}-api-diff.txt")
+# The default time to use in zip entries. Ideally, this should be the same as is
+# used by soong_zip and ziptime but there is no strict need for that to be the
+# case. What matters is this is a fixed time so that the contents of zip files
+# created by this script do not depend on when it is run, only the inputs.
+default_zip_time = datetime.datetime(2008, 1, 1, 0, 0, 0, 0,
+ datetime.timezone.utc)
+
+
+# set the timestamps of the paths to the default_zip_time.
+def set_default_timestamp(base_dir, paths):
+ for path in paths:
+ timestamp = default_zip_time.timestamp()
+ p = os.path.join(base_dir, path)
+ os.utime(p, (timestamp, timestamp))
+
+
@dataclasses.dataclass()
class SnapshotBuilder:
"""Builds sdk snapshots"""
@@ -409,6 +426,13 @@ java_sdk_library_import {{
dest_dir, "snapshot-creation-build-number.txt")
shutil.copy(build_number_file, snapshot_build_number_file)
+ # Make sure that all the paths being added to the zip file have a
+ # fixed timestamp so that the contents of the zip file do not depend
+ # on when this script is run, only the inputs.
+ for root, dirs, files in os.walk(dest_dir):
+ set_default_timestamp(root, dirs)
+ set_default_timestamp(root, files)
+
# Now zip up the files into a snapshot zip file.
base_file = os.path.join(r_snapshot_dir, sdk_name + "-current")
shutil.make_archive(base_file, "zip", dest_dir)
@@ -739,6 +763,19 @@ class MainlineModule:
#
# This field records the last build release in which they are optional. It
# defaults to None which indicates that the module was never optional.
+ #
+ # TODO(b/238203992): remove the following warning once all modules can be
+ # treated as optional at build time.
+ #
+ # DO NOT use this attr for anything other than controlling whether the
+ # generated snapshot uses its own Soong config variable or the common one.
+ # That is because this is being temporarily used to force Permission to have
+ # its own Soong config variable even though Permission is not actually
+ # optional at runtime on a GMS capable device.
+ #
+ # b/238203992 will make all modules have their own Soong config variable by
+ # default at which point this will no longer be needed on Permission and so
+ # it can be used to indicate that a module is optional at runtime.
last_optional_release: typing.Optional[BuildRelease] = None
# The short name for the module.
@@ -903,6 +940,11 @@ MAINLINE_MODULES = [
# that are provided in R by non-updatable parts of the
# bootclasspath.
]),
+ # Although Permission is not, and has never been, optional for GMS
+ # capable devices it does need to be treated as optional at build time
+ # when building non-GMS devices.
+ # TODO(b/238203992): remove once all modules are optional at build time.
+ last_optional_release=LATEST,
),
MainlineModule(
apex="com.android.scheduling",
@@ -1212,6 +1254,12 @@ def copy_zip_and_replace(producer, src_zip_path, dest_zip_path, src_dir, paths):
# not affected by a change of directory.
abs_src_zip_path = os.path.abspath(src_zip_path)
abs_dest_zip_path = os.path.abspath(dest_zip_path)
+
+ # Make sure that all the paths being added to the zip file have a fixed
+ # timestamp so that the contents of the zip file do not depend on when this
+ # script is run, only the inputs.
+ set_default_timestamp(src_dir, paths)
+
producer.subprocess_runner.run(
["zip", "-q", abs_src_zip_path, "--out", abs_dest_zip_path] + paths,
# Change into the source directory before running zip.
diff --git a/proguard/Android.bp b/proguard/Android.bp
index e011a61d..77f336b0 100644
--- a/proguard/Android.bp
+++ b/proguard/Android.bp
@@ -16,7 +16,7 @@ package {
default_applicable_licenses: ["Android-Apache-2.0"],
default_visibility: [
":__subpackages__",
- "//packages/modules/Permission:__subpackages__",
+ "//packages/modules:__subpackages__",
],
}
@@ -38,3 +38,23 @@ java_defaults {
proguard_flags_files: [":framework-system-server-module-optimize-proguard-rules"],
},
}
+
+// Needed because otherwise java_defaults would resolve it in module directory.
+filegroup {
+ name: "standalone-system-server-module-optimize-proguard-rules",
+ srcs: [
+ "system-server.pro",
+ ],
+}
+
+java_defaults {
+ name: "standalone-system-server-module-optimize-defaults",
+ optimize: {
+ enabled: true,
+ shrink: true,
+ optimize: false,
+ obfuscate: false,
+ proguard_compatibility: false,
+ proguard_flags_files: [":standalone-system-server-module-optimize-proguard-rules"],
+ },
+}
diff --git a/proguard/system-server.pro b/proguard/system-server.pro
new file mode 100644
index 00000000..c6eaffb7
--- /dev/null
+++ b/proguard/system-server.pro
@@ -0,0 +1 @@
+-keep class * extends com.android.server.SystemService { *; }
diff --git a/sdk/ModuleDefaults.bp b/sdk/ModuleDefaults.bp
index d9e3af53..e5b05c47 100644
--- a/sdk/ModuleDefaults.bp
+++ b/sdk/ModuleDefaults.bp
@@ -239,6 +239,9 @@ library_linking_strategy_apex_defaults {
apex_defaults {
name: "s-launched-apex-module",
min_sdk_version: "31",
+ // Indicates that pre-installed version of this apex can be compressed.
+ // Whether it actually will be compressed is controlled on per-device basis.
+ compressible:true,
updatable: true,
defaults_visibility: [
"//art:__subpackages__",
@@ -250,5 +253,8 @@ apex_defaults {
name: "t-launched-apex-module",
min_sdk_version: "Tiramisu",
updatable: true,
+ // Indicates that pre-installed version of this apex can be compressed.
+ // Whether it actually will be compressed is controlled on per-device basis.
+ compressible:true,
defaults_visibility: ["//packages/modules:__subpackages__"],
}