106 lines
3.0 KiB
Markdown
106 lines
3.0 KiB
Markdown
|
|
<!--
|
||
|
|
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>
|
||
|
|
```
|