This is a set of Python scripts to redirect data from RemotiveCloud to AAOS emulator.
Check the video in /media for an example on how location can be sent from RemotiveCloud to AAOS emulator.
It is highly recommended that you read the documentation in docs/build/html/index.html, as it describes the steps in more details. It can be tricky to make it work if you miss some configurations.
Make sure to install the dependencies.
pip install -r requirements.txt
Download the Android Studio Preview version: https://developer.android.com/studio/preview
Create a free RemotiveCloud account and go to the Recordings page. Choose the City drive to Turning Torso recording and start the playback. Make sure to pick configuration_android when playing. Note! If you already have an account, you can import the City drive to Turning Torso recording by clicking the import icon in the upper right corner of the recording page.
Run the AAOS Emulator. For sending location, you can use an user image such as:
- Automotive 12L with Play Store ARM 64 v8a System Image
- If your machine is ARM based. It is an user build with GAS.
- Automotive 12L with Play Store Intel x86 Atom_64 System Image
- If your machine is x86 based. It is an user build with GAS.
Include the credentials from the broker (URL and API key) as well as the LATITUDE and LONGITUDE signals:
$ python3 br_location_to_emu.py --url $URL --x_api_key $KEY --namespace android --signal LATITUDE --signal LONGITUDE
Note! You can find the broker credentials in the bottom left corner once you have prepared the recording for playback.
To manipulate VHAL properties, you must use an userdebug build:
- Android Automotive 13 "Tiramisu" with Google APIs ARM 64 v8a System Image
- It does not contain GAS, but it is userdebug.
Run the emulator via command line:
$ emulator @$avd_name -selinux permissive -no-snapshot
Note that you must set SELinux as permissive mode.
If you want to send VHAL property values to AAOS emulator:
$ python3 br_props_to_aaos.py --url $URL --x_api_key $KEY --namespace android --signal $SIGNAL
alternatively
$ PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python python3 br_props_to_aaos.py --url $URL --x_api_key $KEY --namespace android --signal $SIGNAL
Send the signals you want by always putting the flag --signal alongside its name.
Check docs/build/html/index.html for further details regarding this project, including how to setup your environment, emulator and scripts.
There is also a section about lessons learned and improvements for this project (docs/build/html/insights.html).