# 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 ```