Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ java_defaults { "core/java/android/app/IInstrumentationWatcher.aidl", "core/java/android/app/INotificationManager.aidl", "core/java/android/app/IProcessObserver.aidl", "core/java/android/app/IRequestFinishCallback.aidl", "core/java/android/app/ISearchManager.aidl", "core/java/android/app/ISearchManagerCallback.aidl", "core/java/android/app/IServiceConnection.aidl", Loading cmds/statsd/src/atoms.proto +15 −15 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ import "frameworks/base/core/proto/android/server/location/enums.proto"; import "frameworks/base/core/proto/android/service/procstats_enum.proto"; import "frameworks/base/core/proto/android/service/usb.proto"; import "frameworks/base/core/proto/android/stats/connectivity/network_stack.proto"; import "frameworks/base/core/proto/android/stats/connectivity/resolv_stats.proto"; import "frameworks/base/core/proto/android/stats/dnsresolver/dns_resolver.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy_enums.proto"; import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; Loading Loading @@ -5109,36 +5109,36 @@ message AppCompacted { * Logs a DNS lookup operation initiated by the system resolver on behalf of an application * invoking native APIs such as getaddrinfo() or Java APIs such as Network#getAllByName(). * * The top-level message represents the entire lookup operation, which may result one or more * queries to the recursive DNS resolvers. Those are individually logged in DnsQueryEvent to * enable computing error rates and network latency and timeouts broken up by query type, * transport, network interface, etc. * The NetworkDnsEventReported message represents the entire lookup operation, which may * result one or more queries to the recursive DNS resolvers. Those are individually logged * in DnsQueryEvents to enable computing error rates and network latency and timeouts * broken up by query type, transport, network interface, etc. */ message NetworkDnsEventReported { optional android.stats.dnsresolver.EventType event_type = 1; optional android.stats.connectivity.EventType event_type = 1; optional android.stats.connectivity.ReturnCode return_code = 2; optional android.stats.dnsresolver.ReturnCode return_code = 2; // The latency in microseconds of the entire DNS lookup operation. optional int32 latency_micros = 3; optional android.stats.connectivity.DnsQueryEventRe dns_query_event_re = 4 [(log_mode) = MODE_BYTES]; // Only valid for event_type = EVENT_GETADDRINFO. optional int32 hints_ai_flags = 4; // ResNSend flags defined in android/multinetwork.h optional int32 flags = 5; // Flags passed to android_res_nsend() defined in multinetwork.h // Only valid for event_type = EVENT_RESNSEND. optional int32 res_nsend_flags = 5; optional android.net.NetworkCapabilitiesProto.Transport network_type = 6; optional android.stats.dnsresolver.Transport network_type = 6; // The DNS over TLS mode on a specific netId. optional android.stats.connectivity.PrivateDnsModes private_dns_modes = 7; optional android.stats.dnsresolver.PrivateDnsModes private_dns_modes = 7; // Additional pass-through fields opaque to statsd. // The DNS resolver Mainline module can add new fields here without requiring an OS update. optional android.stats.connectivity.DnsCallEvent dns_call_event = 8 [(log_mode) = MODE_BYTES]; optional android.stats.dnsresolver.DnsQueryEvents dns_query_events = 8 [(log_mode) = MODE_BYTES]; } /** * Logs when a data stall event occurs. * Loading core/java/android/app/Activity.java +19 −1 Original line number Diff line number Diff line Loading @@ -3666,7 +3666,25 @@ public class Activity extends ContextThemeWrapper FragmentManager fragmentManager = mFragments.getFragmentManager(); if (fragmentManager.isStateSaved() || !fragmentManager.popBackStackImmediate()) { if (!fragmentManager.isStateSaved() && fragmentManager.popBackStackImmediate()) { return; } if (!isTaskRoot()) { // If the activity is not the root of the task, allow finish to proceed normally. finishAfterTransition(); return; } try { // Inform activity task manager that the activity received a back press // while at the root of the task. This call allows ActivityTaskManager // to intercept or defer finishing. ActivityTaskManager.getService().onBackPressedOnTaskRoot(mToken, new IRequestFinishCallback.Stub() { public void requestFinish() { finishAfterTransition(); } }); } catch (RemoteException e) { finishAfterTransition(); } } Loading core/java/android/app/ActivityManager.java +8 −12 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ import android.os.ServiceManager; import android.os.SystemProperties; import android.os.UserHandle; import android.os.WorkSource; import android.permission.PermissionManager; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.util.Singleton; Loading Loading @@ -3739,7 +3738,6 @@ public class ActivityManager { } // Isolated processes don't get any permissions. if (UserHandle.isIsolated(uid)) { PermissionManager.addPermissionDenialHint("uid " + uid + " is isolated"); return PackageManager.PERMISSION_DENIED; } // If there is a uid that owns whatever is being accessed, it has Loading @@ -3755,26 +3753,24 @@ public class ActivityManager { Slog.w(TAG, "Permission denied: checkComponentPermission() owningUid=" + owningUid, here); */ PermissionManager.addPermissionDenialHint( "Target is not exported. owningUid=" + owningUid); return PackageManager.PERMISSION_DENIED; } if (permission == null) { return PackageManager.PERMISSION_GRANTED; } return checkUidPermission(permission, uid); try { return AppGlobals.getPackageManager() .checkUidPermission(permission, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** @hide */ public static int checkUidPermission(String permission, int uid) { try { List<String> hints = PermissionManager.getPermissionDenialHints(); if (hints == null) { return AppGlobals.getPackageManager().checkUidPermission(permission, uid); } else { return AppGlobals.getPackageManager() .checkUidPermissionWithDenialHintForwarding(permission, uid, hints); } .checkUidPermission(permission, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/app/ContextImpl.java +19 −45 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.permission.PermissionManager; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; Loading Loading @@ -99,7 +98,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.nio.ByteOrder; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; Loading Loading @@ -1830,17 +1828,11 @@ class ContextImpl extends Context { } Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold " + permission); PermissionManager.addPermissionDenialHint("Missing ActivityManager"); return PackageManager.PERMISSION_DENIED; } try { List<String> hints = PermissionManager.getPermissionDenialHints(); if (hints == null) { return am.checkPermission(permission, pid, uid); } else { return am.checkPermissionWithDenialHintForwarding(permission, pid, uid, hints); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -1897,61 +1889,43 @@ class ContextImpl extends Context { String permission, int resultOfCheck, boolean selfToo, int uid, String message) { if (resultOfCheck != PackageManager.PERMISSION_GRANTED) { List<String> hints = PermissionManager.getPermissionDenialHints(); throw new SecurityException( (message != null ? (message + ": ") : "") + (selfToo ? "Neither user " + uid + " nor current process has " : "uid " + uid + " does not have ") + permission + "." + (hints == null ? "" : " Hints: " + hints)); : "uid " + uid + " does not have ") + permission + "."); } } @Override public void enforcePermission( String permission, int pid, int uid, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, uid); try { enforce(permission, checkPermission(permission, pid, uid), false, uid, message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override public void enforceCallingPermission(String permission, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, Binder.getCallingUid()); try { enforce(permission, checkCallingPermission(permission), false, Binder.getCallingUid(), message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override public void enforceCallingOrSelfPermission( String permission, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, Binder.getCallingUid()); try { enforce(permission, checkCallingOrSelfPermission(permission), true, Binder.getCallingUid(), message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override Loading Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ java_defaults { "core/java/android/app/IInstrumentationWatcher.aidl", "core/java/android/app/INotificationManager.aidl", "core/java/android/app/IProcessObserver.aidl", "core/java/android/app/IRequestFinishCallback.aidl", "core/java/android/app/ISearchManager.aidl", "core/java/android/app/ISearchManagerCallback.aidl", "core/java/android/app/IServiceConnection.aidl", Loading
cmds/statsd/src/atoms.proto +15 −15 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ import "frameworks/base/core/proto/android/server/location/enums.proto"; import "frameworks/base/core/proto/android/service/procstats_enum.proto"; import "frameworks/base/core/proto/android/service/usb.proto"; import "frameworks/base/core/proto/android/stats/connectivity/network_stack.proto"; import "frameworks/base/core/proto/android/stats/connectivity/resolv_stats.proto"; import "frameworks/base/core/proto/android/stats/dnsresolver/dns_resolver.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy_enums.proto"; import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; Loading Loading @@ -5109,36 +5109,36 @@ message AppCompacted { * Logs a DNS lookup operation initiated by the system resolver on behalf of an application * invoking native APIs such as getaddrinfo() or Java APIs such as Network#getAllByName(). * * The top-level message represents the entire lookup operation, which may result one or more * queries to the recursive DNS resolvers. Those are individually logged in DnsQueryEvent to * enable computing error rates and network latency and timeouts broken up by query type, * transport, network interface, etc. * The NetworkDnsEventReported message represents the entire lookup operation, which may * result one or more queries to the recursive DNS resolvers. Those are individually logged * in DnsQueryEvents to enable computing error rates and network latency and timeouts * broken up by query type, transport, network interface, etc. */ message NetworkDnsEventReported { optional android.stats.dnsresolver.EventType event_type = 1; optional android.stats.connectivity.EventType event_type = 1; optional android.stats.connectivity.ReturnCode return_code = 2; optional android.stats.dnsresolver.ReturnCode return_code = 2; // The latency in microseconds of the entire DNS lookup operation. optional int32 latency_micros = 3; optional android.stats.connectivity.DnsQueryEventRe dns_query_event_re = 4 [(log_mode) = MODE_BYTES]; // Only valid for event_type = EVENT_GETADDRINFO. optional int32 hints_ai_flags = 4; // ResNSend flags defined in android/multinetwork.h optional int32 flags = 5; // Flags passed to android_res_nsend() defined in multinetwork.h // Only valid for event_type = EVENT_RESNSEND. optional int32 res_nsend_flags = 5; optional android.net.NetworkCapabilitiesProto.Transport network_type = 6; optional android.stats.dnsresolver.Transport network_type = 6; // The DNS over TLS mode on a specific netId. optional android.stats.connectivity.PrivateDnsModes private_dns_modes = 7; optional android.stats.dnsresolver.PrivateDnsModes private_dns_modes = 7; // Additional pass-through fields opaque to statsd. // The DNS resolver Mainline module can add new fields here without requiring an OS update. optional android.stats.connectivity.DnsCallEvent dns_call_event = 8 [(log_mode) = MODE_BYTES]; optional android.stats.dnsresolver.DnsQueryEvents dns_query_events = 8 [(log_mode) = MODE_BYTES]; } /** * Logs when a data stall event occurs. * Loading
core/java/android/app/Activity.java +19 −1 Original line number Diff line number Diff line Loading @@ -3666,7 +3666,25 @@ public class Activity extends ContextThemeWrapper FragmentManager fragmentManager = mFragments.getFragmentManager(); if (fragmentManager.isStateSaved() || !fragmentManager.popBackStackImmediate()) { if (!fragmentManager.isStateSaved() && fragmentManager.popBackStackImmediate()) { return; } if (!isTaskRoot()) { // If the activity is not the root of the task, allow finish to proceed normally. finishAfterTransition(); return; } try { // Inform activity task manager that the activity received a back press // while at the root of the task. This call allows ActivityTaskManager // to intercept or defer finishing. ActivityTaskManager.getService().onBackPressedOnTaskRoot(mToken, new IRequestFinishCallback.Stub() { public void requestFinish() { finishAfterTransition(); } }); } catch (RemoteException e) { finishAfterTransition(); } } Loading
core/java/android/app/ActivityManager.java +8 −12 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ import android.os.ServiceManager; import android.os.SystemProperties; import android.os.UserHandle; import android.os.WorkSource; import android.permission.PermissionManager; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.util.Singleton; Loading Loading @@ -3739,7 +3738,6 @@ public class ActivityManager { } // Isolated processes don't get any permissions. if (UserHandle.isIsolated(uid)) { PermissionManager.addPermissionDenialHint("uid " + uid + " is isolated"); return PackageManager.PERMISSION_DENIED; } // If there is a uid that owns whatever is being accessed, it has Loading @@ -3755,26 +3753,24 @@ public class ActivityManager { Slog.w(TAG, "Permission denied: checkComponentPermission() owningUid=" + owningUid, here); */ PermissionManager.addPermissionDenialHint( "Target is not exported. owningUid=" + owningUid); return PackageManager.PERMISSION_DENIED; } if (permission == null) { return PackageManager.PERMISSION_GRANTED; } return checkUidPermission(permission, uid); try { return AppGlobals.getPackageManager() .checkUidPermission(permission, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** @hide */ public static int checkUidPermission(String permission, int uid) { try { List<String> hints = PermissionManager.getPermissionDenialHints(); if (hints == null) { return AppGlobals.getPackageManager().checkUidPermission(permission, uid); } else { return AppGlobals.getPackageManager() .checkUidPermissionWithDenialHintForwarding(permission, uid, hints); } .checkUidPermission(permission, uid); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/app/ContextImpl.java +19 −45 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.permission.PermissionManager; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; Loading Loading @@ -99,7 +98,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.nio.ByteOrder; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; Loading Loading @@ -1830,17 +1828,11 @@ class ContextImpl extends Context { } Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold " + permission); PermissionManager.addPermissionDenialHint("Missing ActivityManager"); return PackageManager.PERMISSION_DENIED; } try { List<String> hints = PermissionManager.getPermissionDenialHints(); if (hints == null) { return am.checkPermission(permission, pid, uid); } else { return am.checkPermissionWithDenialHintForwarding(permission, pid, uid, hints); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -1897,61 +1889,43 @@ class ContextImpl extends Context { String permission, int resultOfCheck, boolean selfToo, int uid, String message) { if (resultOfCheck != PackageManager.PERMISSION_GRANTED) { List<String> hints = PermissionManager.getPermissionDenialHints(); throw new SecurityException( (message != null ? (message + ": ") : "") + (selfToo ? "Neither user " + uid + " nor current process has " : "uid " + uid + " does not have ") + permission + "." + (hints == null ? "" : " Hints: " + hints)); : "uid " + uid + " does not have ") + permission + "."); } } @Override public void enforcePermission( String permission, int pid, int uid, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, uid); try { enforce(permission, checkPermission(permission, pid, uid), false, uid, message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override public void enforceCallingPermission(String permission, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, Binder.getCallingUid()); try { enforce(permission, checkCallingPermission(permission), false, Binder.getCallingUid(), message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override public void enforceCallingOrSelfPermission( String permission, String message) { List<String> prev = PermissionManager.collectPermissionDenialHints(this, Binder.getCallingUid()); try { enforce(permission, checkCallingOrSelfPermission(permission), true, Binder.getCallingUid(), message); } finally { PermissionManager.resetPermissionDenialHints(prev); } } @Override Loading