Add annotations for car properties

Add RequiresPermission annotations for car properties.

Bug: 132657680
Test: build and unit tests
Change-Id: Ib8bc2a83d1b89eb4079d70868635c65a6c237492
diff --git a/car-lib/api/current.txt b/car-lib/api/current.txt
index 404350c..b091209 100644
--- a/car-lib/api/current.txt
+++ b/car-lib/api/current.txt
@@ -151,133 +151,133 @@
   public final class VehiclePropertyIds {
     ctor public VehiclePropertyIds();
     method public static String toString(int);
-    field public static final int ABS_ACTIVE = 287310858; // 0x1120040a
-    field public static final int AP_POWER_BOOTUP_REASON = 289409538; // 0x11400a02
-    field public static final int AP_POWER_STATE_REPORT = 289475073; // 0x11410a01
-    field public static final int AP_POWER_STATE_REQ = 289475072; // 0x11410a00
-    field public static final int CABIN_LIGHTS_STATE = 289410817; // 0x11400f01
-    field public static final int CABIN_LIGHTS_SWITCH = 289410818; // 0x11400f02
-    field public static final int CURRENT_GEAR = 289408001; // 0x11400401
-    field public static final int DISPLAY_BRIGHTNESS = 289409539; // 0x11400a03
-    field public static final int DISTANCE_DISPLAY_UNITS = 289408512; // 0x11400600
-    field public static final int DOOR_LOCK = 371198722; // 0x16200b02
-    field public static final int DOOR_MOVE = 373295873; // 0x16400b01
-    field public static final int DOOR_POS = 373295872; // 0x16400b00
-    field public static final int ENGINE_COOLANT_TEMP = 291504897; // 0x11600301
-    field public static final int ENGINE_OIL_LEVEL = 289407747; // 0x11400303
-    field public static final int ENGINE_OIL_TEMP = 291504900; // 0x11600304
-    field public static final int ENGINE_RPM = 291504901; // 0x11600305
-    field public static final int ENV_OUTSIDE_TEMPERATURE = 291505923; // 0x11600703
-    field public static final int EV_BATTERY_DISPLAY_UNITS = 289408515; // 0x11400603
-    field public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908; // 0x1160030c
-    field public static final int EV_BATTERY_LEVEL = 291504905; // 0x11600309
-    field public static final int EV_CHARGE_PORT_CONNECTED = 287310603; // 0x1120030b
-    field public static final int EV_CHARGE_PORT_OPEN = 287310602; // 0x1120030a
-    field public static final int FOG_LIGHTS_STATE = 289410562; // 0x11400e02
-    field public static final int FOG_LIGHTS_SWITCH = 289410578; // 0x11400e12
-    field public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364; // 0x11200604
-    field public static final int FUEL_DOOR_OPEN = 287310600; // 0x11200308
-    field public static final int FUEL_LEVEL = 291504903; // 0x11600307
-    field public static final int FUEL_LEVEL_LOW = 287310853; // 0x11200405
-    field public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513; // 0x11400601
-    field public static final int GEAR_SELECTION = 289408000; // 0x11400400
-    field public static final int HAZARD_LIGHTS_STATE = 289410563; // 0x11400e03
-    field public static final int HAZARD_LIGHTS_SWITCH = 289410579; // 0x11400e13
-    field public static final int HEADLIGHTS_STATE = 289410560; // 0x11400e00
-    field public static final int HEADLIGHTS_SWITCH = 289410576; // 0x11400e10
-    field public static final int HIGH_BEAM_LIGHTS_STATE = 289410561; // 0x11400e01
-    field public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577; // 0x11400e11
-    field public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135; // 0x1540050f
-    field public static final int HVAC_AC_ON = 354419973; // 0x15200505
-    field public static final int HVAC_AUTO_ON = 354419978; // 0x1520050a
-    field public static final int HVAC_AUTO_RECIRC_ON = 354419986; // 0x15200512
-    field public static final int HVAC_DEFROSTER = 320865540; // 0x13200504
-    field public static final int HVAC_DUAL_ON = 354419977; // 0x15200509
-    field public static final int HVAC_FAN_DIRECTION = 356517121; // 0x15400501
-    field public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673; // 0x15410511
-    field public static final int HVAC_FAN_SPEED = 356517120; // 0x15400500
-    field public static final int HVAC_MAX_AC_ON = 354419974; // 0x15200506
-    field public static final int HVAC_MAX_DEFROST_ON = 354419975; // 0x15200507
-    field public static final int HVAC_POWER_ON = 354419984; // 0x15200510
-    field public static final int HVAC_RECIRC_ON = 354419976; // 0x15200508
-    field public static final int HVAC_SEAT_TEMPERATURE = 356517131; // 0x1540050b
-    field public static final int HVAC_SEAT_VENTILATION = 356517139; // 0x15400513
-    field public static final int HVAC_SIDE_MIRROR_HEAT = 339739916; // 0x1440050c
-    field public static final int HVAC_STEERING_WHEEL_HEAT = 289408269; // 0x1140050d
-    field public static final int HVAC_TEMPERATURE_CURRENT = 358614274; // 0x15600502
-    field public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270; // 0x1140050e
-    field public static final int HVAC_TEMPERATURE_SET = 358614275; // 0x15600503
+    field @RequiresPermission("android.car.permission.CAR_DYNAMICS_STATE") public static final int ABS_ACTIVE = 287310858; // 0x1120040a
+    field @RequiresPermission("android.car.permission.CAR_POWER") public static final int AP_POWER_BOOTUP_REASON = 289409538; // 0x11400a02
+    field @RequiresPermission("android.car.permission.CAR_POWER") public static final int AP_POWER_STATE_REPORT = 289475073; // 0x11410a01
+    field @RequiresPermission("android.car.permission.CAR_POWER") public static final int AP_POWER_STATE_REQ = 289475072; // 0x11410a00
+    field @RequiresPermission(android.car.Car.PERMISSION_READ_INTERIOR_LIGHTS) public static final int CABIN_LIGHTS_STATE = 289410817; // 0x11400f01
+    field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) public static final int CABIN_LIGHTS_SWITCH = 289410818; // 0x11400f02
+    field @RequiresPermission(android.car.Car.PERMISSION_POWERTRAIN) public static final int CURRENT_GEAR = 289408001; // 0x11400401
+    field @RequiresPermission("android.car.permission.CAR_POWER") public static final int DISPLAY_BRIGHTNESS = 289409539; // 0x11400a03
+    field @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_DISPLAY_UNITS)) public static final int DISTANCE_DISPLAY_UNITS = 289408512; // 0x11400600
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_DOORS") public static final int DOOR_LOCK = 371198722; // 0x16200b02
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_DOORS") public static final int DOOR_MOVE = 373295873; // 0x16400b01
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_DOORS") public static final int DOOR_POS = 373295872; // 0x16400b00
+    field @RequiresPermission("android.car.permission.CAR_ENGINE_DETAILED") public static final int ENGINE_COOLANT_TEMP = 291504897; // 0x11600301
+    field @RequiresPermission("android.car.permission.CAR_ENGINE_DETAILED") public static final int ENGINE_OIL_LEVEL = 289407747; // 0x11400303
+    field @RequiresPermission("android.car.permission.CAR_ENGINE_DETAILED") public static final int ENGINE_OIL_TEMP = 291504900; // 0x11600304
+    field @RequiresPermission("android.car.permission.CAR_ENGINE_DETAILED") public static final int ENGINE_RPM = 291504901; // 0x11600305
+    field @RequiresPermission(android.car.Car.PERMISSION_EXTERIOR_ENVIRONMENT) public static final int ENV_OUTSIDE_TEMPERATURE = 291505923; // 0x11600703
+    field @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_DISPLAY_UNITS)) public static final int EV_BATTERY_DISPLAY_UNITS = 289408515; // 0x11400603
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY) public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908; // 0x1160030c
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY) public static final int EV_BATTERY_LEVEL = 291504905; // 0x11600309
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY_PORTS) public static final int EV_CHARGE_PORT_CONNECTED = 287310603; // 0x1120030b
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY_PORTS) public static final int EV_CHARGE_PORT_OPEN = 287310602; // 0x1120030a
+    field @RequiresPermission("android.car.permission.CAR_EXTERIOR_LIGHTS") public static final int FOG_LIGHTS_STATE = 289410562; // 0x11400e02
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS") public static final int FOG_LIGHTS_SWITCH = 289410578; // 0x11400e12
+    field @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_DISPLAY_UNITS)) public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364; // 0x11200604
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY_PORTS) public static final int FUEL_DOOR_OPEN = 287310600; // 0x11200308
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY) public static final int FUEL_LEVEL = 291504903; // 0x11600307
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY) public static final int FUEL_LEVEL_LOW = 287310853; // 0x11200405
+    field @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_DISPLAY_UNITS)) public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513; // 0x11400601
+    field @RequiresPermission(android.car.Car.PERMISSION_POWERTRAIN) public static final int GEAR_SELECTION = 289408000; // 0x11400400
+    field @RequiresPermission("android.car.permission.CAR_EXTERIOR_LIGHTS") public static final int HAZARD_LIGHTS_STATE = 289410563; // 0x11400e03
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS") public static final int HAZARD_LIGHTS_SWITCH = 289410579; // 0x11400e13
+    field @RequiresPermission("android.car.permission.CAR_EXTERIOR_LIGHTS") public static final int HEADLIGHTS_STATE = 289410560; // 0x11400e00
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS") public static final int HEADLIGHTS_SWITCH = 289410576; // 0x11400e10
+    field @RequiresPermission("android.car.permission.CAR_EXTERIOR_LIGHTS") public static final int HIGH_BEAM_LIGHTS_STATE = 289410561; // 0x11400e01
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS") public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577; // 0x11400e11
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135; // 0x1540050f
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_AC_ON = 354419973; // 0x15200505
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_AUTO_ON = 354419978; // 0x1520050a
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_AUTO_RECIRC_ON = 354419986; // 0x15200512
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_DEFROSTER = 320865540; // 0x13200504
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_DUAL_ON = 354419977; // 0x15200509
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_FAN_DIRECTION = 356517121; // 0x15400501
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673; // 0x15410511
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_FAN_SPEED = 356517120; // 0x15400500
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_MAX_AC_ON = 354419974; // 0x15200506
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_MAX_DEFROST_ON = 354419975; // 0x15200507
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_POWER_ON = 354419984; // 0x15200510
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_RECIRC_ON = 354419976; // 0x15200508
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_SEAT_TEMPERATURE = 356517131; // 0x1540050b
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_SEAT_VENTILATION = 356517139; // 0x15400513
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_SIDE_MIRROR_HEAT = 339739916; // 0x1440050c
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_STEERING_WHEEL_HEAT = 289408269; // 0x1140050d
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_TEMPERATURE_CURRENT = 358614274; // 0x15600502
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270; // 0x1140050e
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_CLIMATE") public static final int HVAC_TEMPERATURE_SET = 358614275; // 0x15600503
     field public static final int HW_KEY_INPUT = 289475088; // 0x11410a10
