The LogcatManagerService monitors all privileged (in AID_LOG group) access to logd. Only Root and System Server can read the logd data without tracking. Whenever the logd recieve privileged read data request, the request is forwarded to the LogcatManagerService. The LogcatManagerService can approve or decline the request via binder RPC on logd service. The binder call is enforced by sepolicy. That means only LogcatManagerService can use the logd binder service. And only logd can use the logcat binder service. The next step will add user consent requirement for the logd access. Bug: 197901557 Test: Reboot the device, then run "adb logcat" multiple times both during the booting and after the booting. The control flow goes correctly as we expected. Ignore-AOSP-First: pending fix for logcat privacy issue Change-Id: I5e225b65357e7bfacd5c6c9cb4fab5f309803193
478 lines
14 KiB
Plaintext
478 lines
14 KiB
Plaintext
package {
|
|
// See: http://go/android-license-faq
|
|
// A large-scale-change added 'default_applicable_licenses' to import
|
|
// all of the 'license_kinds' from "frameworks_base_license"
|
|
// to get the below license kinds:
|
|
// SPDX-license-identifier-Apache-2.0
|
|
// SPDX-license-identifier-BSD
|
|
// legacy_unencumbered
|
|
default_applicable_licenses: ["frameworks_base_license"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-core-sources",
|
|
srcs: [
|
|
"**/*.java",
|
|
"**/*.aidl",
|
|
],
|
|
visibility: ["//frameworks/base"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "IKeyAttestationApplicationIdProvider.aidl",
|
|
srcs: ["android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "IDropBoxManagerService.aidl",
|
|
srcs: ["com/android/internal/os/IDropBoxManagerService.aidl"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "ITracingServiceProxy.aidl",
|
|
srcs: ["android/tracing/ITracingServiceProxy.aidl"],
|
|
}
|
|
|
|
// These are subset of framework-core-sources that are needed by the
|
|
// android.test.mock library. The implementation of android.test.mock references
|
|
// private members of various components to allow mocking of classes that cannot
|
|
// be mocked without access to those internal implementation details.
|
|
filegroup {
|
|
name: "framework-core-sources-for-test-mock",
|
|
srcs: [
|
|
"android/accounts/AccountManagerCallback.java",
|
|
"android/accounts/AccountManagerFuture.java",
|
|
"android/accounts/AccountManager.java",
|
|
"android/accounts/AccountsException.java",
|
|
"android/accounts/AuthenticatorException.java",
|
|
"android/accounts/OperationCanceledException.java",
|
|
"android/app/Application.java",
|
|
"android/app/IApplicationThread.aidl",
|
|
"android/app/IServiceConnection.aidl",
|
|
"android/app/PackageDeleteObserver.java",
|
|
"android/content/ComponentCallbacks2.java",
|
|
"android/content/ComponentCallbacks.java",
|
|
"android/content/ContentInterface.java",
|
|
"android/content/ContentProvider.java",
|
|
"android/content/ContentProviderNative.java",
|
|
"android/content/ContentResolver.java",
|
|
"android/content/Context.java",
|
|
"android/content/ContextWrapper.java",
|
|
"android/content/DialogInterface.java",
|
|
"android/content/IContentProvider.java",
|
|
"android/content/Intent.java",
|
|
"android/content/IntentSender.java",
|
|
"android/content/OperationApplicationException.java",
|
|
"android/content/pm/ActivityInfo.java",
|
|
"android/content/pm/ApplicationInfo.java",
|
|
"android/content/pm/InstantAppInfo.java",
|
|
"android/content/pm/IPackageDataObserver.aidl",
|
|
"android/content/pm/KeySet.java",
|
|
"android/content/pm/PackageManager.java",
|
|
"android/content/pm/VerifierDeviceIdentity.java",
|
|
"android/content/res/Resources.java",
|
|
"android/database/CrossProcessCursor.java",
|
|
"android/database/CrossProcessCursorWrapper.java",
|
|
"android/database/Cursor.java",
|
|
"android/database/CursorWrapper.java",
|
|
"android/os/Binder.java",
|
|
"android/os/Bundle.java",
|
|
"android/os/IBinder.java",
|
|
"android/os/IInterface.java",
|
|
"android/os/Parcelable.java",
|
|
"android/os/ParcelFileDescriptor.java",
|
|
"android/os/RemoteException.java",
|
|
"android/os/storage/VolumeInfo.java",
|
|
"android/util/AndroidException.java",
|
|
"android/view/DisplayAdjustments.java",
|
|
"android/view/ViewDebug.java",
|
|
],
|
|
visibility: ["//frameworks/base/test-mock"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "libincident_aidl",
|
|
srcs: [
|
|
"android/os/IIncidentDumpCallback.aidl",
|
|
"android/os/IIncidentManager.aidl",
|
|
"android/os/IIncidentReportStatusListener.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "libvibrator_aidl",
|
|
srcs: [
|
|
"android/os/IExternalVibrationController.aidl",
|
|
"android/os/IExternalVibratorService.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "libpowermanager_aidl",
|
|
srcs: [
|
|
"android/os/Temperature.aidl",
|
|
"android/os/CoolingDevice.aidl",
|
|
"android/os/IHintManager.aidl",
|
|
"android/os/IHintSession.aidl",
|
|
"android/os/IThermalEventListener.aidl",
|
|
"android/os/IThermalStatusListener.aidl",
|
|
"android/os/IThermalService.aidl",
|
|
"android/os/IPowerManager.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "ILogcatManagerService_aidl",
|
|
srcs: ["android/os/logcat/ILogcatManagerService.aidl"],
|
|
}
|
|
|
|
genrule {
|
|
name: "statslog-framework-java-gen",
|
|
tools: ["stats-log-api-gen"],
|
|
cmd: "$(location stats-log-api-gen) --java $(out) --module framework" +
|
|
" --javaPackage com.android.internal.util --javaClass FrameworkStatsLog --worksource",
|
|
out: ["com/android/internal/util/FrameworkStatsLog.java"],
|
|
}
|
|
|
|
java_library {
|
|
name: "uieventloggerlib",
|
|
srcs: [
|
|
"com/android/internal/logging/UiEvent.java",
|
|
"com/android/internal/logging/UiEventLogger.java",
|
|
"com/android/internal/logging/UiEventLoggerImpl.java",
|
|
"com/android/internal/logging/InstanceId.java",
|
|
"com/android/internal/logging/InstanceIdSequence.java",
|
|
":statslog-framework-java-gen",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-services-net-module-wifi-shared-srcs",
|
|
srcs: [
|
|
"android/net/DhcpResults.java",
|
|
"android/util/LocalLog.java",
|
|
],
|
|
}
|
|
|
|
// keep these files in sync with the package/Tethering/jarjar-rules.txt and
|
|
// package/Connectivity/jarjar-rules.txt for the tethering module and connectivity module.
|
|
filegroup {
|
|
name: "framework-connectivity-shared-srcs",
|
|
srcs: [
|
|
"android/util/IndentingPrintWriter.java",
|
|
"android/util/LocalLog.java",
|
|
// This should be android.util.IndentingPrintWriter, but it's not available in all branches.
|
|
"com/android/internal/util/IndentingPrintWriter.java",
|
|
"com/android/internal/util/MessageUtils.java",
|
|
"com/android/internal/util/WakeupMessage.java",
|
|
],
|
|
}
|
|
|
|
// keep these files in sync with the apex/jobscheduler/service jarjar-rules.txt for
|
|
// the jobscheduler module.
|
|
filegroup {
|
|
name: "framework-jobscheduler-shared-srcs",
|
|
srcs: [
|
|
":modules-utils-preconditions-srcs",
|
|
"com/android/internal/util/ArrayUtils.java",
|
|
"com/android/internal/util/BitUtils.java",
|
|
"com/android/internal/util/CollectionUtils.java",
|
|
"com/android/internal/util/ConcurrentUtils.java",
|
|
"com/android/internal/util/DumpUtils.java",
|
|
"com/android/internal/util/FastPrintWriter.java",
|
|
"com/android/internal/util/FastXmlSerializer.java",
|
|
"com/android/internal/util/FunctionalUtils.java",
|
|
"com/android/internal/util/ParseUtils.java",
|
|
"com/android/internal/util/RingBufferIndices.java",
|
|
"com/android/internal/util/StatLogger.java",
|
|
"com/android/internal/util/XmlUtils.java",
|
|
],
|
|
}
|
|
|
|
// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
|
|
filegroup {
|
|
name: "framework-permission-s-shared-srcs",
|
|
srcs: [
|
|
":modules-utils-preconditions-srcs",
|
|
"com/android/internal/infra/AndroidFuture.java",
|
|
"com/android/internal/infra/ServiceConnector.java",
|
|
"com/android/internal/infra/AndroidFuture.aidl",
|
|
"com/android/internal/infra/IAndroidFuture.aidl",
|
|
"android/os/HandlerExecutor.java",
|
|
],
|
|
}
|
|
|
|
// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module.
|
|
filegroup {
|
|
name: "service-permission-shared-srcs",
|
|
srcs: [
|
|
"android/util/IndentingPrintWriter.java",
|
|
"com/android/internal/util/dump/DualDumpOutputStream.java",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "incremental_aidl",
|
|
srcs: [
|
|
"android/os/incremental/IIncrementalServiceConnector.aidl",
|
|
"android/os/incremental/IncrementalFileSystemControlParcel.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "dataloader_aidl",
|
|
srcs: [
|
|
"android/content/pm/DataLoaderParamsParcel.aidl",
|
|
"android/content/pm/DataLoaderType.aidl",
|
|
"android/content/pm/FileSystemControlParcel.aidl",
|
|
"android/content/pm/IDataLoader.aidl",
|
|
"android/content/pm/IDataLoaderManager.aidl",
|
|
"android/content/pm/InstallationFileParcel.aidl",
|
|
"android/content/pm/InstallationFileLocation.aidl",
|
|
"android/content/pm/IDataLoaderStatusListener.aidl",
|
|
"android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "incremental_manager_aidl",
|
|
srcs: [
|
|
"android/os/incremental/IIncrementalService.aidl",
|
|
"android/os/incremental/IStorageLoadingProgressListener.aidl",
|
|
"android/os/incremental/IncrementalNewFileParams.aidl",
|
|
"android/os/incremental/IStorageHealthListener.aidl",
|
|
"android/os/incremental/PerUidReadTimeouts.aidl",
|
|
"android/os/incremental/StorageHealthCheckParams.aidl",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "activity_manager_procstate_aidl",
|
|
srcs: [
|
|
"android/app/ProcessStateEnum.aidl",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "incremental_default",
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wextra-semi",
|
|
"-Werror",
|
|
"-Wzero-as-null-pointer-constant",
|
|
"-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
|
|
],
|
|
shared_libs: [
|
|
"libbinder",
|
|
"libutils",
|
|
],
|
|
aidl: {
|
|
include_dirs: [
|
|
"frameworks/native/aidl/binder",
|
|
],
|
|
export_aidl_headers: true,
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libincremental_aidl-cpp",
|
|
srcs: [
|
|
":incremental_aidl",
|
|
],
|
|
defaults: ["incremental_default"],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libdataloader_aidl-cpp",
|
|
srcs: [
|
|
":dataloader_aidl",
|
|
],
|
|
defaults: ["incremental_default"],
|
|
shared_libs: [
|
|
"libincremental_aidl-cpp",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libincremental_manager_aidl-cpp",
|
|
srcs: [
|
|
":incremental_manager_aidl",
|
|
],
|
|
defaults: ["incremental_default"],
|
|
shared_libs: [
|
|
"libincremental_aidl-cpp",
|
|
"libdataloader_aidl-cpp",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libactivity_manager_procstate_aidl-cpp",
|
|
host_supported: true,
|
|
srcs: [
|
|
":activity_manager_procstate_aidl",
|
|
],
|
|
aidl: {
|
|
export_aidl_headers: true,
|
|
},
|
|
}
|
|
|
|
// Build Rust bindings for PermissionController. Needed by keystore2.
|
|
aidl_interface {
|
|
name: "android.os.permissions_aidl",
|
|
unstable: true,
|
|
local_include_dir: ".",
|
|
srcs: [
|
|
"android/os/IPermissionController.aidl",
|
|
],
|
|
backend: {
|
|
rust: {
|
|
enabled: true,
|
|
apex_available: [
|
|
"//apex_available:platform",
|
|
"com.android.virt", // for virtualizationservice
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
aidl_interface {
|
|
name: "android.debug_aidl",
|
|
unstable: true,
|
|
srcs: [
|
|
"android/debug/AdbTransportType.aidl",
|
|
"android/debug/FingerprintAndPairDevice.aidl",
|
|
"android/debug/IAdbCallback.aidl",
|
|
"android/debug/IAdbManager.aidl",
|
|
"android/debug/PairDevice.aidl",
|
|
],
|
|
backend: {
|
|
cpp: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
// Avoid including Parcelable classes as we don't want to have two copies of
|
|
// Parcelable cross the libraries. This is used by telephony-common (frameworks/opt/telephony)
|
|
// and TeleService app (packages/services/Telephony).
|
|
filegroup {
|
|
name: "framework-telephony-common-shared-srcs",
|
|
srcs: [
|
|
"android/os/RegistrantList.java",
|
|
"android/os/Registrant.java",
|
|
"android/util/IndentingPrintWriter.java",
|
|
"android/util/LocalLog.java",
|
|
"android/util/TimeUtils.java",
|
|
"com/android/internal/os/SomeArgs.java",
|
|
"com/android/internal/util/AsyncChannel.java",
|
|
"com/android/internal/util/AsyncService.java",
|
|
"com/android/internal/util/BitwiseInputStream.java",
|
|
"com/android/internal/util/FastXmlSerializer.java",
|
|
"com/android/internal/util/HexDump.java",
|
|
"com/android/internal/util/IndentingPrintWriter.java",
|
|
"com/android/internal/util/UserIcons.java",
|
|
],
|
|
}
|
|
|
|
// Avoid including Parcelable classes as we don't want to have two copies of
|
|
// Parcelable cross the process.
|
|
filegroup {
|
|
name: "framework-cellbroadcast-shared-srcs",
|
|
srcs: [
|
|
"android/util/LocalLog.java",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "modules-utils-statemachine",
|
|
srcs: [
|
|
"com/android/internal/util/IState.java",
|
|
"com/android/internal/util/State.java",
|
|
"com/android/internal/util/StateMachine.java",
|
|
],
|
|
libs: [
|
|
"framework-annotations-lib",
|
|
"unsupportedappusage",
|
|
],
|
|
sdk_version: "module_current",
|
|
min_sdk_version: "29",
|
|
|
|
visibility: ["//visibility:public"],
|
|
apex_available: [
|
|
"//apex_available:anyapex",
|
|
"//apex_available:platform",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-ims-common-shared-srcs",
|
|
srcs: [
|
|
":modules-utils-preconditions-srcs",
|
|
"android/os/RegistrantList.java",
|
|
"android/os/Registrant.java",
|
|
"com/android/internal/os/SomeArgs.java",
|
|
],
|
|
}
|
|
|
|
aidl_interface {
|
|
name: "android.os.statsbootstrap_aidl",
|
|
unstable: true,
|
|
srcs: [
|
|
"android/os/IStatsBootstrapAtomService.aidl",
|
|
"android/os/StatsBootstrapAtom.aidl",
|
|
"android/os/StatsBootstrapAtomValue.aidl",
|
|
],
|
|
backend: {
|
|
cpp: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
// utility classes statically linked into wifi-service
|
|
filegroup {
|
|
name: "framework-wifi-service-shared-srcs",
|
|
srcs: [
|
|
"android/net/InterfaceConfiguration.java",
|
|
"android/util/BackupUtils.java",
|
|
"android/util/Rational.java",
|
|
"com/android/internal/util/FastXmlSerializer.java",
|
|
"com/android/internal/util/HexDump.java",
|
|
"com/android/internal/util/MessageUtils.java",
|
|
"com/android/internal/util/WakeupMessage.java",
|
|
],
|
|
visibility: [
|
|
"//frameworks/opt/net/wifi/service",
|
|
"//packages/modules/Wifi/service",
|
|
],
|
|
}
|
|
|
|
// protolog start
|
|
filegroup {
|
|
name: "protolog-common-src",
|
|
srcs: [
|
|
"com/android/internal/protolog/common/**/*.java",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "protolog-lib",
|
|
platform_apis: true,
|
|
srcs: [
|
|
"com/android/internal/protolog/ProtoLogImpl.java",
|
|
"com/android/internal/protolog/ProtoLogViewerConfigReader.java",
|
|
":protolog-common-src",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "protolog-groups",
|
|
srcs: [
|
|
"com/android/internal/protolog/ProtoLogGroup.java",
|
|
":protolog-common-src",
|
|
],
|
|
}
|
|
|
|
// protolog end
|