Update the build rule and APIs of service-art.
Changes:
- Remove `stubs_library_visibility`, `stubs_source_visibility`, and
`shared_library` because they are already in the defaults.
- Remove `compile_dex` because it's the default for APEX jars.
- Remove `required` because it's not meaningful.
- Remove `dist_group` because it is for libraries that expose public
APIs, while `service-art` does not expose public APIs.
- Add `jarjar_rules` to keep symbols in static libraries (particularly
"modules-utils-shell-command-handler") private to `service-art`.
- Remove `unsafe_ignore_missing_latest_api` as suggested in
b/235330409#comment3.
Original change: aosp/2129474.
Modification: Keep `impl_library_visibility` because the files are not
moved.
Bug: 235330409
Test: art/tools/buildbot-build.sh
Change-Id: I4dccd65a2c3714c75f9c43547ab2626beef1bb16
Merged-In: Ib6b6dfe2d68005ee7b43423e83e1c547a37fcfc2
Merged-In: I389453ab668305802da0de7a06f66d967136be64
diff --git a/libartservice/Android.bp b/libartservice/Android.bp
index b9632ea..9fac53b 100644
--- a/libartservice/Android.bp
+++ b/libartservice/Android.bp
@@ -49,47 +49,27 @@
// for JAR files in the System Server.
name: "service-art",
defaults: ["framework-system-server-module-defaults"],
-
permitted_packages: ["com.android.server.art"],
-
visibility: [
"//art:__subpackages__",
"//frameworks/base/services/core",
],
-
impl_library_visibility: [
"//art/libartservice/tests",
],
-
- stubs_library_visibility: ["//visibility:public"],
- stubs_source_visibility: ["//visibility:private"],
-
apex_available: [
"com.android.art",
"com.android.art.debug",
],
sdk_version: "system_server_current",
min_sdk_version: "31",
-
- // Temporarily disable compatibility with previous released APIs.
- // TODO - remove once prototype has stabilized
- // running "m update-api" will give instructions on what to do next
- unsafe_ignore_missing_latest_api: true,
-
- // This cannot be accessed by apps using <uses-library> in their manifest.
- shared_library: false,
- // TODO(b/188773212): force dex compilation for inclusion in bootclasspath_fragment.
- compile_dex: true,
-
srcs: [
"service/java/**/*.java",
],
-
- libs: [
+ static_libs: [
],
-
plugins: ["java_api_finder"],
- dist_group: "android",
+ jarjar_rules: "jarjar-rules.txt",
}
art_cc_defaults {
diff --git a/libartservice/jarjar-rules.txt b/libartservice/jarjar-rules.txt
new file mode 100644
index 0000000..c7d39e6
--- /dev/null
+++ b/libartservice/jarjar-rules.txt
@@ -0,0 +1,2 @@
+# Repackages static libraries to make them private to ART Services.
+rule com.android.modules.utils.** com.android.server.art.jarjar.@0