-    field public static final int IGNITION_STATE = 289408009; // 0x11400409
-    field public static final int INFO_DRIVER_SEAT = 356516106; // 0x1540010a
-    field public static final int INFO_EV_BATTERY_CAPACITY = 291504390; // 0x11600106
-    field public static final int INFO_EV_CONNECTOR_TYPE = 289472775; // 0x11410107
-    field public static final int INFO_EV_PORT_LOCATION = 289407241; // 0x11400109
-    field public static final int INFO_FUEL_CAPACITY = 291504388; // 0x11600104
-    field public static final int INFO_FUEL_DOOR_LOCATION = 289407240; // 0x11400108
-    field public static final int INFO_FUEL_TYPE = 289472773; // 0x11410105
-    field public static final int INFO_MAKE = 286261505; // 0x11100101
-    field public static final int INFO_MODEL = 286261506; // 0x11100102
-    field public static final int INFO_MODEL_YEAR = 289407235; // 0x11400103
-    field public static final int INFO_VIN = 286261504; // 0x11100100
+    field @RequiresPermission(android.car.Car.PERMISSION_POWERTRAIN) public static final int IGNITION_STATE = 289408009; // 0x11400409
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_DRIVER_SEAT = 356516106; // 0x1540010a
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_EV_BATTERY_CAPACITY = 291504390; // 0x11600106
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_EV_CONNECTOR_TYPE = 289472775; // 0x11410107
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_EV_PORT_LOCATION = 289407241; // 0x11400109
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_CAPACITY = 291504388; // 0x11600104
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_DOOR_LOCATION = 289407240; // 0x11400108
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_TYPE = 289472773; // 0x11410105
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_MAKE = 286261505; // 0x11100101
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_MODEL = 286261506; // 0x11100102
+    field @RequiresPermission(android.car.Car.PERMISSION_CAR_INFO) public static final int INFO_MODEL_YEAR = 289407235; // 0x11400103
+    field @RequiresPermission(android.car.Car.PERMISSION_IDENTIFICATION) public static final int INFO_VIN = 286261504; // 0x11100100
     field public static final int INVALID = 0; // 0x0
