1 /* 2 * Copyright (C) 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.eventlib.premade; 18 19 import android.app.admin.DeviceAdminReceiver; 20 import android.content.Context; 21 import android.content.Intent; 22 import android.net.Uri; 23 import android.os.PersistableBundle; 24 import android.os.UserHandle; 25 26 import com.android.eventlib.events.broadcastreceivers.BroadcastReceivedEvent; 27 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisableRequestedEvent; 28 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisabledEvent; 29 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminEnabledEvent; 30 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordChangedEvent; 31 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordFailedEvent; 32 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordSucceededEvent; 33 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminSystemUpdatePendingEvent; 34 35 /** Implementation of {@link DeviceAdminReceiver} which logs events in response to callbacks. */ 36 public class EventLibDeviceAdminReceiver extends DeviceAdminReceiver { 37 38 private String mOverrideDeviceAdminReceiverClassName; 39 setOverrideDeviceAdminReceiverClassName( String overrideDeviceAdminReceiverClassName)40 public void setOverrideDeviceAdminReceiverClassName( 41 String overrideDeviceAdminReceiverClassName) { 42 mOverrideDeviceAdminReceiverClassName = overrideDeviceAdminReceiverClassName; 43 } 44 45 @Override onEnabled(Context context, Intent intent)46 public void onEnabled(Context context, Intent intent) { 47 DeviceAdminEnabledEvent.DeviceAdminEnabledEventLogger logger = 48 DeviceAdminEnabledEvent.logger(this, context, intent); 49 50 if (mOverrideDeviceAdminReceiverClassName != null) { 51 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 52 } 53 54 logger.log(); 55 56 super.onEnabled(context, intent); 57 } 58 59 @Override onDisableRequested(Context context, Intent intent)60 public CharSequence onDisableRequested(Context context, Intent intent) { 61 DeviceAdminDisableRequestedEvent.DeviceAdminDisableRequestedEventLogger logger = 62 DeviceAdminDisableRequestedEvent.logger(this, context, intent); 63 64 if (mOverrideDeviceAdminReceiverClassName != null) { 65 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 66 } 67 68 logger.log(); 69 70 return super.onDisableRequested(context, intent); 71 } 72 73 @Override onDisabled(Context context, Intent intent)74 public void onDisabled(Context context, Intent intent) { 75 DeviceAdminDisabledEvent.DeviceAdminDisabledEventLogger logger = 76 DeviceAdminDisabledEvent.logger(this, context, intent); 77 78 if (mOverrideDeviceAdminReceiverClassName != null) { 79 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 80 } 81 82 logger.log(); 83 84 super.onDisabled(context, intent); 85 } 86 87 @Override onPasswordChanged(Context context, Intent intent)88 public void onPasswordChanged(Context context, Intent intent) { 89 DeviceAdminPasswordChangedEvent.DeviceAdminPasswordChangedEventLogger logger = 90 DeviceAdminPasswordChangedEvent.logger(this, context, intent); 91 92 if (mOverrideDeviceAdminReceiverClassName != null) { 93 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 94 } 95 96 logger.log(); 97 98 super.onPasswordChanged(context, intent); 99 } 100 101 @Override onPasswordChanged(Context context, Intent intent, UserHandle user)102 public void onPasswordChanged(Context context, Intent intent, UserHandle user) { 103 DeviceAdminPasswordChangedEvent.DeviceAdminPasswordChangedEventLogger logger = 104 DeviceAdminPasswordChangedEvent.logger(this, context, intent); 105 logger.setUserHandle(user); 106 107 if (mOverrideDeviceAdminReceiverClassName != null) { 108 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 109 } 110 111 logger.log(); 112 } 113 114 @Override onPasswordFailed(Context context, Intent intent)115 public void onPasswordFailed(Context context, Intent intent) { 116 DeviceAdminPasswordFailedEvent.DeviceAdminPasswordFailedEventLogger logger = 117 DeviceAdminPasswordFailedEvent.logger(this, context, intent); 118 119 if (mOverrideDeviceAdminReceiverClassName != null) { 120 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 121 } 122 123 logger.log(); 124 125 super.onPasswordFailed(context, intent); 126 } 127 128 @Override onPasswordFailed(Context context, Intent intent, UserHandle user)129 public void onPasswordFailed(Context context, Intent intent, UserHandle user) { 130 DeviceAdminPasswordFailedEvent.DeviceAdminPasswordFailedEventLogger logger = 131 DeviceAdminPasswordFailedEvent.logger(this, context, intent); 132 logger.setUserHandle(user); 133 134 if (mOverrideDeviceAdminReceiverClassName != null) { 135 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 136 } 137 138 logger.log(); 139 } 140 141 @Override onPasswordSucceeded(Context context, Intent intent)142 public void onPasswordSucceeded(Context context, Intent intent) { 143 DeviceAdminPasswordSucceededEvent.DeviceAdminPasswordSucceededEventLogger logger = 144 DeviceAdminPasswordSucceededEvent.logger(this, context, intent); 145 146 if (mOverrideDeviceAdminReceiverClassName != null) { 147 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 148 } 149 150 logger.log(); 151 152 super.onPasswordSucceeded(context, intent); 153 } 154 155 @Override onPasswordSucceeded(Context context, Intent intent, UserHandle user)156 public void onPasswordSucceeded(Context context, Intent intent, UserHandle user) { 157 DeviceAdminPasswordSucceededEvent.DeviceAdminPasswordSucceededEventLogger logger = 158 DeviceAdminPasswordSucceededEvent.logger(this, context, intent); 159 logger.setUserHandle(user); 160 161 if (mOverrideDeviceAdminReceiverClassName != null) { 162 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 163 } 164 165 logger.log(); 166 } 167 168 @Override onPasswordExpiring(Context context, Intent intent)169 public void onPasswordExpiring(Context context, Intent intent) { 170 super.onPasswordExpiring(context, intent); 171 } 172 173 @Override onPasswordExpiring(Context context, Intent intent, UserHandle user)174 public void onPasswordExpiring(Context context, Intent intent, UserHandle user) { 175 super.onPasswordExpiring(context, intent, user); 176 } 177 178 @Override onProfileProvisioningComplete(Context context, Intent intent)179 public void onProfileProvisioningComplete(Context context, Intent intent) { 180 super.onProfileProvisioningComplete(context, intent); 181 } 182 183 @Override onReadyForUserInitialization(Context context, Intent intent)184 public void onReadyForUserInitialization(Context context, Intent intent) { 185 super.onReadyForUserInitialization(context, intent); 186 } 187 188 @Override onLockTaskModeEntering(Context context, Intent intent, String pkg)189 public void onLockTaskModeEntering(Context context, Intent intent, String pkg) { 190 super.onLockTaskModeEntering(context, intent, pkg); 191 } 192 193 @Override onLockTaskModeExiting(Context context, Intent intent)194 public void onLockTaskModeExiting(Context context, Intent intent) { 195 super.onLockTaskModeExiting(context, intent); 196 } 197 198 @Override onChoosePrivateKeyAlias(Context context, Intent intent, int uid, Uri uri, String alias)199 public String onChoosePrivateKeyAlias(Context context, Intent intent, int uid, Uri uri, 200 String alias) { 201 return super.onChoosePrivateKeyAlias(context, intent, uid, uri, alias); 202 } 203 204 @Override onSystemUpdatePending(Context context, Intent intent, long receivedTime)205 public void onSystemUpdatePending(Context context, Intent intent, long receivedTime) { 206 DeviceAdminSystemUpdatePendingEvent.DeviceAdminSystemUpdatePendingEventLogger logger = 207 DeviceAdminSystemUpdatePendingEvent.logger(this, context, intent, receivedTime); 208 209 if (mOverrideDeviceAdminReceiverClassName != null) { 210 logger.setDeviceAdminReceiver(mOverrideDeviceAdminReceiverClassName); 211 } 212 213 logger.log(); 214 215 super.onSystemUpdatePending(context, intent, receivedTime); 216 } 217 218 @Override onBugreportSharingDeclined(Context context, Intent intent)219 public void onBugreportSharingDeclined(Context context, Intent intent) { 220 super.onBugreportSharingDeclined(context, intent); 221 } 222 223 @Override onBugreportShared(Context context, Intent intent, String bugreportHash)224 public void onBugreportShared(Context context, Intent intent, String bugreportHash) { 225 super.onBugreportShared(context, intent, bugreportHash); 226 } 227 228 @Override onBugreportFailed(Context context, Intent intent, int failureCode)229 public void onBugreportFailed(Context context, Intent intent, int failureCode) { 230 super.onBugreportFailed(context, intent, failureCode); 231 } 232 233 @Override onSecurityLogsAvailable(Context context, Intent intent)234 public void onSecurityLogsAvailable(Context context, Intent intent) { 235 super.onSecurityLogsAvailable(context, intent); 236 } 237 238 @Override onNetworkLogsAvailable(Context context, Intent intent, long batchToken, int networkLogsCount)239 public void onNetworkLogsAvailable(Context context, Intent intent, long batchToken, 240 int networkLogsCount) { 241 super.onNetworkLogsAvailable(context, intent, batchToken, networkLogsCount); 242 } 243 244 @Override onUserAdded(Context context, Intent intent, UserHandle addedUser)245 public void onUserAdded(Context context, Intent intent, UserHandle addedUser) { 246 super.onUserAdded(context, intent, addedUser); 247 } 248 249 @Override onUserRemoved(Context context, Intent intent, UserHandle removedUser)250 public void onUserRemoved(Context context, Intent intent, UserHandle removedUser) { 251 super.onUserRemoved(context, intent, removedUser); 252 } 253 254 @Override onUserStarted(Context context, Intent intent, UserHandle startedUser)255 public void onUserStarted(Context context, Intent intent, UserHandle startedUser) { 256 super.onUserStarted(context, intent, startedUser); 257 } 258 259 @Override onUserStopped(Context context, Intent intent, UserHandle stoppedUser)260 public void onUserStopped(Context context, Intent intent, UserHandle stoppedUser) { 261 super.onUserStopped(context, intent, stoppedUser); 262 } 263 264 @Override onUserSwitched(Context context, Intent intent, UserHandle switchedUser)265 public void onUserSwitched(Context context, Intent intent, UserHandle switchedUser) { 266 super.onUserSwitched(context, intent, switchedUser); 267 } 268 269 @Override onTransferOwnershipComplete(Context context, PersistableBundle bundle)270 public void onTransferOwnershipComplete(Context context, PersistableBundle bundle) { 271 super.onTransferOwnershipComplete(context, bundle); 272 } 273 274 @Override onTransferAffiliatedProfileOwnershipComplete(Context context, UserHandle user)275 public void onTransferAffiliatedProfileOwnershipComplete(Context context, UserHandle user) { 276 super.onTransferAffiliatedProfileOwnershipComplete(context, user); 277 } 278 279 @Override onOperationSafetyStateChanged(Context context, int reason, boolean isSafe)280 public void onOperationSafetyStateChanged(Context context, int reason, boolean isSafe) { 281 super.onOperationSafetyStateChanged(context, reason, isSafe); 282 } 283 284 @Override onReceive(Context context, Intent intent)285 public void onReceive(Context context, Intent intent) { 286 BroadcastReceivedEvent.BroadcastReceivedEventLogger logger = 287 BroadcastReceivedEvent.logger(this, context, intent); 288 289 if (mOverrideDeviceAdminReceiverClassName != null) { 290 logger.setBroadcastReceiver(mOverrideDeviceAdminReceiverClassName); 291 } 292 293 logger.log(); 294 295 super.onReceive(context, intent); 296 } 297 } 298