wiki:AppOpsManager_usage

Version 1 (modified by admin, 11 years ago) (diff)

--

import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_CALENDAR, AppOpsManager.OP_WRITE_CALENDAR);

./packages/providers/CalendarProvider/src/com/android/providers/calendar/CalendarProvider2.java import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_CONTACTS, AppOpsManager.OP_WRITE_CONTACTS);

./packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsProvider2.java import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_CALL_LOG, AppOpsManager.OP_WRITE_CALL_LOG);

./packages/providers/ContactsProvider/src/com/android/providers/contacts/CallLogProvider.java import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);

./packages/providers/TelephonyProvider/src/com/android/providers/telephony/SmsProvider.java import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);

./packages/providers/TelephonyProvider/src/com/android/providers/telephony/MmsSmsProvider.java import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);

./packages/providers/TelephonyProvider/src/com/android/providers/telephony/MmsProvider.java import android.app.AppOpsManager;

AppOpsManager appOps = (AppOpsManager)getSystemService(Context.APP_OPS_SERVICE); if (appOps.noteOp(AppOpsManager.OP_CALL_PHONE, launchedFromUid, launchedFromPackage)

!= AppOpsManager.MODE_ALLOWED) {

./packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java import android.app.AppOpsManager;

AppOpsManager mAppOps;

mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE); if (mAppOps.noteOp(AppOpsManager.OP_CALL_PHONE, Binder.getCallingUid(), callingPackage)

!= AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_NEIGHBORING_CELLS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

./packages/apps/Phone/src/com/android/phone/PhoneInterfaceManager.java import android.app.AppOpsManager;

final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);

new int[] { AppOpsManager.OP_COARSE_LOCATION,

AppOpsManager.OP_FINE_LOCATION, AppOpsManager.OP_GPS, AppOpsManager.OP_WIFI_SCAN, AppOpsManager.OP_NEIGHBORING_CELLS },

new int[] { AppOpsManager.OP_READ_CONTACTS,

AppOpsManager.OP_WRITE_CONTACTS, AppOpsManager.OP_READ_CALL_LOG, AppOpsManager.OP_WRITE_CALL_LOG, AppOpsManager.OP_READ_CALENDAR, AppOpsManager.OP_WRITE_CALENDAR, AppOpsManager.OP_READ_CLIPBOARD, AppOpsManager.OP_WRITE_CLIPBOARD },

new int[] { AppOpsManager.OP_READ_SMS,

AppOpsManager.OP_RECEIVE_SMS, AppOpsManager.OP_RECEIVE_EMERGECY_SMS, AppOpsManager.OP_RECEIVE_MMS, AppOpsManager.OP_RECEIVE_WAP_PUSH, AppOpsManager.OP_WRITE_SMS, AppOpsManager.OP_SEND_SMS, AppOpsManager.OP_READ_ICC_SMS, AppOpsManager.OP_WRITE_ICC_SMS },

new int[] { AppOpsManager.OP_VIBRATE,

AppOpsManager.OP_POST_NOTIFICATION, AppOpsManager.OP_ACCESS_NOTIFICATIONS, AppOpsManager.OP_CALL_PHONE, AppOpsManager.OP_WRITE_SETTINGS, AppOpsManager.OP_SYSTEM_ALERT_WINDOW, AppOpsManager.OP_CAMERA, AppOpsManager.OP_RECORD_AUDIO, AppOpsManager.OP_PLAY_AUDIO },

private final SparseArray<AppOpsManager.OpEntry> mOps

new SparseArray<AppOpsManager.OpEntry>();

