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
+}