-    field public static final int MIRROR_FOLD = 287312709; // 0x11200b45
-    field public static final int MIRROR_LOCK = 287312708; // 0x11200b44
-    field public static final int MIRROR_Y_MOVE = 339741507; // 0x14400b43
-    field public static final int MIRROR_Y_POS = 339741506; // 0x14400b42
-    field public static final int MIRROR_Z_MOVE = 339741505; // 0x14400b41
-    field public static final int MIRROR_Z_POS = 339741504; // 0x14400b40
-    field public static final int NIGHT_MODE = 287310855; // 0x11200407
-    field public static final int OBD2_FREEZE_FRAME = 299896065; // 0x11e00d01
-    field public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067; // 0x11e00d03
-    field public static final int OBD2_FREEZE_FRAME_INFO = 299896066; // 0x11e00d02
-    field public static final int OBD2_LIVE_FRAME = 299896064; // 0x11e00d00
-    field public static final int PARKING_BRAKE_AUTO_APPLY = 287310851; // 0x11200403
-    field public static final int PARKING_BRAKE_ON = 287310850; // 0x11200402
-    field public static final int PERF_ODOMETER = 291504644; // 0x11600204
-    field public static final int PERF_STEERING_ANGLE = 291504649; // 0x11600209
-    field public static final int PERF_VEHICLE_SPEED = 291504647; // 0x11600207
-    field public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648; // 0x11600208
-    field public static final int RANGE_REMAINING = 291504904; // 0x11600308
-    field public static final int READING_LIGHTS_STATE = 356519683; // 0x15400f03
-    field public static final int READING_LIGHTS_SWITCH = 356519684; // 0x15400f04
-    field public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792; // 0x15400b88
-    field public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791; // 0x15400b87
-    field public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794; // 0x15400b8a
-    field public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793; // 0x15400b89
-    field public static final int SEAT_BELT_BUCKLED = 354421634; // 0x15200b82
-    field public static final int SEAT_BELT_HEIGHT_MOVE = 356518788; // 0x15400b84
-    field public static final int SEAT_BELT_HEIGHT_POS = 356518787; // 0x15400b83
-    field public static final int SEAT_DEPTH_MOVE = 356518798; // 0x15400b8e
-    field public static final int SEAT_DEPTH_POS = 356518797; // 0x15400b8d
-    field public static final int SEAT_FORE_AFT_MOVE = 356518790; // 0x15400b86
-    field public static final int SEAT_FORE_AFT_POS = 356518789; // 0x15400b85
-    field public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808; // 0x15400b98
-    field public static final int SEAT_HEADREST_ANGLE_POS = 356518807; // 0x15400b97
-    field public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810; // 0x15400b9a
-    field public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809; // 0x15400b99
-    field public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806; // 0x15400b96
-    field public static final int SEAT_HEADREST_HEIGHT_POS = 289409941; // 0x11400b95
-    field public static final int SEAT_HEIGHT_MOVE = 356518796; // 0x15400b8c
-    field public static final int SEAT_HEIGHT_POS = 356518795; // 0x15400b8b
-    field public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802; // 0x15400b92
-    field public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801; // 0x15400b91
-    field public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804; // 0x15400b94
-    field public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803; // 0x15400b93
-    field public static final int SEAT_MEMORY_SELECT = 356518784; // 0x15400b80
-    field public static final int SEAT_MEMORY_SET = 356518785; // 0x15400b81
-    field public static final int SEAT_OCCUPANCY = 356518832; // 0x15400bb0
-    field public static final int SEAT_TILT_MOVE = 356518800; // 0x15400b90
-    field public static final int SEAT_TILT_POS = 356518799; // 0x15400b8f
-    field public static final int TIRE_PRESSURE = 392168201; // 0x17600309
-    field public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514; // 0x11400602
-    field public static final int TRACTION_CONTROL_ACTIVE = 287310859; // 0x1120040b
-    field public static final int TURN_SIGNAL_STATE = 289408008; // 0x11400408
-    field public static final int VEHICLE_MAP_SERVICE = 299895808; // 0x11e00c00
-    field public static final int WHEEL_TICK = 290521862; // 0x11510306
-    field public static final int WINDOW_LOCK = 320867268; // 0x13200bc4
-    field public static final int WINDOW_MOVE = 322964417; // 0x13400bc1
-    field public static final int WINDOW_POS = 322964416; // 0x13400bc0
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_FOLD = 287312709; // 0x11200b45
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_LOCK = 287312708; // 0x11200b44
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_Y_MOVE = 339741507; // 0x14400b43
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_Y_POS = 339741506; // 0x14400b42
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_Z_MOVE = 339741505; // 0x14400b41
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_MIRRORS") public static final int MIRROR_Z_POS = 339741504; // 0x14400b40
+    field @RequiresPermission(android.car.Car.PERMISSION_EXTERIOR_ENVIRONMENT) public static final int NIGHT_MODE = 287310855; // 0x11200407
+    field @RequiresPermission("android.car.permission.CAR_DIAGNOSTICS") public static final int OBD2_FREEZE_FRAME = 299896065; // 0x11e00d01
+    field @RequiresPermission("android.car.permission.CLEAR_CAR_DIAGNOSTICS") public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067; // 0x11e00d03
+    field @RequiresPermission("android.car.permission.CAR_DIAGNOSTICS") public static final int OBD2_FREEZE_FRAME_INFO = 299896066; // 0x11e00d02
+    field @RequiresPermission("android.car.permission.CAR_DIAGNOSTICS") public static final int OBD2_LIVE_FRAME = 299896064; // 0x11e00d00
+    field @RequiresPermission(android.car.Car.PERMISSION_POWERTRAIN) public static final int PARKING_BRAKE_AUTO_APPLY = 287310851; // 0x11200403
+    field @RequiresPermission(android.car.Car.PERMISSION_POWERTRAIN) public static final int PARKING_BRAKE_ON = 287310850; // 0x11200402
+    field @RequiresPermission("android.car.permission.CAR_MILEAGE") public static final int PERF_ODOMETER = 291504644; // 0x11600204
+    field @RequiresPermission(android.car.Car.PERMISSION_READ_STEERING_STATE) public static final int PERF_STEERING_ANGLE = 291504649; // 0x11600209
+    field @RequiresPermission(android.car.Car.PERMISSION_SPEED) public static final int PERF_VEHICLE_SPEED = 291504647; // 0x11600207
+    field @RequiresPermission(android.car.Car.PERMISSION_SPEED) public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648; // 0x11600208
+    field @RequiresPermission(android.car.Car.PERMISSION_ENERGY) public static final int RANGE_REMAINING = 291504904; // 0x11600308
+    field @RequiresPermission(android.car.Car.PERMISSION_READ_INTERIOR_LIGHTS) public static final int READING_LIGHTS_STATE = 356519683; // 0x15400f03
+    field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) public static final int READING_LIGHTS_SWITCH = 356519684; // 0x15400f04
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792; // 0x15400b88
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791; // 0x15400b87
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794; // 0x15400b8a
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793; // 0x15400b89
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BELT_BUCKLED = 354421634; // 0x15200b82
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BELT_HEIGHT_MOVE = 356518788; // 0x15400b84
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_BELT_HEIGHT_POS = 356518787; // 0x15400b83
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_DEPTH_MOVE = 356518798; // 0x15400b8e
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_DEPTH_POS = 356518797; // 0x15400b8d
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_FORE_AFT_MOVE = 356518790; // 0x15400b86
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_FORE_AFT_POS = 356518789; // 0x15400b85
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808; // 0x15400b98
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_ANGLE_POS = 356518807; // 0x15400b97
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810; // 0x15400b9a
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809; // 0x15400b99
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806; // 0x15400b96
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEADREST_HEIGHT_POS = 289409941; // 0x11400b95
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEIGHT_MOVE = 356518796; // 0x15400b8c
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_HEIGHT_POS = 356518795; // 0x15400b8b
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802; // 0x15400b92
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801; // 0x15400b91
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804; // 0x15400b94
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803; // 0x15400b93
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_MEMORY_SELECT = 356518784; // 0x15400b80
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_MEMORY_SET = 356518785; // 0x15400b81
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_OCCUPANCY = 356518832; // 0x15400bb0
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_TILT_MOVE = 356518800; // 0x15400b90
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_SEATS") public static final int SEAT_TILT_POS = 356518799; // 0x15400b8f
+    field @RequiresPermission("android.car.permission.CAR_TIRES") public static final int TIRE_PRESSURE = 392168201; // 0x17600309
+    field @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_DISPLAY_UNITS)) public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514; // 0x11400602
+    field @RequiresPermission("android.car.permission.CAR_DYNAMICS_STATE") public static final int TRACTION_CONTROL_ACTIVE = 287310859; // 0x1120040b
+    field @RequiresPermission("android.car.permission.CAR_EXTERIOR_LIGHTS") public static final int TURN_SIGNAL_STATE = 289408008; // 0x11400408
+    field @RequiresPermission(anyOf={"android.car.permission.VMS_PUBLISHER", "android.car.permission.VMS_SUBSCRIBER"}) public static final int VEHICLE_MAP_SERVICE = 299895808; // 0x11e00c00
+    field @RequiresPermission(android.car.Car.PERMISSION_SPEED) public static final int WHEEL_TICK = 290521862; // 0x11510306
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_WINDOWS") public static final int WINDOW_LOCK = 320867268; // 0x13200bc4
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_WINDOWS") public static final int WINDOW_MOVE = 322964417; // 0x13400bc1
+    field @RequiresPermission("android.car.permission.CONTROL_CAR_WINDOWS") public static final int WINDOW_POS = 322964416; // 0x13400bc0
   }
 
 }
