Files
frameworks_base/core/java/Android.bp
Ats Jenk ca89abc937 If ProtoLog is not required, add fallback to logcat
Checks if logcat is enabled for a tag. If it is, logs directly to logcat from the stub class.
Only applicable if REQUIRE_PROTOLOGTOOL is set to false which is only set in sysui studio based builds.

Protolog tool does not run on the gradle based sysui studio build. Without the logcat fallback, sysui studio builds do not have any logging from protolog.

This change does introduce a dependency on android.util.Log in ProtoLog class. This class is part of common sources for ProtoLog. And is imported in the protolog tool itself. Had to create a new filtered target of protolog common sources that excludes the ProtoLog class.

Bug: 283499455
Test: m -j
Test: build sysui from studio, enable ProtoLog to logcat for a tag, observe logs in logcat

Change-Id: I9a085deaf39be1fb503c0df928a307e55c48ea4b
2023-05-23 17:17:20 +00:00

543 lines
16 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: "IBinaryTransparencyService.aidl",
srcs: ["com/android/internal/os/IBinaryTransparencyService.aidl"],
}
filegroup {
name: "ITracingServiceProxy.aidl",
srcs: ["android/tracing/ITracingServiceProxy.aidl"],
}
filegroup {
name: "TraceReportParams.aidl",
srcs: ["android/tracing/TraceReportParams.aidl"],
}
filegroup {
name: "framework-internal-display-sources",
srcs: ["com/android/internal/display/BrightnessSynchronizer.java"],
visibility: ["//frameworks/base/services/tests/mockingservicestests"],
}
// 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",
"android/os/IWakeLockCallback.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"],
}
// Library that provides functionality to log UiEvents in framework space.
// If this functionality is needed outside the framework, the interfaces library
// can be re-used and a local implementation is needed.
java_library {
name: "uieventloggerlib",
srcs: [
"com/android/internal/logging/UiEventLoggerImpl.java",
":statslog-framework-java-gen",
],
static_libs: ["modules-utils-uieventlogger-interface"],
}
java_library {
name: "modules-utils-locallog",
srcs: ["android/util/LocalLog.java"],
libs: ["unsupportedappusage"],
sdk_version: "module_current",
min_sdk_version: "30",
apex_available: [
"//apex_available:anyapex",
"//apex_available:platform",
],
visibility: ["//visibility:public"],
}
// 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 packages/modules/Connectivity jarjar-rules.txt for
// the connectivity module.
filegroup {
name: "framework-connectivity-api-shared-srcs",
srcs: [
"android/util/IndentingPrintWriter.java",
"com/android/internal/util/FileRotator.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",
],
}
filegroup {
name: "hwbinder-stubs-srcs",
srcs: [
"android/os/HidlSupport.java",
"android/os/HidlMemory.java",
"android/os/HwBinder.java",
"android/os/HwBlob.java",
"android/os/HwParcel.java",
"android/os/IHwBinder.java",
"android/os/IHwInterface.java",
"android/os/DeadObjectException.java",
"android/os/DeadSystemException.java",
"android/os/NativeHandle.java",
"android/os/RemoteException.java",
"android/util/AndroidException.java",
],
visibility: [
"//frameworks/base",
"//frameworks/base/api",
],
}
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
],
},
},
}
// Build Rust bindings for remote provisioning. Needed by keystore2.
aidl_interface {
name: "android.security.rkp_aidl",
unstable: true,
srcs: [
"android/security/rkp/*.aidl",
],
backend: {
rust: {
enabled: true,
},
},
}
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,
},
},
}
filegroup {
name: "frameworks-base-java-overview",
srcs: ["overview.html"],
}
// 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",
],
}
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",
],
}
// This file group is used by service fuzzer
filegroup {
name: "framework-core-sources-for-fuzzers",
srcs: [
"android/os/IInterface.java",
"android/os/Binder.java",
"android/os/IBinder.java",
"android/os/Parcelable.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",
],
}
// common protolog sources without classes that rely on Android SDK
filegroup {
name: "protolog-common-no-android-src",
srcs: [
":protolog-common-src",
],
exclude_srcs: [
"com/android/internal/protolog/common/ProtoLog.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