diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 3ee0a06e2cd87..19c7adf4143e5 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -34,6 +34,8 @@ import "frameworks/base/core/proto/android/stats/launcher/launcher.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; import "frameworks/base/core/proto/android/telephony/enums.proto"; import "frameworks/base/core/proto/android/view/enums.proto"; +import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy_enums.proto"; +import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto"; /** * The master atom class. This message defines all of the available @@ -156,6 +158,7 @@ message Atom { ServiceLaunchReported service_launch_reported = 100; PhenotypeFlagStateChanged phenotype_flag_state_changed = 101; BinaryPushStateChanged binary_push_state_changed = 102; + DevicePolicyEvent device_policy_event = 103; } // Pulled events will start at field 10000. @@ -3389,3 +3392,25 @@ message DeviceCalculatedPowerBlameOther { // (i.e. roughly since device was last significantly charged). optional float power_milli_amp_hours = 2; } + +/** + * Logs device policy features. + * + * Logged from: + * frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java + * packages/apps/ManagedProvisioning/src/com/android/managedprovisioning/ + */ +message DevicePolicyEvent { + // The event id - unique for each event. + optional android.stats.devicepolicy.EventId event_id = 1; + // The admin package name. + optional string admin_package_name = 2; + // A generic integer parameter. + optional int32 integer_value = 3; + // A generic boolean parameter. + optional bool boolean_value = 4; + // A parameter specifying a time period in milliseconds. + optional uint64 time_period_millis = 5; + // A parameter specifying a list of package names, bundle extras or string parameters. + optional android.stats.devicepolicy.StringList string_list_value = 6 [(log_mode) = MODE_BYTES]; +} diff --git a/core/proto/android/stats/devicepolicy/Android.bp b/core/proto/android/stats/devicepolicy/Android.bp new file mode 100644 index 0000000000000..6ae54e23117d8 --- /dev/null +++ b/core/proto/android/stats/devicepolicy/Android.bp @@ -0,0 +1,33 @@ +// Copyright (C) 2018 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. + +java_library_static { + name: "devicepolicyprotosnano", + proto: { + type: "nano", + }, + srcs: [ + "*.proto", + ], + java_version: "1.8", + target: { + android: { + jarjar_rules: "jarjar-rules.txt", + }, + host: { + static_libs: ["libprotobuf-java-nano"], + } + }, + no_framework_libs: true, +} diff --git a/core/proto/android/stats/devicepolicy/device_policy.proto b/core/proto/android/stats/devicepolicy/device_policy.proto new file mode 100644 index 0000000000000..af30cf3f9941d --- /dev/null +++ b/core/proto/android/stats/devicepolicy/device_policy.proto @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2018 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. + */ + +syntax = "proto2"; + +package android.stats.devicepolicy; +option java_multiple_files = true; + +message StringList { + repeated string string_value = 1; +} diff --git a/core/proto/android/stats/devicepolicy/device_policy_enums.proto b/core/proto/android/stats/devicepolicy/device_policy_enums.proto new file mode 100644 index 0000000000000..8fbea12a8fb90 --- /dev/null +++ b/core/proto/android/stats/devicepolicy/device_policy_enums.proto @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2018 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. + */ + +syntax = "proto2"; + +package android.stats.devicepolicy; +option java_multiple_files = true; + +/** + * Id for device policy features. + */ +enum EventId { + SET_PASSWORD_QUALITY = 1; + SET_PASSWORD_MINIMUM_LENGTH = 2; + SET_PASSWORD_MINIMUM_NUMERIC = 3; + SET_PASSWORD_MINIMUM_NON_LETTER = 4; + SET_PASSWORD_MINIMUM_LETTERS = 5; + SET_PASSWORD_MINIMUM_LOWER_CASE = 6; + SET_PASSWORD_MINIMUM_UPPER_CASE = 7; + SET_PASSWORD_MINIMUM_SYMBOLS = 8; + SET_KEYGUARD_DISABLED_FEATURES = 9; + LOCK_NOW = 10; + WIPE_DATA_WITH_REASON = 11; + ADD_USER_RESTRICTION = 12; + REMOVE_USER_RESTRICTION = 13; + SET_SECURE_SETTING = 14; + SET_SECURITY_LOGGING_ENABLED = 15; + RETRIEVE_SECURITY_LOGS = 16; + RETRIEVE_PRE_REBOOT_SECURITY_LOGS = 17; + SET_PERMISSION_POLICY = 18; + SET_PERMISSION_GRANT_STATE = 19; + INSTALL_KEY_PAIR = 20; + INSTALL_CA_CERT = 21; + ON_CHOOSE_KEY_ALIAS = 22; + REMOVE_KEY_PAIR = 23; + UNINSTALL_CA_CERTS = 24; + SET_CERT_INSTALLER_PACKAGE = 25; + SET_ALWAYS_ON_VPN_PACKAGE = 26; + SET_PERMITTED_INPUT_METHODS = 27; + SET_PERMITTED_ACCESSIBILITY_SERVICES = 28; + SET_SCREEN_CAPTURE_DISABLE = 29; + SET_CAMERA_DISABLED = 30; + QUERY_SUMMARY_FOR_USER = 31; + QUERY_SUMMARY = 32; + QUERY_DETAILS = 33; + REBOOT = 34; + SET_MASTER_VOLUME_MUTED = 35; + SET_AUTO_TIME_REQUIRED = 36; + SET_KEYGUARD_DISABLED = 37; + SET_STATUS_BAR_DISABLED = 38; + SET_ORGANIZATION_COLOR = 39; + SET_PROFILE_NAME = 40; + SET_USER_ICON = 41; + SET_DEVICE_OWNER_LOCKSCREEN_INFO = 42; + SET_SHORT_SUPPORT_MESSAGE = 43; + SET_LONG_SUPPORT_MESSAGE = 44; + SET_CROSS_PROFILE_CONTACTS_SEARCH_DISABLED = 45; + SET_CROSS_PROFILE_CALLER_DISABLED = 46; + SET_BLUETOOTH_CONTACT_SHARING_DISABLED = 47; + ADD_CROSS_PROFILE_INTENT_FILTER = 48; + ADD_CROSS_PROFILE_WIDGET_PROVIDER = 49; + SET_SYSTEM_UPDATE_POLICY = 50; + SET_LOCKTASK_PACKAGES = 51; + ADD_PERSISTENT_PREFERRED_ACTIVITY = 52; + REQUEST_BUGREPORT = 53; + GET_WIFI_MAC_ADDRESS = 54; + REQUEST_QUIET_MODE_ENABLED = 55; + WORK_PROFILE_LOCATION_CHANGED = 56; + DO_USER_INFO_CLICKED = 57; + TRANSFER_OWNERSHIP = 58; + GENERATE_KEY_PAIR = 59; + SET_KEY_PAIR_CERTIFICATE = 60; + SET_KEEP_UNINSTALLED_PACKAGES = 61; + SET_APPLICATION_RESTRICTIONS = 62; + SET_APPLICATION_HIDDEN = 63; + ENABLE_SYSTEM_APP = 64; + ENABLE_SYSTEM_APP_WITH_INTENT = 65; + INSTALL_EXISTING_PACKAGE = 66; + SET_UNINSTALL_BLOCKED = 67; + SET_PACKAGES_SUSPENDED = 68; + ON_LOCK_TASK_MODE_ENTERING = 69; + ADD_CROSS_PROFILE_CALENDAR_PACKAGE = 70; + REMOVE_CROSS_PROFILE_CALENDAR_PACKAGE = 71; + GET_USER_PASSWORD_COMPLEXITY_LEVEL = 72; + INSTALL_SYSTEM_UPDATE = 73; + INSTALL_SYSTEM_UPDATE_ERROR = 74; + IS_MANAGED_KIOSK = 75; + IS_UNATTENDED_MANAGED_KIOSK = 76; + PROVISIONING_TO_COMP = 77; + PROVISIONING_FORCED_DO = 78; + + // existing Tron logs to be migrated to WestWorld + PROVISIONING_ENTRY_POINT_NFC = 79; + PROVISIONING_ENTRY_POINT_QR_CODE = 80; + PROVISIONING_ENTRY_POINT_ZERO_TOUCH = 81; + PROVISIONING_ENTRY_POINT_ADB = 82; + PROVISIONING_ENTRY_POINT_TRUSTED_SOURCE = 83; + PROVISIONING_DPC_PACKAGE_NAME = 84; + PROVISIONING_DPC_INSTALLED_BY_PACKAGE = 85; + PROVISIONING_PROVISIONING_ACTIVITY_TIME_MS = 86; + PROVISIONING_PREPROVISIONING_ACTIVITY_TIME_MS = 87; + PROVISIONING_ENCRYPT_DEVICE_ACTIVITY_TIME_MS = 88; + PROVISIONING_WEB_ACTIVITY_TIME_MS = 89; + PROVISIONING_TRAMPOLINE_ACTIVITY_TIME_MS = 90; + PROVISIONING_POST_ENCRYPTION_ACTIVITY_TIME_MS = 91; + PROVISIONING_FINALIZATION_ACTIVITY_TIME_MS = 92; + PROVISIONING_NETWORK_TYPE = 93; + PROVISIONING_ACTION = 94; + PROVISIONING_EXTRAS = 95; + PROVISIONING_COPY_ACCOUNT_TASK_MS = 96; + PROVISIONING_CREATE_PROFILE_TASK_MS = 97; + PROVISIONING_START_PROFILE_TASK_MS = 98; + PROVISIONING_DOWNLOAD_PACKAGE_TASK_MS = 99; + PROVISIONING_INSTALL_PACKAGE_TASK_MS = 100; + PROVISIONING_CANCELLED = 101; + PROVISIONING_ERROR = 102; + PROVISIONING_COPY_ACCOUNT_STATUS = 103; + PROVISIONING_TOTAL_TASK_TIME_MS = 104; + PROVISIONING_SESSION_STARTED = 105; + PROVISIONING_SESSION_COMPLETED = 106; + PROVISIONING_TERMS_ACTIVITY_TIME_MS = 107; + PROVISIONING_TERMS_COUNT = 108; + PROVISIONING_TERMS_READ = 109; +} diff --git a/core/proto/android/stats/devicepolicy/jarjar-rules.txt b/core/proto/android/stats/devicepolicy/jarjar-rules.txt new file mode 100644 index 0000000000000..40043a861ceb7 --- /dev/null +++ b/core/proto/android/stats/devicepolicy/jarjar-rules.txt @@ -0,0 +1 @@ +rule com.google.protobuf.nano.** com.android.framework.protobuf.nano.@1