Introduce permissions for projection app

This CL introduces two permissions:
  - to listen to projection status (system level) this permission could
be used by home launcher app, GSA, dialer to know the projection status;
  - to protect projection app by allowing only framework to bind to
projection service

Bug: 123962276
Test: m -j
Change-Id: I499d2b224d96cb33d45158b65b84bf8ccd1079cd
diff --git a/service/AndroidManifest.xml b/service/AndroidManifest.xml
index 9086a4a..6b8da47 100644
--- a/service/AndroidManifest.xml
+++ b/service/AndroidManifest.xml
@@ -119,6 +119,16 @@
         android:label="@string/car_permission_label_projection"
         android:description="@string/car_permission_desc_projection" />
     <permission
+            android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS"
+            android:protectionLevel="system|signature"
+            android:label="@string/car_permission_label_access_projection_status"
+            android:description="@string/car_permission_desc_access_projection_status" />
+    <permission
+            android:name="android.car.permission.BIND_PROJECTION_SERVICE"
+            android:protectionLevel="signature"
+            android:label="@string/car_permission_label_bind_projection_service"
+            android:description="@string/car_permission_desc_bind_projection_service" />
+    <permission
         android:name="android.car.permission.CAR_MOCK_VEHICLE_HAL"
         android:protectionLevel="system|signature"
         android:label="@string/car_permission_label_mock_vehicle_hal"
diff --git a/service/res/values/strings.xml b/service/res/values/strings.xml
index 0855727..0f84977 100644
--- a/service/res/values/strings.xml
+++ b/service/res/values/strings.xml
@@ -60,12 +60,20 @@
     <string name="car_permission_desc_radio">Access your car\u2019s radio.</string>
     <!-- Permission text: apps can control car-projection [CHAR LIMIT=NONE] -->
     <string name="car_permission_label_projection">Car Projection</string>
+    <!-- Permission text: apps can control car-projection [CHAR LIMIT=NONE] -->
+    <string name="car_permission_desc_projection">Allows an app to project an interface from a phone on the car\u2019s display.</string>
+    <!-- Permission text: apps can listen car-projection status[CHAR LIMIT=NONE] -->
+    <string name="car_permission_label_access_projection_status">Access projection status</string>
+    <!-- Permission text: apps can listen car-projection status[CHAR LIMIT=NONE] -->
+    <string name="car_permission_desc_access_projection_status">Allows an app to get the status of other apps projecting to the car\u2019s display.</string>
+    <!-- Permission text: allows framework to bind to the services in projection apps[CHAR LIMIT=NONE] -->
+    <string name="car_permission_label_bind_projection_service">Bind to a projection service</string>
+    <!-- Permission text: allows framework to bind to the services in projection apps[CHAR LIMIT=NONE] -->
+    <string name="car_permission_desc_bind_projection_service">Allows the holder to bind to the top-level interface of a projection service. Should never be needed for normal apps."</string>
     <!-- Permission text: apps can control car-audio-volume [CHAR LIMIT=NONE] -->
     <string name="car_permission_label_audio_volume">Car Audio Volume</string>
     <!-- Permission text: apps can control car-audio-settings [CHAR LIMIT=NONE] -->
     <string name="car_permission_label_audio_settings">Car Audio Settings</string>
-    <!-- Permission text: apps can control car-projection [CHAR LIMIT=NONE] -->
-    <string name="car_permission_desc_projection">Project phone interface on car display.</string>
     <string name="car_permission_label_mock_vehicle_hal">Emulate vehicle HAL</string>
     <!-- Permission text: can emulate information from your car [CHAR LIMIT=NONE] -->
     <string name="car_permission_desc_mock_vehicle_hal">Emulate your car\u2019s vehicle HAL for internal