blob: 4da72b24adad3fe381d9955a570618a441b8b162 [file] [log] [blame] [view]
<!--
Copyright (C) 2021 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License
-->
# AAOS
Source code for [Android Automotive OS](https://source.android.com/devices/automotive).
## Structure
```
car_product/ - AAOS product
car-builtin-lib/ - A helper library for CarService to access hidden
framework APIs
car-lib/ - Car API
car-lib-module/ - Car API module
cpp/ - Native services
experimental/ - Experimental Car API and services
packages/ - Apps and services for cars
service/ - Car service module
service-builint - Platform builtin component that runs CarService module
tests/ - Tests and sample apps
tools/ - Helper scripts
```
## C++
Native (C++) code format is required to be compatible with .clang-format file. The formatter is
already integrated to `repo` tool. To run manually, use:
```
git clang-format --style=file --extension='h,cpp,cc' HEAD~
```
Note that clang-format is *not* desirable for Android java files. Therefore
the command line above is limited to specific extensions.
## Debugging CarService
Dumpsys and car shell can be useful when debugging CarService integration issues.
### dumpsys
```
adb shell dumpsys car_service # to dump all car service information
adb shell dumpsys car_service --services [service name] # to dump a specific service information
adb shell dumpsys car_service --list # get list of available services
```
Dumpsys for CarService includes the following (more information is availble in dumpsys, below are just highlights):
- Enabled features
- Current power policy and list of registered power policies
- Power state of componens of power policy
- Silent mode status
- Garage mode status
- I/O stats
- List of available vehicle properties
### car shell
```
adb shell cmd car_service
```
CarService supports commands via car shell:\
(list is not complete, run adb shell cmd car_service -h for more details)
- Injection of vhal events
- Toggling garage mode on/off
- Toggling of suspend/hibernation/resume
- Injection of input events
- User managemnet/switching
- Power policy control/manipulation
### Helpful command for Garage mode
Start Garage mode
```
adb shell cmd car_service garage-mode on
```
Finish Garage mode
```
adb shell cmd car_service garage-mode on
```
Get Garage mode status
```
adb shell cmd car_service garage-mode query
```
Change Garage mode max duration (only eng and debug builds)
```
adb shell setprop android.car.garagemodeduration <seconds>
```