Merge "MidiService: protect private service info" into sc-dev am: ca7c3b754e am: 4e5c899e62
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14341823 Change-Id: I9c55d69ec17b3b005239890511c83c468e292e78
This commit is contained in:
@@ -43,6 +43,7 @@ import android.os.IBinder;
|
|||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.util.EventLog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.content.PackageMonitor;
|
import com.android.internal.content.PackageMonitor;
|
||||||
@@ -736,13 +737,19 @@ public class MidiService extends IMidiManager.Stub {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MidiDeviceInfo getServiceDeviceInfo(String packageName, String className) {
|
public MidiDeviceInfo getServiceDeviceInfo(String packageName, String className) {
|
||||||
|
int uid = Binder.getCallingUid();
|
||||||
synchronized (mDevicesByInfo) {
|
synchronized (mDevicesByInfo) {
|
||||||
for (Device device : mDevicesByInfo.values()) {
|
for (Device device : mDevicesByInfo.values()) {
|
||||||
ServiceInfo serviceInfo = device.getServiceInfo();
|
ServiceInfo serviceInfo = device.getServiceInfo();
|
||||||
if (serviceInfo != null &&
|
if (serviceInfo != null &&
|
||||||
packageName.equals(serviceInfo.packageName) &&
|
packageName.equals(serviceInfo.packageName) &&
|
||||||
className.equals(serviceInfo.name)) {
|
className.equals(serviceInfo.name)) {
|
||||||
|
if (device.isUidAllowed(uid)) {
|
||||||
return device.getDeviceInfo();
|
return device.getDeviceInfo();
|
||||||
|
} else {
|
||||||
|
EventLog.writeEvent(0x534e4554, "185796676", -1, "");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user