Skip to main content

Building an emulator machine for AAOS from a given images

Recently the company I am working with have started working on AAOS (Android Automotive Operating System) version of Google Android and the need to develop, test and deploy the our Android App to the SDV (Software Defined Vehicle) version of the OEM bare OS implantation of Android Automotive (please notice, not Android Auto which is something else).

Here are a few installation procedures we followed since we needed to do in order to be able to run the AAOS machine in emulator on a Linux Ubuntu machine.

You will need around extra 60GB on your HD

Topics:

1. Download the machine image

2. Download and install Android-Studio

3. Create an empty project of Android Automotive and download the relevant SDKs

4. Open the downloaded machine to your Android/Sdk directory of system-images

5. Create a device from the new image

6. Run the machine (some problems with graphics / NVIDIA / Vulkan and GPU)

 

1. Download the machine image

- Receive the machine from you OEM contact

 

2. Download and install Android-Studio

- Android Studio Download

 

3. Create an empty project of Android Automotive and download the relevant SDKs

 

4. Open the downloaded machine to your Android/Sdk directory of system-images

a. Find your Android directory system-images ~/Android/Sdk/system-images/.

b. Create a directory called 'android-34' or any version you need.

c. Inside create a directory called 'your-oem-image-machine'.

d. Inside create a directory called 'x86_64'.

e. Extract the OEM image date into the x86_64 directory.

The full path should look like this: ~/Android/Sdk/system-images/android-34/connect_car_emulator/x86_64/

The content of the directory is the image data:

data
package.xml
VerifiedBootParams.textproto
userdata.img
source.properties
devices.xml
build.prop
advancedFeatures.ini
vendor.img
ramdisk.img
ranchu
encryptionkey.img
system.img

5. Create a device from the new image


 Choose your relevant image from the list of images


- Open advanced settings and set:

Graphics: Hardware

Boot option: Cold boot

Ram: 8192MB

VM Heap: 512MB

Internal storage: 8192MB

* Make sure you have chosen the correct AVD image with the correct name:


 - Then create you machine

6. Run the machine (some problems with graphics / NVIDIA / Vulkan and GPU)

Running the machine might be a bit tricky on Linux / Ubuntu machine so here are some heads up to notice:

Make sure to set export bash global parameters to the correct path:

export ANDROID_SDK_ROOT=~Android/Sdk
export ANDROID_HOME=~Android/Sdk
export PATH=$PATH:/emulator:/platform-tools:/tools

Running the machine:

~/Android/Sdk/emulator/emulator -avd your_avd_name -gpu host -feature -Vulkan

You can list all your avds (Android Virtual Devices) with:

~/Android/Sdk/emulator/emulator -list-avds

You can also try those parameters to run with CPU instead of GPU which are quite slow:

~/Android/Sdk/emulator/emulator -avd our_avd_name -gpu swiftshader_indirect -no-snapshot-load
 

Comments

Popular posts from this blog

Accessing Windows Share (Samba) From Linux (XFCE) using Thunar

In order to access samba (windows share) from Linux XFCE using Thunar file browser you need to: 1. Install samba client sudo apt install smbclient 2. Run: sudo modprobe cifs 3. Open thunar and access the share: smb://IPADDRESS/sharename e.g.: smb://192.168.1.1/photos 4. Type in the username / password in the prompt window Some helpful information: https://forum.manjaro.org/t/thunar-how-do-i-access-folders-shared-on-windows-computers/116649/9

Using phpword to merge two Mircrosoft Office Word .docx documents

How to combine or embed and insert another .docx file (Microsoft office docx word document) into another one using PHPWord Joining two .docx document using php ( phpword library ) $mainTemplateProcessor = new \PhpOffice\PhpWord\TemplateProcessor("file1"); //$mainTemplateProcessor ->setValue('var_name', $value); $innerTemplateProcessor = new \PhpOffice\PhpWord\TemplateProcessor("file2"); //$innerTemplateProcessor->setValue('var2_name', $value2); // extract internal xml from template that will be merged inside main template $innerXml = $innerTemplateProcessor->gettempDocumentMainPart(); $innerXml = preg_replace('/^[\s\S]*<w:body>(.*)<\/w:body>.*/', '$1', $innerXml); // remove tag containing header, footer, images $innerXml = preg_replace('/<w:sectPr>.*<\/w:sectPr>/', '', $innerXml); // inject internal xml inside main template $mainXml = $mainTemplateProcessor->gettempDocumentMainPart(...

Bypassing the error by "go get" "tls: failed to verify certificate: x509: certificate signed by unknown authority"

When I was trying to download dependencies for my go project in an old Ubuntu machine I was getting this error all the time: "go: gopkg.in/alexcesaro/quotedprintable.v3@v3.0.0-20150716171945-2caba252f4dc: Get "https://proxy.golang.org/gopkg.in/alexcesaro/quotedprintable.v3/@v/v3.0.0-20150716171945-2caba252f4dc.mod": tls: failed to verify certificate: x509: certificate signed by unknown authority" Which the main part of it was go get failing to authenticate: " tls: failed to verify certificate: x509: certificate signed by unknown authority " I tried many things but couldn't make it work until I found the way: export GOINSECURE="proxy.golang.go" This will tell go get to ignore certification validity. Then export GOPROXY=direct This will tell go get to by pass proxy Then git config --global http.sslverify false And only after those I could run again: go get And it worked