Transition SerialManager to @EnforcePermission

Use the new @EnforcePermission annotation for SerialService.

Test: Manually inspect ISerialManager.java, the permission checks are
      correctly generated.
Test: Run SerialChat app as regular app, SecurityException triggered
      when launching the app.
Test: Run SerialChat as priv-app. Access is granted, the app executes
      normally.
Bug: 197828948
Change-Id: Ide1d2809f2226f7cd84efa0d364dc78da726f294
This commit is contained in:
Thiébaud Weksteen
2022-01-10 10:16:06 +11:00
parent c9d4f279e3
commit c4895c4aa6
2 changed files with 5 additions and 3 deletions

View File

@@ -22,8 +22,10 @@ import android.os.ParcelFileDescriptor;
interface ISerialManager
{
/* Returns a list of all available serial ports */
@EnforcePermission("SERIAL_PORT")
String[] getSerialPorts();
/* Returns a file descriptor for the serial port. */
@EnforcePermission("SERIAL_PORT")
ParcelFileDescriptor openSerialPort(String name);
}

View File

@@ -16,6 +16,7 @@
package com.android.server;
import android.annotation.EnforcePermission;
import android.content.Context;
import android.hardware.ISerialManager;
import android.os.ParcelFileDescriptor;
@@ -34,9 +35,8 @@ public class SerialService extends ISerialManager.Stub {
com.android.internal.R.array.config_serialPorts);
}
@EnforcePermission(android.Manifest.permission.SERIAL_PORT)
public String[] getSerialPorts() {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.SERIAL_PORT, null);
ArrayList<String> ports = new ArrayList<String>();
for (int i = 0; i < mSerialPorts.length; i++) {
String path = mSerialPorts[i];
@@ -49,8 +49,8 @@ public class SerialService extends ISerialManager.Stub {
return result;
}
@EnforcePermission(android.Manifest.permission.SERIAL_PORT)
public ParcelFileDescriptor openSerialPort(String path) {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.SERIAL_PORT, null);
for (int i = 0; i < mSerialPorts.length; i++) {
if (mSerialPorts[i].equals(path)) {
return native_open(path);