atrost c3c2e4de2d Add a compat change to opt-in to latest SELinux domain.
Refactor getSeInfo into a method, if the app doesn't share a
sharedUserId, and the change is enabled use targetSdkVersion R (1000)
for the seInfo domain.

Add a listener to the compat change that checks if seInfo has changed
(as a result of enabling/disabling the change), and if it did updates it,
and calls prepareAppDataAfterInstallLIF to make sure the data is
correctly labeled.
The listener will be called when an override is introduced or removed
for the change.

Bug: 143539591
Test: atest com.android.server.pm.SELinuxMMAXTest
Test: Install facebook (target SDK 28), login +download a photo, turn on
      the change, open facebook, download another photo, disable change,
      open facebook again, download another photo. Everything works as
      expected, photos are accessible, profile is setup.

Change-Id: If5ecf490e781db13d84656b36d0740a00ee124b5
2019-12-03 15:01:03 +00:00

171 lines
5.4 KiB
Plaintext

filegroup {
name: "services.core-sources",
srcs: ["java/**/*.java"],
path: "java",
visibility: ["//frameworks/base/services"],
}
java_library {
name: "protolog-common",
srcs: [
"java/com/android/server/protolog/common/**/*.java",
],
host_supported: true,
}
java_library {
name: "services.core.wm.protologgroups",
srcs: [
"java/com/android/server/wm/ProtoLogGroup.java",
],
static_libs: ["protolog-common"],
}
genrule {
name: "services.core.protologsrc",
srcs: [
":services.core.wm.protologgroups",
":services.core-sources",
],
tools: ["protologtool"],
cmd: "$(location protologtool) transform-protolog-calls " +
"--protolog-class com.android.server.protolog.common.ProtoLog " +
"--protolog-impl-class com.android.server.protolog.ProtoLogImpl " +
"--protolog-cache-class 'com.android.server.protolog.ProtoLog$$Cache' " +
"--loggroups-class com.android.server.wm.ProtoLogGroup " +
"--loggroups-jar $(location :services.core.wm.protologgroups) " +
"--output-srcjar $(out) " +
"$(locations :services.core-sources)",
out: ["services.core.protolog.srcjar"],
}
genrule {
name: "generate-protolog.json",
srcs: [
":services.core.wm.protologgroups",
":services.core-sources",
],
tools: ["protologtool"],
cmd: "$(location protologtool) generate-viewer-config " +
"--protolog-class com.android.server.protolog.common.ProtoLog " +
"--loggroups-class com.android.server.wm.ProtoLogGroup " +
"--loggroups-jar $(location :services.core.wm.protologgroups) " +
"--viewer-conf $(out) " +
"$(locations :services.core-sources)",
out: ["services.core.protolog.json"],
}
genrule {
name: "checked-protolog.json",
srcs: [
":generate-protolog.json",
":services.core.protolog.json",
],
cmd: "cp $(location :generate-protolog.json) $(out) && " +
"{ ! (diff $(out) $(location :services.core.protolog.json) | grep -q '^<') || " +
"{ echo -e '\\n\\n################################################################\\n#\\n" +
"# ERROR: ProtoLog viewer config is stale. To update it, run:\\n#\\n" +
"# cp $(location :generate-protolog.json) " +
"$(location :services.core.protolog.json)\\n#\\n" +
"################################################################\\n\\n' >&2 && false; } }",
out: ["services.core.protolog.json"],
}
java_library_static {
name: "services.core.unboosted",
srcs: [
":services.core.protologsrc",
":dumpstate_aidl",
":framework_native_aidl",
":gsiservice_aidl",
":idmap2_aidl",
":installd_aidl",
":storaged_aidl",
":vold_aidl",
":platform-compat-config",
"java/com/android/server/EventLogTags.logtags",
"java/com/android/server/am/EventLogTags.logtags",
"java/com/android/server/wm/EventLogTags.logtags",
"java/com/android/server/policy/EventLogTags.logtags",
],
libs: [
"services.net",
"android.hardware.light-V2.0-java",
"android.hardware.power-V1.0-java",
"android.hardware.tv.cec-V1.0-java",
"app-compat-annotations",
"vintf-vibrator-java",
],
required: [
"gps_debug.conf",
"protolog.conf.json.gz",
],
static_libs: [
"time_zone_distro",
"time_zone_distro_installer",
"android.hardware.authsecret-V1.0-java",
"android.hardware.broadcastradio-V2.0-java",
"android.hardware.health-V1.0-java",
"android.hardware.health-V2.0-java",
"android.hardware.weaver-V1.0-java",
"android.hardware.biometrics.face-V1.0-java",
"android.hardware.biometrics.fingerprint-V2.1-java",
"android.hardware.oemlock-V1.0-java",
"android.hardware.configstore-V1.0-java",
"android.hardware.contexthub-V1.0-java",
"android.hidl.manager-V1.2-java",
"dnsresolver_aidl_interface-V2-java",
"netd_event_listener_interface-java",
],
plugins: [
"compat-changeid-annotation-processor",
],
}
java_genrule {
name: "services.core.priorityboosted",
srcs: [":services.core.unboosted"],
tools: ["lockedregioncodeinjection"],
cmd: "$(location lockedregioncodeinjection) " +
" --targets \"Lcom/android/server/am/ActivityManagerService;,Lcom/android/server/wm/WindowManagerGlobalLock;\" " +
" --pre \"com/android/server/am/ActivityManagerService.boostPriorityForLockedSection,com/android/server/wm/WindowManagerService.boostPriorityForLockedSection\" " +
" --post \"com/android/server/am/ActivityManagerService.resetPriorityAfterLockedSection,com/android/server/wm/WindowManagerService.resetPriorityAfterLockedSection\" " +
" -o $(out) " +
" -i $(in)",
out: ["services.core.priorityboosted.jar"],
}
java_library {
name: "services.core",
static_libs: ["services.core.priorityboosted"],
}
prebuilt_etc {
name: "gps_debug.conf",
src: "java/com/android/server/location/gps_debug.conf",
}
genrule {
name: "services.core.json.gz",
srcs: [":checked-protolog.json"],
out: ["services.core.protolog.json.gz"],
cmd: "$(location minigzip) -c < $(in) > $(out)",
tools: ["minigzip"],
}
prebuilt_etc {
name: "protolog.conf.json.gz",
src: ":services.core.json.gz",
}
platform_compat_config {
name: "services-core-platform-compat-config",
src: ":services.core.unboosted",
}