diff --git a/car-lib/src/android/car/VehiclePropertyIds.java b/car-lib/src/android/car/VehiclePropertyIds.java
index 14642fe..78a2eaa 100644
--- a/car-lib/src/android/car/VehiclePropertyIds.java
+++ b/car-lib/src/android/car/VehiclePropertyIds.java
@@ -16,6 +16,8 @@
 
 package android.car;
 
+import android.annotation.RequiresPermission;
+
 /**
  * Copy from android.hardware.automotive.vehicle-V2.0-java_gen_java/gen/android/hardware/automotive
  * /vehicle/V2_0. Need to update this file when vehicle propertyId is changed in VHAL.
@@ -29,55 +31,68 @@
     /**
      * VIN of vehicle
      */
+    @RequiresPermission(Car.PERMISSION_IDENTIFICATION)
     public static final int INFO_VIN = 286261504;
     /**
      * Manufacturer of vehicle
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_MAKE = 286261505;
     /**
      * Model of vehicle
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_MODEL = 286261506;
     /**
      * Model year of vehicle.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_MODEL_YEAR = 289407235;
     /**
      * Fuel capacity of the vehicle in milliliters
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_FUEL_CAPACITY = 291504388;
     /**
      * List of fuels the vehicle may use
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_FUEL_TYPE = 289472773;
     /**
      * Battery capacity of the vehicle, if EV or hybrid.  This is the nominal
      * battery capacity when the vehicle is new.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_EV_BATTERY_CAPACITY = 291504390;
     /**
      * List of connectors this EV may use
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_EV_CONNECTOR_TYPE = 289472775;
     /**
      * Fuel door location
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_FUEL_DOOR_LOCATION = 289407240;
     /**
      * EV port location
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_EV_PORT_LOCATION = 289407241;
     /**
      * Driver's seat location
      */
