Snap for 10070964 from 2a4ed8a510ef2bdae93bb7075d1ef4ab78dd1a7f to udc-d1-release
Change-Id: Ib63c53bba95aa0a61411ddc77a630d480e8b06d6
diff --git a/generate_java_binder.cpp b/generate_java_binder.cpp
index 04add06..67bfcfa 100644
--- a/generate_java_binder.cpp
+++ b/generate_java_binder.cpp
@@ -472,30 +472,19 @@
// Visitor for the permission declared in the @EnforcePermission annotation.
class PermissionVisitor {
public:
- PermissionVisitor(CodeWriter* code, const AidlMethod& method) : code_(code), method_(method) {
- use_attribution_source_ = std::any_of(
- method_.GetArguments().begin(), method_.GetArguments().end(), [](const auto& arg) {
- return arg->GetType().GetName() == "android.content.AttributionSource";
- });
- }
+ PermissionVisitor(CodeWriter* code, const AidlMethod& method) : code_(code), method_(method) {}
~PermissionVisitor() {
code_->Dedent();
*code_ << "}\n";
}
- string Credentials() const {
- if (use_attribution_source_) {
- return "source";
- }
- return "getCallingPid(), getCallingUid()";
- }
+ string Credentials() const { return "getCallingPid(), getCallingUid()"; }
void Prologue() {
*code_ << "/** Helper method to enforce permissions for " << method_.GetName() << " */\n";
- *code_ << "protected void " << method_.GetName() << "_enforcePermission("
- << (use_attribution_source_ ? "android.content.AttributionSource source" : "")
- << ") throws SecurityException {\n";
+ *code_ << "protected void " << method_.GetName() << "_enforcePermission() "
+ << "throws SecurityException {\n";
code_->Indent();
}
@@ -537,7 +526,6 @@
private:
CodeWriter* code_;
const AidlMethod& method_;
- bool use_attribution_source_;
};
static void GeneratePermissionMethod(const AidlInterface& iface, const AidlMethod& method,
diff --git a/tests/golden_output/aidl-test-interface-permission-java-source/gen/android/aidl/tests/permission/platform/IProtected.java b/tests/golden_output/aidl-test-interface-permission-java-source/gen/android/aidl/tests/permission/platform/IProtected.java
index 954527f..aca8d07 100644
--- a/tests/golden_output/aidl-test-interface-permission-java-source/gen/android/aidl/tests/permission/platform/IProtected.java
+++ b/tests/golden_output/aidl-test-interface-permission-java-source/gen/android/aidl/tests/permission/platform/IProtected.java
@@ -139,8 +139,8 @@
static final int TRANSACTION_ProtectedWithSourceAttribution = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final String[] PERMISSIONS_ProtectedWithSourceAttribution = {android.Manifest.permission.INTERNET, android.Manifest.permission.VIBRATE};
/** Helper method to enforce permissions for ProtectedWithSourceAttribution */
- protected void ProtectedWithSourceAttribution_enforcePermission(android.content.AttributionSource source) throws SecurityException {
- mEnforcer.enforcePermissionAllOf(PERMISSIONS_ProtectedWithSourceAttribution, source);
+ protected void ProtectedWithSourceAttribution_enforcePermission() throws SecurityException {
+ mEnforcer.enforcePermissionAllOf(PERMISSIONS_ProtectedWithSourceAttribution, getCallingPid(), getCallingUid());
}
/** @hide */
public int getMaxTransactionId()
diff --git a/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java b/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java
deleted file mode 100644
index 7b6d96f..0000000
--- a/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * This file is auto-generated. DO NOT MODIFY.
- */
-package android.aidl.tests.permission.platform;
-public interface IProtected extends android.os.IInterface
-{
- /** Default implementation for IProtected. */
- public static class Default implements android.aidl.tests.permission.platform.IProtected
- {
- @Override public void ProtectedWithSourceAttribution(android.content.AttributionSource source) throws android.os.RemoteException
- {
- }
- @Override
- public android.os.IBinder asBinder() {
- return null;
- }
- }
- /** Local-side IPC implementation stub class. */
- public static abstract class Stub extends android.os.Binder implements android.aidl.tests.permission.platform.IProtected
- {
- /** Construct the stub at attach it to the interface. */
- public Stub()
- {
- this.attachInterface(this, DESCRIPTOR);
- }
- /**
- * Cast an IBinder object into an android.aidl.tests.permission.platform.IProtected interface,
- * generating a proxy if needed.
- */
- public static android.aidl.tests.permission.platform.IProtected asInterface(android.os.IBinder obj)
- {
- if ((obj==null)) {
- return null;
- }
- android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
- if (((iin!=null)&&(iin instanceof android.aidl.tests.permission.platform.IProtected))) {
- return ((android.aidl.tests.permission.platform.IProtected)iin);
- }
- return new android.aidl.tests.permission.platform.IProtected.Stub.Proxy(obj);
- }
- @Override public android.os.IBinder asBinder()
- {
- return this;
- }
- @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException
- {
- java.lang.String descriptor = DESCRIPTOR;
- if (code >= android.os.IBinder.FIRST_CALL_TRANSACTION && code <= android.os.IBinder.LAST_CALL_TRANSACTION) {
- data.enforceInterface(descriptor);
- }
- switch (code)
- {
- case INTERFACE_TRANSACTION:
- {
- reply.writeString(descriptor);
- return true;
- }
- }
- switch (code)
- {
- case TRANSACTION_ProtectedWithSourceAttribution:
- {
- android.content.AttributionSource _arg0;
- _arg0 = data.readTypedObject(android.content.AttributionSource.CREATOR);
- data.enforceNoDataAvail();
- if (((this.permissionCheckerWrapper(android.Manifest.permission.INTERNET, this.getCallingPid(), _arg0)&&this.permissionCheckerWrapper(android.Manifest.permission.VIBRATE, this.getCallingPid(), _arg0))!=true)) {
- throw new SecurityException("Access denied, requires: allOf = {android.Manifest.permission.INTERNET, android.Manifest.permission.VIBRATE}");
- }
- this.ProtectedWithSourceAttribution(_arg0);
- reply.writeNoException();
- break;
- }
- default:
- {
- return super.onTransact(code, data, reply, flags);
- }
- }
- return true;
- }
- private static class Proxy implements android.aidl.tests.permission.platform.IProtected
- {
- private android.os.IBinder mRemote;
- Proxy(android.os.IBinder remote)
- {
- mRemote = remote;
- }
- @Override public android.os.IBinder asBinder()
- {
- return mRemote;
- }
- public java.lang.String getInterfaceDescriptor()
- {
- return DESCRIPTOR;
- }
- @Override public void ProtectedWithSourceAttribution(android.content.AttributionSource source) throws android.os.RemoteException
- {
- android.os.Parcel _data = android.os.Parcel.obtain();
- android.os.Parcel _reply = android.os.Parcel.obtain();
- try {
- _data.writeInterfaceToken(DESCRIPTOR);
- _data.writeTypedObject(source, 0);
- boolean _status = mRemote.transact(Stub.TRANSACTION_ProtectedWithSourceAttribution, _data, _reply, 0);
- _reply.readException();
- }
- finally {
- _reply.recycle();
- _data.recycle();
- }
- }
- }
- private boolean permissionCheckerWrapper(
- String permission, int pid, android.content.AttributionSource attributionSource) {
- android.content.Context ctx =
- android.app.ActivityThread.currentActivityThread().getSystemContext();
- return (android.content.PermissionChecker.checkPermissionForDataDelivery(
- ctx, permission, pid, attributionSource, "" /*message*/) ==
- android.content.PermissionChecker.PERMISSION_GRANTED);
- }
- static final int TRANSACTION_ProtectedWithSourceAttribution = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
- }
- public static final java.lang.String DESCRIPTOR = "android$aidl$tests$permission$platform$IProtected".replace('$', '.');
- @android.annotation.EnforcePermission(allOf = {android.Manifest.permission.INTERNET, android.Manifest.permission.VIBRATE})
- public void ProtectedWithSourceAttribution(android.content.AttributionSource source) throws android.os.RemoteException;
-}
diff --git a/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java.d b/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java.d
deleted file mode 100644
index 51e500e..0000000
--- a/tests/golden_output/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java.d
+++ /dev/null
@@ -1,3 +0,0 @@
-out/soong/.intermediates/system/tools/aidl/aidl-test-interface-platform-java-source/gen/android/aidl/tests/permission/platform/IProtected.java : \
- system/tools/aidl/tests/android/aidl/tests/permission/platform/IProtected.aidl \
- frameworks/base/core/java/android/content/AttributionSource.aidl