add skeleton for CarServiceHelperService support
- CarServiceHelperService is system server side companion for car service
and it launches car service and provides ICarServiceHelper interface.
- Remove BootReceiver as CarServiceHelper is launching car service
bug: 62342376
Test: confirm boot-up
Change-Id: Ieae18dffe054eceb0e7840aba4e09769dae40687
diff --git a/service/src/com/android/car/ICarImpl.java b/service/src/com/android/car/ICarImpl.java
index 09e1226..f23f10c 100644
--- a/service/src/com/android/car/ICarImpl.java
+++ b/service/src/com/android/car/ICarImpl.java
@@ -26,7 +26,9 @@
import android.hardware.automotive.vehicle.V2_0.IVehicle;
import android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor;
import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
+import android.os.Binder;
import android.os.IBinder;
+import android.os.Process;
import android.util.Log;
import com.android.car.cluster.InstrumentClusterService;
@@ -35,6 +37,7 @@
import com.android.car.internal.FeatureUtil;
import com.android.car.pm.CarPackageManagerService;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.car.ICarServiceHelper;
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -82,6 +85,9 @@
@GuardedBy("this")
private CarTestService mCarTestService;
+ @GuardedBy("this")
+ private ICarServiceHelper mICarServiceHelper;
+
public ICarImpl(Context serviceContext, IVehicle vehicle, SystemInterface systemInterface,
CanBusErrorNotifier errorNotifier) {
mContext = serviceContext;
@@ -171,6 +177,17 @@
}
@Override
+ public void setCarServiceHelper(IBinder helper) {
+ int uid = Binder.getCallingUid();
+ if (uid != Process.SYSTEM_UID) {
+ throw new SecurityException("Only allowed from system");
+ }
+ synchronized (this) {
+ mICarServiceHelper = ICarServiceHelper.Stub.asInterface(helper);
+ }
+ }
+
+ @Override
public IBinder getCarService(String serviceName) {
switch (serviceName) {
case Car.AUDIO_SERVICE:
@@ -475,4 +492,4 @@
}
}
-}
\ No newline at end of file
+}