+    @RequiresPermission(Car.PERMISSION_CAR_INFO)
     public static final int INFO_DRIVER_SEAT = 356516106;
     /**
      * Current odometer value of the vehicle
      */
+    @RequiresPermission(Car.PERMISSION_MILEAGE)
     public static final int PERF_ODOMETER = 291504644;
     /**
      * Speed of the vehicle
      */
+    @RequiresPermission(Car.PERMISSION_SPEED)
     public static final int PERF_VEHICLE_SPEED = 291504647;
     /**
      * Speed of the vehicle for displays
@@ -85,60 +100,74 @@
      * Some cars display a slightly slower speed than the actual speed. This is
      * usually displayed on the speedometer.
      */
+    @RequiresPermission(Car.PERMISSION_SPEED)
     public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648;
     /**
      * Steering angle of the vehicle
      *
      * Angle is in degrees. Left is negative.
      */
+    @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE)
     public static final int PERF_STEERING_ANGLE = 291504649;
     /**
      * Temperature of engine coolant
      */
+    @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
     public static final int ENGINE_COOLANT_TEMP = 291504897;
     /**
      * Engine oil level
      */
+    @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
     public static final int ENGINE_OIL_LEVEL = 289407747;
     /**
      * Temperature of engine oil
      */
+    @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
     public static final int ENGINE_OIL_TEMP = 291504900;
     /**
      * Engine rpm
      */