public void addOp(AppOpEntry entry, AppOpsManager.OpEntry op) {

mOpSwitches.put(AppOpsManager.opToSwitch(op.getOp()), entry); return mOpSwitches.get(AppOpsManager.opToSwitch(op));

private final AppOpsManager.PackageOps mPkgOps; private final ArrayList<AppOpsManager.OpEntry> mOps

new ArrayList<AppOpsManager.OpEntry>();

private final ArrayList<AppOpsManager.OpEntry> mSwitchOps

new ArrayList<AppOpsManager.OpEntry>();

public AppOpEntry(AppOpsManager.PackageOps pkg, AppOpsManager.OpEntry op, AppEntry app, private static void addOp(ArrayList<AppOpsManager.OpEntry> list, AppOpsManager.OpEntry op) {

AppOpsManager.OpEntry pos = list.get(i);

public void addOp(AppOpsManager.OpEntry op) {

if (mApp.getOpSwitch(AppOpsManager.opToSwitch(op.getOp())) == null) {

public AppOpsManager.PackageOps getPackageOps() { public AppOpsManager.OpEntry getOpEntry(int pos) { private CharSequence getCombinedText(ArrayList<AppOpsManager.OpEntry> ops,

private void addOp(List<AppOpEntry> entries, AppOpsManager.PackageOps pkgOps,

AppEntry appEntry, AppOpsManager.OpEntry opEntry, boolean allowMerge, int switchOrder) {

final int[] opToOrder = new int[AppOpsManager._NUM_OP];

String perm = AppOpsManager.opToPermission(tpl.ops[i]);

List<AppOpsManager.PackageOps> pkgs;

AppOpsManager.PackageOps pkgOps = pkgs.get(i);

AppOpsManager.OpEntry opEntry = pkgOps.getOps().get(j);

List<AppOpsManager.OpEntry> dummyOps = null; AppOpsManager.PackageOps pkgOps = null;

dummyOps = new ArrayList<AppOpsManager.OpEntry>(); pkgOps = new AppOpsManager.PackageOps(

AppOpsManager.OpEntry opEntry = new AppOpsManager.OpEntry(

permOps.get(k), AppOpsManager.MODE_ALLOWED, 0, 0, 0);

./packages/apps/Settings/src/com/android/settings/applications/AppOpsState.java import android.app.AppOpsManager; ./packages/apps/Settings/src/com/android/settings/applications/AppOpsSummary.java import android.app.AppOpsManager;

private AppOpsManager mAppOps;

final AppOpsManager.OpEntry firstOp = entry.getOpEntry(0); String perm = AppOpsManager.opToPermission(firstOp.getOp()); final int switchOp = AppOpsManager.opToSwitch(firstOp.getOp());

entry.getPackageOps().getPackageName()) == AppOpsManager.MODE_ALLOWED);

? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);

mAppOps = (AppOpsManager)getActivity().getSystemService(Context.APP_OPS_SERVICE);

./packages/apps/Settings/src/com/android/settings/applications/AppOpsDetails.java import android.app.AppOpsManager;

dispatch(intent, RECEIVE_SMS_PERMISSION, AppOpsManager.OP_RECEIVE_SMS, mScpResultsReceiver);

./frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java import android.app.AppOpsManager;

appOp = AppOpsManager.OP_RECEIVE_MMS; appOp = AppOpsManager.OP_RECEIVE_WAP_PUSH;

./frameworks/opt/telephony/src/java/com/android/internal/telephony/WapPushOverSms.java import android.app.AppOpsManager;

dispatch(intent, RECEIVE_SMS_PERMISSION, AppOpsManager.OP_RECEIVE_SMS); dispatch(intent, RECEIVE_SMS_PERMISSION, AppOpsManager.OP_RECEIVE_SMS);

AppOpsManager.OP_RECEIVE_EMERGECY_SMS);

dispatch(intent, RECEIVE_SMS_PERMISSION, AppOpsManager.OP_RECEIVE_SMS);

./frameworks/opt/telephony/src/java/com/android/internal/telephony/SMSDispatcher.java import android.app.AppOpsManager;

final protected AppOpsManager mAppOps;

mAppOps = (AppOpsManager)mContext.getSystemService(Context.APP_OPS_SERVICE); if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_READ_ICC_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

./frameworks/opt/telephony/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java #include <binder/AppOpsManager.h>

mAppOpsManager.startWatchingMode(AppOpsManager::OP_CAMERA, res = mAppOpsManager.startOp(AppOpsManager::OP_CAMERA, if (res != AppOpsManager::MODE_ALLOWED) {

mAppOpsManager.finishOp(AppOpsManager::OP_CAMERA, mClientUid,

mAppOpsManager.stopWatchingMode(mOpsCallback); if (op != AppOpsManager::OP_CAMERA) { res = mAppOpsManager.checkOp(AppOpsManager::OP_CAMERA,

res == AppOpsManager::MODE_ALLOWED ? "ALLOWED" : res == AppOpsManager::MODE_IGNORED ? "IGNORED" : res == AppOpsManager::MODE_ERRORED ? "ERRORED" :

if (res != AppOpsManager::MODE_ALLOWED) {

./frameworks/av/services/camera/libcameraservice/CameraService.cpp #include <binder/AppOpsManager.h>

AppOpsManager mAppOpsManager;

./frameworks/av/services/camera/libcameraservice/CameraService.h

AppOpsManager.cpp \

./frameworks/native/libs/binder/Android.mk #include <binder/AppOpsManager.h> AppOpsManager::AppOpsManager() sp<IAppOpsService> AppOpsManager::getService() int32_t AppOpsManager::checkOp(int32_t op, int32_t uid, const String16& callingPackage) int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPackage) { int32_t AppOpsManager::startOp(int32_t op, int32_t uid, const String16& callingPackage) { void AppOpsManager::finishOp(int32_t op, int32_t uid, const String16& callingPackage) { void AppOpsManager::startWatchingMode(int32_t op, const String16& packageName, void AppOpsManager::stopWatchingMode(const sp<IAppOpsCallback>& callback) { ./frameworks/native/libs/binder/AppOpsManager.cpp class AppOpsManager

AppOpsManager();

./frameworks/native/include/binder/AppOpsManager.h Binary file ./frameworks/native/.git/index matches ./frameworks/native/.git/index import android.app.AppOpsManager;

List<AppOpsManager.PackageOps> getPackagesForOps(in int[] ops); List<AppOpsManager.PackageOps> getOpsForPackage(int uid, String packageName, in int[] ops);

./frameworks/base/core/java/com/android/internal/app/IAppOpsService.aidl import android.app.AppOpsManager;

AppOpsManager mAppOpsManager = null; int mReadOp = AppOpsManager.OP_NONE; int mWriteOp = AppOpsManager.OP_NONE;

if (enforceReadPermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) { if (enforceWritePermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) { if (enforceWritePermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) {

!= AppOpsManager.MODE_ALLOWED) { != AppOpsManager.MODE_ALLOWED) {

if (enforceWritePermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) { if (enforceWritePermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) {

if (enforceWritePermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) { if (enforceReadPermission(callingPkg, uri) != AppOpsManager.MODE_ALLOWED) {

if (mReadOp != AppOpsManager.OP_NONE) {

return mAppOpsManager.noteOp(mReadOp, Binder.getCallingUid(), callingPkg);

return AppOpsManager.MODE_ALLOWED; if (mWriteOp != AppOpsManager.OP_NONE) {

return mAppOpsManager.noteOp(mWriteOp, Binder.getCallingUid(), callingPkg);

return AppOpsManager.MODE_ALLOWED; mTransport.mAppOpsManager = (AppOpsManager)mContext.getSystemService(

public AppOpsManager getAppOpsManager() {

return mTransport.mAppOpsManager;

./frameworks/base/core/java/android/content/ContentProvider.java

  • of an assocated app op as per {@link android.app.AppOpsManager}.
  • of an assocated app op as per {@link android.app.AppOpsManager}.
  • {@link android.app.AppOpsManager} for tracking application operations
  • @see android.app.AppOpsManager

./frameworks/base/core/java/android/content/Context.java public class AppOpsManager {

public AppOpsManager(Context context, IAppOpsService service) { public List<AppOpsManager.PackageOps> getPackagesForOps(int[] ops) { public List<AppOpsManager.PackageOps> getOpsForPackage(int uid, String packageName, int[] ops) {

./frameworks/base/core/java/android/app/AppOpsManager.java

null /*permission*/, AppOpsManager.OP_NONE, false, true, userId);

./frameworks/base/core/java/android/app/ActivityManagerNative.java

return new AppOpsManager(ctx, service); Activity.RESULT_OK, null, null, null, AppOpsManager.OP_NONE, false, false, Activity.RESULT_OK, null, null, receiverPermission, AppOpsManager.OP_NONE, Activity.RESULT_OK, null, null, receiverPermission, AppOpsManager.OP_NONE, true, false,

sendOrderedBroadcast(intent, receiverPermission, AppOpsManager.OP_NONE,

AppOpsManager.OP_NONE, false, false, user.getIdentifier());

Activity.RESULT_OK, null, null, receiverPermission, AppOpsManager.OP_NONE, false, false,

AppOpsManager.OP_NONE, true, false, user.getIdentifier());

Activity.RESULT_OK, null, null, null, AppOpsManager.OP_NONE, false, true,

AppOpsManager.OP_NONE, true, true, getUserId());

Activity.RESULT_OK, null, null, null, AppOpsManager.OP_NONE, false, true, user.getIdentifier());

AppOpsManager.OP_NONE, true, true, user.getIdentifier());

./frameworks/base/core/java/android/app/ContextImpl.java parcelable AppOpsManager.PackageOps; parcelable AppOpsManager.OpEntry; ./frameworks/base/core/java/android/app/AppOpsManager.aidl import android.app.AppOpsManager;

setAppOps(AppOpsManager.OP_NONE, AppOpsManager.OP_WRITE_SETTINGS); if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SETTINGS, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

./frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java import android.app.AppOpsManager;

private final AppOpsManager mAppOps;

return (mAppOps.checkOpNoThrow(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg)

AppOpsManager.MODE_ALLOWED);

if (mAppOps.noteOpNoThrow(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg)

!= AppOpsManager.MODE_ALLOWED) {

mAppOps.setMode(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg,

enabled ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);

if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)

AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)

AppOpsManager.MODE_ALLOWED) {

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);

./frameworks/base/services/java/com/android/server/NotificationManagerService.java import android.app.AppOpsManager;

null, null, 0, null, null, null, AppOpsManager.OP_NONE,

null, 0, null, null, null, AppOpsManager.OP_NONE, false, false, -1, null, null, 0, null, null, null, AppOpsManager.OP_NONE, null, null, 0, null, null, null, AppOpsManager.OP_NONE,

AppOpsManager.OP_NONE, false, false, MY_PID, Process.SYSTEM_UID,

0, null, null, null, AppOpsManager.OP_NONE,

null, null, 0, null, null, null, AppOpsManager.OP_NONE, android.Manifest.permission.INTERACT_ACROSS_USERS, AppOpsManager.OP_NONE,

null, -1, -1, null, AppOpsManager.OP_NONE, receivers, null, 0,

AppOpsManager.OP_NONE, serialized, sticky, -1, uid, userId);

null, AppOpsManager.OP_NONE, false, false, MY_PID,

null, null, 0, null, null, null, AppOpsManager.OP_NONE, null, null, 0, null, null, null, AppOpsManager.OP_NONE,

}, 0, null, null, null, AppOpsManager.OP_NONE,

android.Manifest.permission.INTERACT_ACROSS_USERS, AppOpsManager.OP_NONE,

null, null, 0, null, null, null, AppOpsManager.OP_NONE, null, null, 0, null, null, null, AppOpsManager.OP_NONE, android.Manifest.permission.MANAGE_USERS, AppOpsManager.OP_NONE, android.Manifest.permission.RECEIVE_BOOT_COMPLETED, AppOpsManager.OP_NONE,

null, shutdownReceiver, 0, null, null, null, AppOpsManager.OP_NONE,

android.Manifest.permission.INTERACT_ACROSS_USERS, AppOpsManager.OP_NONE,

./frameworks/base/services/java/com/android/server/am/ActivityManagerService.java import android.app.AppOpsManager;

if (requiredPermission != null
appOp != AppOpsManager.OP_NONE) {

./frameworks/base/services/java/com/android/server/am/BroadcastRecord.java import android.app.AppOpsManager;

if (r.appOp != AppOpsManager.OP_NONE) {

if (mode != AppOpsManager.MODE_ALLOWED) { if (r.appOp != AppOpsManager.OP_NONE) {

if (mode != AppOpsManager.MODE_ALLOWED) {

./frameworks/base/services/java/com/android/server/am/BroadcastQueue.java import android.app.AppOpsManager;

private final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);

if (mAppOps.noteOp(AppOpsManager.OP_WRITE_CLIPBOARD, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) { if (mAppOps.checkOpNoThrow(AppOpsManager.OP_READ_CLIPBOARD, li.mUid,

li.mPackageName) == AppOpsManager.MODE_ALLOWED) {

if (mAppOps.noteOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(),

pkg) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(),

callingPackage) != AppOpsManager.MODE_ALLOWED) {

./frameworks/base/services/java/com/android/server/ClipboardService.java

0, null, null, null, android.app.AppOpsManager.OP_NONE,

android.app.AppOpsManager.OP_NONE, false, false, userId);

./frameworks/base/services/java/com/android/server/pm/PackageManagerService.java import android.app.AppOpsManager;

final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE); mAppOps.startWatchingMode(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, null,

new AppOpsManager.Callback() {

if (win.mAppOp != AppOpsManager.OP_NONE) {

!= AppOpsManager.MODE_ALLOWED) {

if (win.mAppOp != AppOpsManager.OP_NONE) {

if (win.mAppOp != AppOpsManager.OP_NONE) {

win.getOwningPackage()) == AppOpsManager.MODE_ALLOWED);

./frameworks/base/services/java/com/android/server/wm/WindowManagerService.java import android.app.AppOpsManager;

pw.print(" appop="); pw.println(AppOpsManager.opToName(mAppOp));

./frameworks/base/services/java/com/android/server/wm/WindowState.java import android.app.AppOpsManager;

private final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);

AppOpsManager.Callback callback = new AppOpsManager.Callback() { mAppOps.startWatchingMode(AppOpsManager.OP_COARSE_LOCATION, null, callback);

return AppOpsManager.OP_COARSE_LOCATION; return AppOpsManager.OP_FINE_LOCATION;

if (mAppOps.noteOpNoThrow(op, uid, packageName) != AppOpsManager.MODE_ALLOWED) { if (mAppOps.checkOp(op, uid, packageName) != AppOpsManager.MODE_ALLOWED) {

./frameworks/base/services/java/com/android/server/LocationManagerService.java import android.app.AppOpsManager;

private final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)mContext.getSystemService(Context.APP_OPS_SERVICE);

if (mAppOps.noteOpNoThrow(AppOpsManager.OP_FINE_LOCATION, state.mUid,

state.mPackageName) != AppOpsManager.MODE_ALLOWED) {

./frameworks/base/services/java/com/android/server/location/GeofenceManager.java import android.app.AppOpsManager;

mAppOpsService.startOperation(AppOpsManager.OP_GPS, uid, newWork.getName(i)); mAppOpsService.finishOperation(AppOpsManager.OP_GPS, uid, goneWork.getName(i));

./frameworks/base/services/java/com/android/server/location/GpsLocationProvider.java import android.app.AppOpsManager;

private final AppOpsManager mAppOps;

mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE); if (mAppOps.noteOp(AppOpsManager.OP_WIFI_SCAN, uid, callingPackage)

!= AppOpsManager.MODE_ALLOWED) {

./frameworks/base/services/java/com/android/server/wifi/WifiService.java import android.app.AppOpsManager;

mode = AppOpsManager.MODE_ALLOWED;

private ArrayList<AppOpsManager.OpEntry> collectOps(Ops pkgOps, int[] ops) {

ArrayList<AppOpsManager.OpEntry> resOps = null;

resOps = new ArrayList<AppOpsManager.OpEntry>();

resOps.add(new AppOpsManager.OpEntry(curOp.op, curOp.mode, curOp.time,

resOps = new ArrayList<AppOpsManager.OpEntry>();

resOps.add(new AppOpsManager.OpEntry(curOp.op, curOp.mode, curOp.time,

public List<AppOpsManager.PackageOps> getPackagesForOps(int[] ops) {

ArrayList<AppOpsManager.PackageOps> res = null;

ArrayList<AppOpsManager.OpEntry> resOps = collectOps(pkgOps, ops);

res = new ArrayList<AppOpsManager.PackageOps>();

AppOpsManager.PackageOps resPackage = new AppOpsManager.PackageOps(

public List<AppOpsManager.PackageOps> getOpsForPackage(int uid, String packageName,

ArrayList<AppOpsManager.OpEntry> resOps = collectOps(pkgOps, ops); ArrayList<AppOpsManager.PackageOps> res = new ArrayList<AppOpsManager.PackageOps>(); AppOpsManager.PackageOps resPackage = new AppOpsManager.PackageOps(

code = AppOpsManager.opToSwitch(code);

if (mode == AppOpsManager.MODE_ALLOWED) {

op = AppOpsManager.opToSwitch(op); if (op != AppOpsManager.OP_NONE) { Op op = getOpLocked(AppOpsManager.opToSwitch(code), uid, packageName, false);

return AppOpsManager.MODE_ALLOWED; return AppOpsManager.MODE_IGNORED;

final int switchCode = AppOpsManager.opToSwitch(code); if (switchOp.mode != AppOpsManager.MODE_ALLOWED) { return AppOpsManager.MODE_ALLOWED;

return AppOpsManager.MODE_IGNORED;

final int switchCode = AppOpsManager.opToSwitch(code); if (switchOp.mode != AppOpsManager.MODE_ALLOWED) { return AppOpsManager.MODE_ALLOWED;

if (op >= 0 && op < AppOpsManager._NUM_OP) {

List<AppOpsManager.PackageOps> allOps = getPackagesForOps(null);

AppOpsManager.PackageOps pkg = allOps.get(i); List<AppOpsManager.OpEntry> ops = pkg.getOps();

AppOpsManager.OpEntry op = ops.get(j); if (op.getMode() != AppOpsManager.MODE_ALLOWED) {

pw.print(" "); pw.print(AppOpsManager.opToName(op.op));

./frameworks/base/services/java/com/android/server/AppOpsService.java import android.app.AppOpsManager;

int mode = mAppOpsService.startOperation(AppOpsManager.OP_VIBRATE, vib.mUid, vib.mPackageName); if (mode != AppOpsManager.MODE_ALLOWED) {

if (mode == AppOpsManager.MODE_ERRORED) { mAppOpsService.finishOperation(AppOpsManager.OP_VIBRATE, mCurrentVibration.mUid,

./frameworks/base/services/java/com/android/server/VibratorService.java

android.app.AppOpsManager.OP_NONE, true, false, mUserId);

./frameworks/base/cmds/am/src/com/android/commands/am/Am.java Binary file ./frameworks/base/.git/index matches ./frameworks/base/.git/index import android.app.AppOpsManager;

outAppOp[0] = AppOpsManager.OP_NONE;

outAppOp[0] = AppOpsManager.OP_SYSTEM_ALERT_WINDOW;

./frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java