Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Dhina17/platform_frameworks_base
  • itisFarzin/platform_frameworks_base-old
2 results
Show changes
Commits on Source (13695)
Showing
with 418 additions and 63 deletions
drops {
android_build_drop {
build_id: "10093150"
build_id: "11947186"
target: "CtsShim"
source_file: "aosp_arm64/CtsShimPriv.apk"
}
......@@ -8,7 +8,7 @@ drops {
version: ""
version_group: ""
git_project: "platform/frameworks/base"
git_branch: "udc-dev"
git_branch: "main"
transform: TRANSFORM_NONE
transform_options {
}
......
drops {
android_build_drop {
build_id: "10093150"
build_id: "11947186"
target: "CtsShim"
source_file: "aosp_arm64/CtsShim.apk"
}
......@@ -8,7 +8,7 @@ drops {
version: ""
version_group: ""
git_project: "platform/frameworks/base"
git_branch: "udc-dev"
git_branch: "main"
transform: TRANSFORM_NONE
transform_options {
}
......
drops {
android_build_drop {
build_id: "10093150"
build_id: "11947186"
target: "CtsShim"
source_file: "aosp_x86_64/CtsShimPriv.apk"
}
......@@ -8,7 +8,7 @@ drops {
version: ""
version_group: ""
git_project: "platform/frameworks/base"
git_branch: "udc-dev"
git_branch: "main"
transform: TRANSFORM_NONE
transform_options {
}
......
drops {
android_build_drop {
build_id: "10093150"
build_id: "11947186"
target: "CtsShim"
source_file: "aosp_x86_64/CtsShim.apk"
}
......@@ -8,7 +8,7 @@ drops {
version: ""
version_group: ""
git_project: "platform/frameworks/base"
git_branch: "udc-dev"
git_branch: "main"
transform: TRANSFORM_NONE
transform_options {
}
......
......@@ -74,23 +74,27 @@ aconfig_declarations_group {
"android.view.inputmethod.flags-aconfig-java",
"android.webkit.flags-aconfig-java",
"android.widget.flags-aconfig-java",
"backstage_power_flags_lib",
"backup_flags_lib",
"camera_platform_flags_core_java_lib",
"com.android.hardware.input-aconfig-java",
"com.android.input.flags-aconfig-java",
"com.android.internal.compat.flags-aconfig-java",
"com.android.internal.foldables.flags-aconfig-java",
"com.android.internal.os.flags-aconfig-java",
"com.android.internal.pm.pkg.component.flags-aconfig-java",
"com.android.media.flags.bettertogether-aconfig-java",
"com.android.media.flags.editing-aconfig-java",
"com.android.media.flags.performance-aconfig-java",
"com.android.media.flags.projection-aconfig-java",
"com.android.net.thread.platform.flags-aconfig-java",
"com.android.server.contextualsearch.flags-java",
"com.android.server.flags.services-aconfig-java",
"com.android.text.flags-aconfig-java",
"com.android.window.flags.window-aconfig-java",
"device_policy_aconfig_flags_lib",
"display_flags_lib",
"dropbox_flags_lib",
"framework-jobscheduler-job.flags-aconfig-java",
"framework_graphics_flags_java_lib",
"hwui_flags_java_lib",
......@@ -169,9 +173,15 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
cc_aconfig_library {
name: "com.android.window.flags.window-aconfig_flags_c_lib",
aconfig_declarations: "com.android.window.flags.window-aconfig",
}
// DeviceStateManager
aconfig_declarations {
name: "android.hardware.devicestate.feature.flags-aconfig",
exportable: true,
package: "android.hardware.devicestate.feature.flags",
container: "system",
srcs: ["core/java/android/hardware/devicestate/feature/*.aconfig"],
......@@ -186,6 +196,7 @@ java_aconfig_library {
// Input
aconfig_declarations {
name: "com.android.hardware.input.input-aconfig",
exportable: true,
package: "com.android.hardware.input",
container: "system",
srcs: ["core/java/android/hardware/input/*.aconfig"],
......@@ -296,6 +307,11 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
cc_aconfig_library {
name: "android_security_flags_aconfig_c_lib",
aconfig_declarations: "android.security.flags-aconfig",
}
// UsageStats
aconfig_declarations {
name: "android.app.usage.flags-aconfig",
......@@ -369,6 +385,20 @@ cc_aconfig_library {
host_supported: true,
}
// OS Internal
aconfig_declarations {
name: "com.android.internal.os.flags-aconfig",
package: "com.android.internal.os",
container: "system",
srcs: ["core/java/com/android/internal/os/flags.aconfig"],
}
java_aconfig_library {
name: "com.android.internal.os.flags-aconfig-java",
aconfig_declarations: "com.android.internal.os.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// VirtualDeviceManager
cc_aconfig_library {
name: "android.companion.virtualdevice.flags-aconfig-cc",
......@@ -470,6 +500,7 @@ cc_aconfig_library {
// Hardware
aconfig_declarations {
name: "android.hardware.flags-aconfig",
exportable: true,
package: "android.hardware.flags",
container: "system",
srcs: ["core/java/android/hardware/flags/*.aconfig"],
......@@ -506,6 +537,7 @@ aconfig_declarations {
name: "android.content.pm.flags-aconfig",
package: "android.content.pm",
container: "system",
exportable: true,
srcs: ["core/java/android/content/pm/flags.aconfig"],
}
......@@ -515,6 +547,18 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
java_aconfig_library {
name: "android.content.pm.flags-aconfig-java-export",
aconfig_declarations: "android.content.pm.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
mode: "exported",
min_sdk_version: "30",
apex_available: [
"//apex_available:platform",
"com.android.permission",
],
}
java_aconfig_library {
name: "android.content.pm.flags-aconfig-java-host",
aconfig_declarations: "android.content.pm.flags-aconfig",
......@@ -567,6 +611,7 @@ java_aconfig_library {
// Media Editing
aconfig_declarations {
name: "com.android.media.flags.editing-aconfig",
exportable: true,
package: "com.android.media.editing.flags",
container: "system",
srcs: [
......@@ -600,6 +645,7 @@ java_aconfig_library {
aconfig_declarations {
name: "com.android.media.flags.performance-aconfig",
package: "com.android.media.performance.flags",
container: "system",
srcs: [
"media/java/android/media/flags/performance.aconfig",
],
......@@ -614,6 +660,7 @@ java_aconfig_library {
// Media TV
aconfig_declarations {
name: "android.media.tv.flags-aconfig",
exportable: true,
package: "android.media.tv.flags",
container: "system",
srcs: ["media/java/android/media/tv/flags/media_tv.aconfig"],
......@@ -628,6 +675,7 @@ java_aconfig_library {
// OnDeviceIntelligence
aconfig_declarations {
name: "android.app.ondeviceintelligence-aconfig",
exportable: true,
package: "android.app.ondeviceintelligence.flags",
container: "system",
srcs: ["core/java/android/app/ondeviceintelligence/flags/ondevice_intelligence.aconfig"],
......@@ -642,15 +690,17 @@ java_aconfig_library {
// Permissions
aconfig_declarations {
name: "android.permission.flags-aconfig",
package: "android.permission.flags",
container: "system",
package: "android.permission.flags",
exportable: true,
srcs: ["core/java/android/permission/flags.aconfig"],
}
java_aconfig_library {
name: "android.permission.flags-aconfig-java",
name: "android.permission.flags-aconfig-java-export",
aconfig_declarations: "android.permission.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
mode: "exported",
min_sdk_version: "30",
apex_available: [
"//apex_available:platform",
......@@ -659,6 +709,25 @@ java_aconfig_library {
],
}
java_aconfig_library {
name: "android.permission.flags-aconfig-java-host",
aconfig_declarations: "android.permission.flags-aconfig",
host_supported: true,
defaults: ["framework-minus-apex-aconfig-java-defaults"],
min_sdk_version: "30",
}
java_aconfig_library {
name: "android.permission.flags-aconfig-java",
aconfig_declarations: "android.permission.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
min_sdk_version: "30",
apex_available: [
"//apex_available:platform",
"com.android.nfcservices",
],
}
// SQLite
aconfig_declarations {
name: "android.database.sqlite-aconfig",
......@@ -682,6 +751,7 @@ cc_aconfig_library {
// Biometrics
aconfig_declarations {
name: "android.hardware.biometrics.flags-aconfig",
exportable: true,
package: "android.hardware.biometrics",
container: "system",
srcs: ["core/java/android/hardware/biometrics/flags.aconfig"],
......@@ -762,6 +832,7 @@ java_aconfig_library {
// Broadcast Radio
aconfig_declarations {
name: "android.hardware.radio.flags-aconfig",
exportable: true,
package: "android.hardware.radio",
container: "system",
srcs: ["core/java/android/hardware/radio/*.aconfig"],
......@@ -798,6 +869,7 @@ java_aconfig_library {
// Content Protection
aconfig_declarations {
name: "android.view.contentprotection.flags-aconfig",
exportable: true,
package: "android.view.contentprotection.flags",
container: "system",
srcs: ["core/java/android/view/contentprotection/flags/*.aconfig"],
......@@ -809,6 +881,20 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Contextual Search system service
aconfig_declarations {
name: "com.android.server.contextualsearch.flags-aconfig",
package: "com.android.server.contextualsearch.flags",
container: "system",
srcs: ["services/contextualsearch/flags/flags.aconfig"],
}
java_aconfig_library {
name: "com.android.server.contextualsearch.flags-java",
aconfig_declarations: "com.android.server.contextualsearch.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Server Services Flags
aconfig_declarations {
name: "com.android.server.flags.services-aconfig",
......@@ -826,6 +912,7 @@ java_aconfig_library {
// App prediction
aconfig_declarations {
name: "android.service.appprediction.flags-aconfig",
exportable: true,
package: "android.service.appprediction.flags",
container: "system",
srcs: ["core/java/android/service/appprediction/flags/*.aconfig"],
......@@ -840,6 +927,7 @@ java_aconfig_library {
// Controls
aconfig_declarations {
name: "android.service.controls.flags-aconfig",
exportable: true,
package: "android.service.controls.flags",
container: "system",
srcs: ["core/java/android/service/controls/flags/*.aconfig"],
......@@ -854,6 +942,7 @@ java_aconfig_library {
// Voice
aconfig_declarations {
name: "android.service.voice.flags-aconfig",
exportable: true,
package: "android.service.voice.flags",
container: "system",
srcs: ["core/java/android/service/voice/flags/*.aconfig"],
......@@ -885,6 +974,7 @@ java_aconfig_library {
// Companion
aconfig_declarations {
name: "android.companion.flags-aconfig",
exportable: true,
package: "android.companion",
container: "system",
srcs: ["core/java/android/companion/*.aconfig"],
......@@ -899,6 +989,7 @@ java_aconfig_library {
// Networking
aconfig_declarations {
name: "android.net.platform.flags-aconfig",
exportable: true,
package: "android.net.platform.flags",
container: "system",
srcs: ["core/java/android/net/flags.aconfig"],
......@@ -908,6 +999,7 @@ aconfig_declarations {
// Thread network
aconfig_declarations {
name: "com.android.net.thread.platform.flags-aconfig",
exportable: true,
package: "com.android.net.thread.platform.flags",
container: "system",
srcs: ["core/java/android/net/thread/flags.aconfig"],
......@@ -1011,6 +1103,7 @@ aconfig_declarations {
name: "framework-jobscheduler-job.flags-aconfig",
package: "android.app.job",
container: "system",
exportable: true,
srcs: ["apex/jobscheduler/framework/aconfig/job.aconfig"],
}
......@@ -1078,6 +1171,7 @@ java_aconfig_library {
// Smartspace
aconfig_declarations {
name: "android.app.smartspace.flags-aconfig",
exportable: true,
package: "android.app.smartspace.flags",
container: "system",
srcs: ["core/java/android/app/smartspace/flags.aconfig"],
......@@ -1113,6 +1207,7 @@ java_aconfig_library {
// USB
aconfig_declarations {
name: "android.hardware.usb.flags-aconfig",
exportable: true,
package: "android.hardware.usb.flags",
container: "system",
srcs: ["core/java/android/hardware/usb/flags/*.aconfig"],
......@@ -1198,6 +1293,7 @@ java_aconfig_library {
// Provider
aconfig_declarations {
name: "android.provider.flags-aconfig",
exportable: true,
package: "android.provider",
container: "system",
srcs: ["core/java/android/provider/*.aconfig"],
......@@ -1219,6 +1315,7 @@ java_aconfig_library {
// Speech
aconfig_declarations {
name: "android.speech.flags-aconfig",
exportable: true,
package: "android.speech.flags",
container: "system",
srcs: ["core/java/android/speech/flags/*.aconfig"],
......@@ -1240,6 +1337,7 @@ java_aconfig_library {
// Content
aconfig_declarations {
name: "android.content.flags-aconfig",
exportable: true,
package: "android.content.flags",
container: "system",
srcs: ["core/java/android/content/flags/flags.aconfig"],
......@@ -1268,6 +1366,7 @@ java_aconfig_library {
// CrashRecovery Module
aconfig_declarations {
name: "android.crashrecovery.flags-aconfig",
exportable: true,
package: "android.crashrecovery.flags",
container: "system",
srcs: ["packages/CrashRecovery/aconfig/flags.aconfig"],
......@@ -1279,6 +1378,13 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
java_aconfig_library {
name: "android.crashrecovery.flags-aconfig-java-host",
aconfig_declarations: "android.crashrecovery.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
host_supported: true,
}
// Backup
java_aconfig_library {
name: "backup_flags_lib",
......@@ -1308,6 +1414,7 @@ java_aconfig_library {
// Wearable Sensing
aconfig_declarations {
name: "android.app.wearable.flags-aconfig",
exportable: true,
package: "android.app.wearable",
container: "system",
srcs: ["core/java/android/app/wearable/*.aconfig"],
......@@ -1352,3 +1459,36 @@ java_aconfig_library {
aconfig_declarations: "android.systemserver.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// backstage power
aconfig_declarations {
name: "backstage_power_flags",
package: "com.android.server.power.optimization",
container: "system",
exportable: true,
srcs: [
"services/core/java/com/android/server/power/stats/flags.aconfig",
],
}
java_aconfig_library {
name: "backstage_power_flags_lib",
aconfig_declarations: "backstage_power_flags",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Dropbox data
aconfig_declarations {
name: "dropbox_flags",
package: "com.android.server.feature.flags",
container: "system",
srcs: [
"services/core/java/com/android/server/feature/dropbox_flags.aconfig",
],
}
java_aconfig_library {
name: "dropbox_flags_lib",
aconfig_declarations: "dropbox_flags",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
......@@ -97,7 +97,7 @@ filegroup {
// AIDL sources from external directories
":android.frameworks.location.altitude-V2-java-source",
":android.hardware.biometrics.common-V4-java-source",
":android.hardware.biometrics.fingerprint-V3-java-source",
":android.hardware.biometrics.fingerprint-V5-java-source",
":android.hardware.biometrics.face-V4-java-source",
":android.hardware.gnss-V2-java-source",
":android.hardware.graphics.common-V3-java-source",
......@@ -115,7 +115,7 @@ filegroup {
":android.security.legacykeystore-java-source",
":android.security.maintenance-java-source",
":android.security.metrics-java-source",
":android.system.keystore2-V3-java-source",
":android.system.keystore2-V4-java-source",
":android.hardware.cas-V1-java-source",
":credstore_aidl",
":dumpstate_aidl",
......@@ -140,6 +140,8 @@ filegroup {
":vold_aidl",
":deviceproductinfoconstants_aidl",
":adbrootservice_aidl",
// For the generated R.java and Manifest.java
":framework-res{.aapt.srcjar}",
......@@ -404,6 +406,7 @@ java_defaults {
"android.hardware.common.fmq-V1-java",
"bouncycastle-repackaged-unbundled",
"com.android.sysprop.foldlockbehavior",
"com.android.sysprop.view",
"framework-internal-utils",
// If MimeMap ever becomes its own APEX, then this dependency would need to be removed
// in favor of an API stubs dependency in java_library "framework" below.
......@@ -425,6 +428,7 @@ java_defaults {
"sounddose-aidl-java",
"modules-utils-expresslog",
"perfetto_trace_javastream_protos_jarjar",
"libaconfig_java_proto_nano",
],
}
......
......@@ -262,6 +262,7 @@ $(call add-clean-step, rm -rf $(SOONG_OUT_DIR)/.intermediates/frameworks/base/li
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/InProcessTethering)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/OsuLogin)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system_other/system/app/OsuLogin)
$(call add-clean-step, rm -rf $(OUT_DIR)/host/linux-x86/testcases/ravenwood-runtime)
# ******************************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
# ******************************************************************
[Builtin Hooks]
clang_format = true
bpfmt = true
ktfmt = true
[Builtin Hooks Options]
# Only turn on clang-format check for the following subfolders.
......@@ -17,6 +18,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp
tests/
tools/
bpfmt = -d
ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI
[Hook Scripts]
checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
......@@ -25,9 +27,10 @@ hidden_api_txt_checksorted_hook = ${REPO_ROOT}/tools/platform-compat/hiddenapi/c
hidden_api_txt_exclude_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/exclude.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
ktfmt_hook = ${REPO_ROOT}/external/ktfmt/ktfmt.py --check -i ${REPO_ROOT}/frameworks/base/ktfmt_includes.txt ${PREUPLOAD_FILES}
ktlint_hook = ${REPO_ROOT}/prebuilts/ktlint/ktlint.py --no-verify-format -f ${PREUPLOAD_FILES}
# This flag check hook runs only for "packages/SystemUI" subdirectory. If you want to include this check for other subdirectories, please modify flag_check.py.
flag_hook = ${REPO_ROOT}/frameworks/base/packages/SystemUI/flag_check.py --msg=${PREUPLOAD_COMMIT_MESSAGE} --files=${PREUPLOAD_FILES} --project=${REPO_PATH}
flag_hook = ${REPO_ROOT}/frameworks/base/packages/SystemUI/flag_check.py --msg=${PREUPLOAD_COMMIT_MESSAGE} --files=${PREUPLOAD_FILES} --project=${REPO_PROJECT}
[Tool Paths]
ktfmt = ${REPO_ROOT}/external/ktfmt/ktfmt.sh
......@@ -31,6 +31,7 @@ gensrcs {
"&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
srcs: [
":aconfigd_protos",
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
":libstats_atom_message_protos",
......
......@@ -30,10 +30,11 @@ java_genrule {
name: "framework-minus-apex.ravenwood-base",
tools: ["hoststubgen"],
cmd: "$(location hoststubgen) " +
"@$(location ravenwood/texts/ravenwood-standard-options.txt) " +
"@$(location :ravenwood-standard-options) " +
"--debug-log $(location hoststubgen_framework-minus-apex.log) " +
"--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
"--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +
"--out-impl-jar $(location ravenwood.jar) " +
......@@ -41,13 +42,13 @@ java_genrule {
"--gen-input-dump-file $(location hoststubgen_dump.txt) " +
"--in-jar $(location :framework-minus-apex-for-hoststubgen) " +
"--policy-override-file $(location ravenwood/texts/framework-minus-apex-ravenwood-policies.txt) " +
"--annotation-allowed-classes-file $(location ravenwood/texts/ravenwood-annotation-allowed-classes.txt) ",
"--policy-override-file $(location :ravenwood-framework-policies) " +
"--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ",
srcs: [
":framework-minus-apex-for-hoststubgen",
"ravenwood/texts/framework-minus-apex-ravenwood-policies.txt",
"ravenwood/texts/ravenwood-standard-options.txt",
"ravenwood/texts/ravenwood-annotation-allowed-classes.txt",
":ravenwood-framework-policies",
":ravenwood-standard-options",
":ravenwood-annotation-allowed-classes",
],
out: [
"ravenwood.jar",
......@@ -58,6 +59,7 @@ java_genrule {
"hoststubgen_framework-minus-apex.log",
"hoststubgen_framework-minus-apex_stats.csv",
"hoststubgen_framework-minus-apex_apis.csv",
],
visibility: ["//visibility:private"],
}
......@@ -90,6 +92,30 @@ genrule {
],
}
genrule {
name: "framework-minus-apex.ravenwood.apis",
defaults: ["ravenwood-internal-only-visibility-genrule"],
cmd: "cp $(in) $(out)",
srcs: [
":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_apis.csv}",
],
out: [
"hoststubgen_framework-minus-apex_apis.csv",
],
}
genrule {
name: "framework-minus-apex.ravenwood.keep_all",
defaults: ["ravenwood-internal-only-visibility-genrule"],
cmd: "cp $(in) $(out)",
srcs: [
":framework-minus-apex.ravenwood-base{hoststubgen_keep_all.txt}",
],
out: [
"hoststubgen_framework-minus-apex_keep_all.txt",
],
}
java_library {
name: "services.core-for-hoststubgen",
installable: false, // host only jar.
......@@ -104,10 +130,11 @@ java_genrule {
name: "services.core.ravenwood-base",
tools: ["hoststubgen"],
cmd: "$(location hoststubgen) " +
"@$(location ravenwood/texts/ravenwood-standard-options.txt) " +
"@$(location :ravenwood-standard-options) " +
"--debug-log $(location hoststubgen_services.core.log) " +
"--stats-file $(location hoststubgen_services.core_stats.csv) " +
"--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " +
"--out-impl-jar $(location ravenwood.jar) " +
......@@ -115,13 +142,13 @@ java_genrule {
"--gen-input-dump-file $(location hoststubgen_dump.txt) " +
"--in-jar $(location :services.core-for-hoststubgen) " +
"--policy-override-file $(location ravenwood/texts/services.core-ravenwood-policies.txt) " +
"--annotation-allowed-classes-file $(location ravenwood/texts/ravenwood-annotation-allowed-classes.txt) ",
"--policy-override-file $(location :ravenwood-services-policies) " +
"--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ",
srcs: [
":services.core-for-hoststubgen",
"ravenwood/texts/services.core-ravenwood-policies.txt",
"ravenwood/texts/ravenwood-standard-options.txt",
"ravenwood/texts/ravenwood-annotation-allowed-classes.txt",
":ravenwood-services-policies",
":ravenwood-standard-options",
":ravenwood-annotation-allowed-classes",
],
out: [
"ravenwood.jar",
......@@ -132,6 +159,7 @@ java_genrule {
"hoststubgen_services.core.log",
"hoststubgen_services.core_stats.csv",
"hoststubgen_services.core_apis.csv",
],
visibility: ["//visibility:private"],
}
......@@ -161,6 +189,30 @@ genrule {
],
}
genrule {
name: "services.core.ravenwood.apis",
defaults: ["ravenwood-internal-only-visibility-genrule"],
cmd: "cp $(in) $(out)",
srcs: [
":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
],
out: [
"hoststubgen_services.core_apis.csv",
],
}
genrule {
name: "services.core.ravenwood.keep_all",
defaults: ["ravenwood-internal-only-visibility-genrule"],
cmd: "cp $(in) $(out)",
srcs: [
":services.core.ravenwood-base{hoststubgen_keep_all.txt}",
],
out: [
"hoststubgen_services.core_keep_all.txt",
],
}
java_library {
name: "services.core.ravenwood-jarjar",
installable: false,
......@@ -218,12 +270,22 @@ java_genrule {
visibility: ["//visibility:private"],
}
java_genrule {
name: "z00-all-updatable-modules-system-stubs",
cmd: "cp $(in) $(out)",
srcs: [":all-updatable-modules-system-stubs"],
out: ["z00-all-updatable-modules-system-stubs.jar"],
visibility: ["//visibility:private"],
}
android_ravenwood_libgroup {
name: "ravenwood-runtime",
libs: [
"100-framework-minus-apex.ravenwood",
"200-kxml2-android",
"all-updatable-modules-system-stubs",
"ravenwood-runtime-common-ravenwood",
"android.test.mock.ravenwood",
"ravenwood-helper-runtime",
"hoststubgen-helper-runtime.ravenwood",
......@@ -239,9 +301,13 @@ android_ravenwood_libgroup {
"ravenwood-junit-impl-flag",
"mockito-ravenwood-prebuilt",
"inline-mockito-ravenwood-prebuilt",
// It's a stub, so it should be towards the end.
"z00-all-updatable-modules-system-stubs",
],
jni_libs: [
"libandroid_runtime",
"libravenwood_runtime",
],
}
......
......@@ -8,4 +8,3 @@ philipcuadra@google.com
shayba@google.com
shombert@google.com
timmurray@google.com
wessam@google.com
......@@ -61,8 +61,8 @@ print("package android.libcore;")
imports = """
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Before;
......@@ -118,4 +118,4 @@ for i in range(max_conflict_depth):
print(" default void f{}() {{}}".format(i*imt_size + j))
print(" }")
print("}")
\ No newline at end of file
print("}")
......@@ -21,7 +21,7 @@ Adapted to use CrystalBall from art/test/2239-varhandle-perf/util-src/generate_j
To run use: python generate_java.py <destination_directory>
And then to correct lint errors (from frameworks/base):
../../tools/repohooks/tools/google-java-format.py --fix --sort-imports --google-java-format-diff ../../external/google-java-format/scripts/google-java-format-diff.py
../../tools/repohooks/tools/google-java-format.py --fix --google-java-format-diff ../../external/google-java-format/scripts/google-java-format-diff.py
"""
......@@ -160,8 +160,8 @@ package android.libcore.varhandles;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
import org.junit.After;
......
......@@ -17,8 +17,7 @@ package android.permission
import android.app.AppOpsManager
import android.content.Context
import androidx.benchmark.BenchmarkState
import androidx.benchmark.junit4.BenchmarkRule
import android.perftests.utils.PerfStatusReporter
import androidx.test.core.app.ApplicationProvider
import androidx.test.filters.LargeTest
import org.junit.Before
......@@ -34,7 +33,7 @@ import org.junit.Test
* these APIs should be monitored closely for performance.
*/
class AppOpsPerfTest {
@get:Rule val mBenchmarkRule: BenchmarkRule = BenchmarkRule()
@get:Rule val perfStatusReporter = PerfStatusReporter()
private lateinit var appOpsManager: AppOpsManager
private lateinit var opPackageName: String
private var opPackageUid: Int = 0
......@@ -49,7 +48,7 @@ class AppOpsPerfTest {
@Test
fun testNoteOp() {
val state: BenchmarkState = mBenchmarkRule.getState()
val state = perfStatusReporter.benchmarkState
while (state.keepRunning()) {
appOpsManager.noteOp(
AppOpsManager.OPSTR_FINE_LOCATION,
......@@ -63,7 +62,7 @@ class AppOpsPerfTest {
@Test
fun testUnsafeCheckOp() {
val state: BenchmarkState = mBenchmarkRule.getState()
val state = perfStatusReporter.benchmarkState
while (state.keepRunning()) {
appOpsManager.unsafeCheckOp(
AppOpsManager.OPSTR_FINE_LOCATION,
......
......@@ -22,7 +22,8 @@
<application>
<uses-library android:name="android.test.runner" />
<activity android:name="android.perftests.utils.PerfTestActivity"
android:exported="true">
android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"
android:exported="true">
<intent-filter>
<action android:name="com.android.perftests.core.PERFTEST" />
</intent-filter>
......
......@@ -366,7 +366,7 @@ public class UserLifecycleTests {
mRunner.pauseTiming();
Log.i(TAG, "Stopping timer");
stopUser(userId, /* force */true);
stopUser(userId);
mRunner.resumeTimingForNextIteration();
}
......@@ -429,7 +429,7 @@ public class UserLifecycleTests {
mRunner.pauseTiming();
Log.i(TAG, "Stopping timer");
stopUser(userId, /* force */true);
stopUser(userId);
mRunner.resumeTimingForNextIteration();
}
......@@ -545,7 +545,7 @@ public class UserLifecycleTests {
mRunner.pauseTiming();
Log.d(TAG, "Stopping timer");
switchUserNoCheck(currentUserId);
stopUserAfterWaitingForBroadcastIdle(userId, /* force */true);
stopUserAfterWaitingForBroadcastIdle(userId);
attestFalse("Failed to stop user " + userId, mAm.isUserRunning(userId));
mRunner.resumeTimingForNextIteration();
}
......@@ -571,7 +571,7 @@ public class UserLifecycleTests {
mRunner.pauseTiming();
Log.d(TAG, "Stopping timer");
switchUserNoCheck(startUser);
stopUserAfterWaitingForBroadcastIdle(testUser, true);
stopUserAfterWaitingForBroadcastIdle(testUser);
attestFalse("Failed to stop user " + testUser, mAm.isUserRunning(testUser));
mRunner.resumeTimingForNextIteration();
}
......@@ -660,7 +660,7 @@ public class UserLifecycleTests {
mRunner.resumeTiming();
Log.i(TAG, "Starting timer");
stopUser(userId, false);
stopUser(userId);
mRunner.pauseTiming();
Log.i(TAG, "Stopping timer");
......@@ -685,7 +685,7 @@ public class UserLifecycleTests {
Log.d(TAG, "Starting timer");
mRunner.resumeTiming();
stopUser(userId, false);
stopUser(userId);
mRunner.pauseTiming();
Log.d(TAG, "Stopping timer");
......@@ -883,7 +883,7 @@ public class UserLifecycleTests {
final int userId = createManagedProfile();
// Start the profile initially, then stop it. Similar to setQuietModeEnabled.
startUserInBackgroundAndWaitForUnlock(userId);
stopUserAfterWaitingForBroadcastIdle(userId, true);
stopUserAfterWaitingForBroadcastIdle(userId);
mRunner.resumeTiming();
Log.i(TAG, "Starting timer");
......@@ -905,7 +905,7 @@ public class UserLifecycleTests {
startUserInBackgroundAndWaitForUnlock(userId);
while (mRunner.keepRunning()) {
mRunner.pauseTiming();
stopUserAfterWaitingForBroadcastIdle(userId, true);
stopUserAfterWaitingForBroadcastIdle(userId);
mRunner.resumeTiming();
Log.d(TAG, "Starting timer");
......@@ -987,7 +987,7 @@ public class UserLifecycleTests {
installPreexistingApp(userId, DUMMY_PACKAGE_NAME);
startUserInBackgroundAndWaitForUnlock(userId);
startApp(userId, DUMMY_PACKAGE_NAME);
stopUserAfterWaitingForBroadcastIdle(userId, true);
stopUserAfterWaitingForBroadcastIdle(userId);
SystemClock.sleep(1_000); // 1 second cool-down before re-starting profile.
mRunner.resumeTiming();
Log.i(TAG, "Starting timer");
......@@ -1019,7 +1019,7 @@ public class UserLifecycleTests {
installPreexistingApp(userId, DUMMY_PACKAGE_NAME);
startUserInBackgroundAndWaitForUnlock(userId);
startApp(userId, DUMMY_PACKAGE_NAME);
stopUserAfterWaitingForBroadcastIdle(userId, true);
stopUserAfterWaitingForBroadcastIdle(userId);
SystemClock.sleep(1_000); // 1 second cool-down before re-starting profile.
mRunner.resumeTiming();
Log.d(TAG, "Starting timer");
......@@ -1144,7 +1144,7 @@ public class UserLifecycleTests {
mRunner.resumeTiming();
Log.i(TAG, "Starting timer");
stopUser(userId, true);
stopUser(userId);
mRunner.pauseTiming();
Log.i(TAG, "Stopping timer");
......@@ -1168,7 +1168,7 @@ public class UserLifecycleTests {
mRunner.resumeTiming();
Log.d(TAG, "Starting timer");
stopUser(userId, true);
stopUser(userId);
mRunner.pauseTiming();
Log.d(TAG, "Stopping timer");
......@@ -1294,15 +1294,15 @@ public class UserLifecycleTests {
* Do not call this method while timing is on. i.e. between mRunner.resumeTiming() and
* mRunner.pauseTiming(). Otherwise it would cause the test results to be spiky.
*/
private void stopUserAfterWaitingForBroadcastIdle(int userId, boolean force)
private void stopUserAfterWaitingForBroadcastIdle(int userId)
throws RemoteException {
waitForBroadcastIdle();
stopUser(userId, force);
stopUser(userId);
}
private void stopUser(int userId, boolean force) throws RemoteException {
private void stopUser(int userId) throws RemoteException {
final CountDownLatch latch = new CountDownLatch(1);
mIam.stopUser(userId, force /* force */, new IStopUserCallback.Stub() {
mIam.stopUserWithCallback(userId, new IStopUserCallback.Stub() {
@Override
public void userStopped(int userId) throws RemoteException {
latch.countDown();
......@@ -1352,7 +1352,7 @@ public class UserLifecycleTests {
attestTrue("Didn't switch back to user, " + origUser, origUser == mAm.getCurrentUser());
if (stopNewUser) {
stopUserAfterWaitingForBroadcastIdle(testUser, true);
stopUserAfterWaitingForBroadcastIdle(testUser);
attestFalse("Failed to stop user " + testUser, mAm.isUserRunning(testUser));
}
......@@ -1471,7 +1471,7 @@ public class UserLifecycleTests {
}
private void removeUser(int userId) throws RemoteException {
stopUserAfterWaitingForBroadcastIdle(userId, true);
stopUserAfterWaitingForBroadcastIdle(userId);
try {
ShellHelper.runShellCommandWithTimeout("pm remove-user -w " + userId,
TIMEOUT_IN_SECOND);
......@@ -1512,7 +1512,7 @@ public class UserLifecycleTests {
final boolean preStartComplete = mIam.startUserInBackgroundWithListener(userId,
preWaiter) && preWaiter.waitForFinish(TIMEOUT_IN_SECOND * 1000);
stopUserAfterWaitingForBroadcastIdle(userId, /* force */true);
stopUserAfterWaitingForBroadcastIdle(userId);
assertTrue("Pre start was not performed for user" + userId, preStartComplete);
}
......
......@@ -76,11 +76,6 @@
<option name="test-file-name" value="QueriesAll49.apk"/>
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
<option name="package" value="com.android.perftests.packagemanager"/>
<option name="hidden-api-checks" value="false"/>
</test>
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
<option name="directory-keys" value="/data/local/PackageManagerPerfTests"/>
<option name="collect-on-run-ended-only" value="true"/>
......
/*
* Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.perftests.permission
import android.app.AppOpsManager
import android.content.Context
import android.perftests.utils.PerfStatusReporter
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class AppOpsPerfTest {
@get:Rule val perfStatusReporter = PerfStatusReporter()
private lateinit var appOpsManager: AppOpsManager
private lateinit var opPackageName: String
private var opPackageUid: Int = 0
@Before
fun setUp() {
val context: Context = ApplicationProvider.getApplicationContext()
appOpsManager = context.getSystemService(AppOpsManager::class.java)!!
opPackageName = context.opPackageName
opPackageUid = context.getPackageManager().getPackageUid(opPackageName, 0)
}
@Test
fun testNoteOp() {
val state = perfStatusReporter.benchmarkState
while (state.keepRunning()) {
appOpsManager.noteOp(
AppOpsManager.OPSTR_FINE_LOCATION,
opPackageUid,
opPackageName,
null,
null
)
}
}
@Test
fun testUnsafeCheckOp() {
val state = perfStatusReporter.benchmarkState
while (state.keepRunning()) {
appOpsManager.unsafeCheckOp(
AppOpsManager.OPSTR_FINE_LOCATION,
opPackageUid,
opPackageName
)
}
}
}
/*
* Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.perftests.permission
import android.Manifest
import android.companion.virtual.VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT
import android.content.Context
import android.perftests.utils.PerfStatusReporter
import android.permission.PermissionManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.android.compatibility.common.util.AdoptShellPermissionsRule
import com.android.compatibility.common.util.SystemUtil.runShellCommand
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class PermissionManagerPerfTest {
@get:Rule var perfStatusReporter = PerfStatusReporter()
@get:Rule
val mAdoptShellPermissionsRule =
AdoptShellPermissionsRule(
InstrumentationRegistry.getInstrumentation().getUiAutomation(),
Manifest.permission.INSTALL_PACKAGES,
Manifest.permission.DELETE_PACKAGES,
Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS,
Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
)
val context: Context = InstrumentationRegistry.getInstrumentation().targetContext
val permissionManager = context.getSystemService(PermissionManager::class.java)!!
@Before
fun setup() {
val apkPath = "$APK_DIR${APK_NAME}.apk"
runShellCommand("pm install -tg $apkPath")
}
@After
fun cleanup() {
runShellCommand("pm uninstall $PKG_NAME")
}
@Test
fun testGetAllPermissionStates() {
val benchmarkState = perfStatusReporter.benchmarkState
while (benchmarkState.keepRunning()) {
permissionManager.getAllPermissionStates(PKG_NAME, PERSISTENT_DEVICE_ID_DEFAULT)
}
}
companion object {
private const val APK_DIR = "/data/local/tmp/perftests/"
private const val APK_NAME = "UsePermissionApp0"
private const val PKG_NAME = "android.perftests.appenumeration0"
}
}
......@@ -36,6 +36,7 @@ import java.io.IOException
import java.io.InputStreamReader
import java.util.concurrent.TimeUnit
import java.util.function.BiConsumer
import org.junit.Ignore
@RunWith(AndroidJUnit4::class)
class PermissionServicePerfTest {
......@@ -48,6 +49,7 @@ class PermissionServicePerfTest {
val mUiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation()
@Test
@Ignore("Fails to capture duration, results in infinite loop and execution timeout")
fun testInstallPackages() {
mUiAutomation.executeShellCommand(COMMAND_TRACE_START)
eventually { assertThat(Trace.isTagEnabled(TRACE_TAG)).isTrue() }
......