+    @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
     public static final int ENGINE_RPM = 291504901;
     /**
      * Reports wheel ticks
      */
+    @RequiresPermission(Car.PERMISSION_SPEED)
     public static final int WHEEL_TICK = 290521862;
     /**
      * Fuel remaining in the the vehicle, in milliliters
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY)
     public static final int FUEL_LEVEL = 291504903;
     /**
      * Fuel door open
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY_PORTS)
     public static final int FUEL_DOOR_OPEN = 287310600;
     /**
      * EV battery level in WH, if EV or hybrid
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY)
     public static final int EV_BATTERY_LEVEL = 291504905;
     /**
      * EV charge port open
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY_PORTS)
     public static final int EV_CHARGE_PORT_OPEN = 287310602;
     /**
      * EV charge port connected
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY_PORTS)
     public static final int EV_CHARGE_PORT_CONNECTED = 287310603;
     /**
      * EV instantaneous charge rate in milliwatts
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY)
     public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908;
     /**
      * Range remaining
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY)
     public static final int RANGE_REMAINING = 291504904;
     /**
      * Tire pressure
@@ -146,12 +175,14 @@
      * min/max value indicates tire pressure sensor range.  Each tire will have a separate min/max
      * value denoted by its areaConfig.areaId.
      */
+    @RequiresPermission(Car.PERMISSION_TIRES)
     public static final int TIRE_PRESSURE = 392168201;
     /**
      * Currently selected gear
      *
      * This is the gear selected by the user.
      */
+    @RequiresPermission(Car.PERMISSION_POWERTRAIN)
     public static final int GEAR_SELECTION = 289408000;
     /**
      * Current gear. In non-manual case, selected gear may not
@@ -159,103 +190,128 @@
      * the current gear will be one of GEAR_1, GEAR_2 etc, which reflects
      * the actual gear the transmission is currently running in.
      */
+    @RequiresPermission(Car.PERMISSION_POWERTRAIN)
     public static final int CURRENT_GEAR = 289408001;
     /**
      * Parking brake state.
      */
+    @RequiresPermission(Car.PERMISSION_POWERTRAIN)
     public static final int PARKING_BRAKE_ON = 287310850;
     /**
      * Auto-apply parking brake.
      */
+    @RequiresPermission(Car.PERMISSION_POWERTRAIN)
     public static final int PARKING_BRAKE_AUTO_APPLY = 287310851;
     /**
      * Warning for fuel low level.
      */
+    @RequiresPermission(Car.PERMISSION_ENERGY)
     public static final int FUEL_LEVEL_LOW = 287310853;
     /**
      * Night mode
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
     public static final int NIGHT_MODE = 287310855;
     /**
      * State of the vehicles turn signals
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
     public static final int TURN_SIGNAL_STATE = 289408008;
     /**
      * Represents ignition state
      */
+    @RequiresPermission(Car.PERMISSION_POWERTRAIN)
     public static final int IGNITION_STATE = 289408009;
     /**
      * ABS is active
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
     public static final int ABS_ACTIVE = 287310858;
     /**
      * Traction Control is active
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
     public static final int TRACTION_CONTROL_ACTIVE = 287310859;
     /**
      * Fan speed setting
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_FAN_SPEED = 356517120;
     /**
      * Fan direction setting
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_FAN_DIRECTION = 356517121;
     /**
      * HVAC current temperature.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_TEMPERATURE_CURRENT = 358614274;
     /**
      * HVAC, target temperature set.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_TEMPERATURE_SET = 358614275;
     /**
      * On/off defrost for designated window
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_DEFROSTER = 320865540;
     /**
      * On/off AC for designated areaId
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_AC_ON = 354419973;
     /**
      * On/off max AC
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_MAX_AC_ON = 354419974;
     /**
      * On/off max defrost
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_MAX_DEFROST_ON = 354419975;
     /**
      * Recirculation on/off
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_RECIRC_ON = 354419976;
     /**
      * Enable temperature coupling between areas.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_DUAL_ON = 354419977;
     /**
      * On/off automatic mode
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_AUTO_ON = 354419978;
     /**
      * Seat heating/cooling
      *
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_SEAT_TEMPERATURE = 356517131;
     /**
      * Side Mirror Heat
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_SIDE_MIRROR_HEAT = 339739916;
     /**
      * Steering Wheel Heating/Cooling
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_STEERING_WHEEL_HEAT = 289408269;
     /**
      * Temperature units for display
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270;
     /**
      * Actual fan speed
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135;
     /**
      * Represents global power state for HVAC. Setting this property to false
@@ -265,47 +321,64 @@
      * state (unless any/all of them are UNAVAILABLE on their own individual
      * merits).
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_POWER_ON = 354419984;
     /**
      * Fan Positions Available
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673;
     /**
      * Automatic recirculation on/off
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_AUTO_RECIRC_ON = 354419986;
     /**
      * Seat ventilation
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
     public static final int HVAC_SEAT_VENTILATION = 356517139;
     /**
      * Distance units for display
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int DISTANCE_DISPLAY_UNITS = 289408512;
     /**
      * Fuel volume units for display
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513;
     /**
      * Tire pressure units for display
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514;
     /**
      * EV battery units for display
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int EV_BATTERY_DISPLAY_UNITS = 289408515;
     /**
      * Speed Units for display
      * @hide
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516;
     /**
      * Fuel consumption units for display
      */
+    @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
+    @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_DISPLAY_UNITS))
     public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364;
     /**
      * Outside temperature
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
     public static final int ENV_OUTSIDE_TEMPERATURE = 291505923;
     /**
      * Property to control power state of application processor
@@ -313,6 +386,7 @@
      * It is assumed that AP's power state is controller by separate power
      * controller.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_POWER)
     public static final int AP_POWER_STATE_REQ = 289475072;
     /**
      * Property to report power state of application processor
@@ -320,6 +394,7 @@
      * It is assumed that AP's power state is controller by separate power
      * controller.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_POWER)
     public static final int AP_POWER_STATE_REPORT = 289475073;
     /**
      * Property to report bootup reason for the current power on. This is a
@@ -328,12 +403,14 @@
      * power on with door unlock, bootup reason must stay with
      * VehicleApPowerBootupReason#USER_UNLOCK.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_POWER)
     public static final int AP_POWER_BOOTUP_REASON = 289409538;
     /**
      * Property to represent brightness of the display. Some cars have single
      * control for the brightness of all displays and this property is to share
      * change in that control.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_POWER)
     public static final int DISPLAY_BRIGHTNESS = 289409539;
     /**
      * Property to feed H/W input events to android
@@ -345,38 +422,47 @@
      * This is an integer in case a door may be set to a particular position.
      * Max value indicates fully open, min value (0) indicates fully closed.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
     public static final int DOOR_POS = 373295872;
     /**
      * Door move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
     public static final int DOOR_MOVE = 373295873;
     /**
      * Door lock
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
     public static final int DOOR_LOCK = 371198722;
     /**
      * Mirror Z Position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_Z_POS = 339741504;
     /**
      * Mirror Z Move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_Z_MOVE = 339741505;
     /**
      * Mirror Y Position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_Y_POS = 339741506;
     /**
      * Mirror Y Move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_Y_MOVE = 339741507;
     /**
      * Mirror Lock
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_LOCK = 287312708;
     /**
      * Mirror Fold
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
     public static final int MIRROR_FOLD = 287312709;
     /**
      * Seat memory select
@@ -385,6 +471,7 @@
      * position. The minValue is always 0, and the maxValue determines the
      * number of seat positions available.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_MEMORY_SELECT = 356518784;
     /**
      * Seat memory set
@@ -393,136 +480,168 @@
      * into the selected preset slot.  The maxValue for each seat position
      * must match the maxValue for SEAT_MEMORY_SELECT.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_MEMORY_SET = 356518785;
     /**
      * Seatbelt buckled
      *
      * True indicates belt is buckled.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BELT_BUCKLED = 354421634;
     /**
      * Seatbelt height position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BELT_HEIGHT_POS = 356518787;
     /**
      * Seatbelt height move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BELT_HEIGHT_MOVE = 356518788;
     /**
      * Seat fore/aft position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_FORE_AFT_POS = 356518789;
     /**
      * Seat fore/aft move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_FORE_AFT_MOVE = 356518790;
     /**
      * Seat backrest angle 1 position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791;
     /**
      * Seat backrest angle 1 move
      *
      * Moves the backrest forward or recline.
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792;
     /**
      * Seat backrest angle 2 position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793;
     /**
      * Seat backrest angle 2 move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794;
     /**
      * Seat height position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEIGHT_POS = 356518795;
     /**
      * Seat height move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEIGHT_MOVE = 356518796;
     /**
      * Seat depth position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_DEPTH_POS = 356518797;
     /**
      * Seat depth move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_DEPTH_MOVE = 356518798;
     /**
      * Seat tilt position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_TILT_POS = 356518799;
     /**
      * Seat tilt move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_TILT_MOVE = 356518800;
     /**
      * Lumber fore/aft position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801;
     /**
      * Lumbar fore/aft move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802;
     /**
      * Lumbar side support position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803;
     /**
      * Lumbar side support move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804;
     /**
      * Headrest height position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_HEIGHT_POS = 289409941;
     /**
      * Headrest height move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806;
     /**
      * Headrest angle position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_ANGLE_POS = 356518807;
     /**
      * Headrest angle move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808;
     /**
      * Headrest fore/aft position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809;
     /**
      * Headrest fore/aft move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810;
     /**
      * Seat Occupancy
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
     public static final int SEAT_OCCUPANCY = 356518832;
     /**
      * Window Position
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
     public static final int WINDOW_POS = 322964416;
     /**
      * Window Move
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
     public static final int WINDOW_MOVE = 322964417;
     /**
      * Window Lock
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
     public static final int WINDOW_LOCK = 320867268;
     /**
      * Vehicle Maps Service (VMS) message
      */
+    @RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER})
     public static final int VEHICLE_MAP_SERVICE = 299895808;
     /**
      * OBD2 Live Sensor Data
      *
      * Reports a snapshot of the current (live) values of the OBD2 sensors available.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
     public static final int OBD2_LIVE_FRAME = 299896064;
     /**
      * OBD2 Freeze Frame Sensor Data
@@ -530,10 +649,12 @@
      * Reports a snapshot of the value of the OBD2 sensors available at the time that a fault
      * occurred and was detected.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
     public static final int OBD2_FREEZE_FRAME = 299896065;
     /**
      * OBD2 Freeze Frame Information
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
     public static final int OBD2_FREEZE_FRAME_INFO = 299896066;
     /**
      * OBD2 Freeze Frame Clear
@@ -541,54 +662,67 @@
      * This property allows deletion of any of the freeze frames stored in
      * vehicle memory, as described by OBD2_FREEZE_FRAME_INFO.
      */
+    @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR)
     public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067;
     /**
      * Headlights State
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
     public static final int HEADLIGHTS_STATE = 289410560;
     /**
      * High beam lights state
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
     public static final int HIGH_BEAM_LIGHTS_STATE = 289410561;
     /**
      * Fog light state
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
     public static final int FOG_LIGHTS_STATE = 289410562;
     /**
      * Hazard light status
      */
+    @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
     public static final int HAZARD_LIGHTS_STATE = 289410563;
     /**
      * Headlight switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
     public static final int HEADLIGHTS_SWITCH = 289410576;
     /**
      * High beam light switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
     public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577;
     /**
      * Fog light switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
     public static final int FOG_LIGHTS_SWITCH = 289410578;
     /**
      * Hazard light switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
     public static final int HAZARD_LIGHTS_SWITCH = 289410579;
     /**
      * Cabin lights
      */
+    @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
     public static final int CABIN_LIGHTS_STATE = 289410817;
     /**
      * Cabin lights switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
     public static final int CABIN_LIGHTS_SWITCH = 289410818;
     /**
      * Reading lights
      */
+    @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
     public static final int READING_LIGHTS_STATE = 356519683;
     /**
      * Reading lights switch
      */
+    @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
     public static final int READING_LIGHTS_SWITCH = 356519684;
 
     /**