|
# Tastitalia Android 12
|
|
|
|

|
|

|
|
|
|
|
|
# Table of Contents
|
|
# Table of Contents
|
|
|
|
- [Introduction](#introduction)
|
|
|
|
- [Prepare your PC](#prepare-your-pc)
|
|
|
|
- [Download and prepare Tastitalia Android 12](#download-and-prepare-tastitalia-android-12)
|
|
|
|
- [Set up and build Android 12](#set-up-and-build-android-12)
|
|
|
|
- [Download and flash Android image](#download-and-flash-android-image)
|
|
|
|
- [Create Distro Folder](#create-distro-folder)
|
|
|
|
- [Flash Android BSP on eMMC](#flash-android-bsp-on-emmc)
|
|
|
|
- [Flash Android BSP on uSD (Not Recommended)](#flash-android-bsp-on-usd-not-recommended)
|
|
|
|
- [Tastitalia Naming Convention](#tastitalia-naming-convention)
|
|
|
|
|
|
# Introduction
|
|
# Introduction
|
|
|
|
|
... | @@ -21,9 +29,8 @@ To build Tastitalia Android 12, use a computer running Linux OS. |
... | @@ -21,9 +29,8 @@ To build Tastitalia Android 12, use a computer running Linux OS. |
|
|
|
|
|
We used Ubuntu 20.04 to build Android, other distributions may work but have not been tested.
|
|
We used Ubuntu 20.04 to build Android, other distributions may work but have not been tested.
|
|
|
|
|
|
Check whether all the necessary packages are installed for an Android build.
|
|
Check whether all the necessary packages are installed for an Android build. See “Establishing a Build Environment” on the [Android website](https://source.android.com/setup/build/initializing). In addition to the packages requested on the Android website, the following packages are also needed:
|
|
See “Establishing a Build Environment” on the [Android website](https://source.android.com/setup/build/initializing).
|
|
|
|
In addition to the packages requested on the Android website, the following packages are also needed:
|
|
|
|
```bash
|
|
```bash
|
|
$: sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop \
|
|
$: sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop \
|
|
git curl u-boot-tools mtd-utils \
|
|
git curl u-boot-tools mtd-utils \
|
... | @@ -68,12 +75,14 @@ To decrypt tar.gz file using GUI passphrase prompt: |
... | @@ -68,12 +75,14 @@ To decrypt tar.gz file using GUI passphrase prompt: |
|
```bash
|
|
```bash
|
|
$: gpg --output tastitalia-imx-android-12.0.0_1.0.0.tar.gz --decrypt tastitalia-imx-android-12.0.0_1.0.0.tar.gz.gpg
|
|
$: gpg --output tastitalia-imx-android-12.0.0_1.0.0.tar.gz --decrypt tastitalia-imx-android-12.0.0_1.0.0.tar.gz.gpg
|
|
```
|
|
```
|
|
|
|
|
|
Alternatively, if you want to insert passphrase directly in bash:
|
|
Alternatively, if you want to insert passphrase directly in bash:
|
|
|
|
|
|
```bash
|
|
```bash
|
|
$: gpg --batch --passphrase 'PASSHPRASE' --output tastitalia-imx-android-12.0.0_1.0.0.tar.gz --decrypt tastitalia-imx-android-12.0.0_1.0.0.tar.gz.gpg
|
|
$: gpg --batch --passphrase 'PASSHPRASE' --output tastitalia-imx-android-12.0.0_1.0.0.tar.gz --decrypt tastitalia-imx-android-12.0.0_1.0.0.tar.gz.gpg
|
|
#### Change PASSHPRASE with the real passphrase shared with you by Tastitalia
|
|
#### Change PASSHPRASE with the real passphrase shared with you by Tastitalia
|
|
```
|
|
```
|
|
|
|
|
|
To extract tar.gz and finish setting up source code:
|
|
To extract tar.gz and finish setting up source code:
|
|
|
|
|
|
```bash
|
|
```bash
|
... | @@ -88,6 +97,7 @@ After these steps, all Android 12 source codes are downloaded and ready to be bu |
... | @@ -88,6 +97,7 @@ After these steps, all Android 12 source codes are downloaded and ready to be bu |
|
To set up your build environment, Tastitalia prepared a script file for every board.
|
|
To set up your build environment, Tastitalia prepared a script file for every board.
|
|
|
|
|
|
Find the appropriate setup file following our [Naming Convention](#tastitalia-naming-convention).
|
|
Find the appropriate setup file following our [Naming Convention](#tastitalia-naming-convention).
|
|
|
|
|
|
* Example: **setup_tasd8mp_2g_10.sh**.
|
|
* Example: **setup_tasd8mp_2g_10.sh**.
|
|
|
|
|
|
This script is needed to export arm64 cross compile GCC, set up android environment and prepare it for a userdebug build mode, executing the command:
|
|
This script is needed to export arm64 cross compile GCC, set up android environment and prepare it for a userdebug build mode, executing the command:
|
... | @@ -95,23 +105,26 @@ This script is needed to export arm64 cross compile GCC, set up android environm |
... | @@ -95,23 +105,26 @@ This script is needed to export arm64 cross compile GCC, set up android environm |
|
```bash
|
|
```bash
|
|
$: source setup_tasXXXX_Xg_X.sh
|
|
$: source setup_tasXXXX_Xg_X.sh
|
|
```
|
|
```
|
|
|
|
|
|
Feel free to change userdebug mode to any other mode, according to Android documentation:
|
|
Feel free to change userdebug mode to any other mode, according to Android documentation:
|
|
|
|
|
|
| Build Mode | Description |
|
|
| Build Mode | Description |
|
|
|-------------|-------------------------------------------------------------------------------------------------------------------------|
|
|
|------------|-------------|
|
|
| userdebug | This build mode is suitable for developers and testers. It includes debugging capabilities and additional logging. |
|
|
| userdebug | This build mode is suitable for developers and testers. It includes debugging capabilities and additional logging. |
|
|
| user | This build mode is optimized for regular users. It excludes debugging features and reduces logging for better performance. |
|
|
| user | This build mode is optimized for regular users. It excludes debugging features and reduces logging for better performance. |
|
|
| eng | This build mode, short for "engineering," includes advanced debugging and profiling tools. It is primarily for developers and platform engineers. |
|
|
| eng | This build mode, short for "engineering," includes advanced debugging and profiling tools. It is primarily for developers and platform engineers. |
|
|
|
|
|
|
After that, you will be able to lunch the Android 12 build script:
|
|
After that, you will be able to lunch the Android 12 build script:
|
|
|
|
|
|
Example:
|
|
Example:
|
|
|
|
|
|
```bash
|
|
```bash
|
|
$: source setup_tasd8mm_2g_10.sh
|
|
$: source setup_tasd8mm_2g_10.sh
|
|
$: ./imx-make.sh -j32 2>&1 | tee build-log.txt
|
|
$: ./imx-make.sh -j32 2>&1 | tee build-log.txt
|
|
#### Choose -j variable according to the number of cores in your PC
|
|
#### Choose -j variable according to the number of cores in your PC
|
|
#### Take a very long coffee
|
|
#### Take a very long coffee
|
|
```
|
|
```
|
|
|
|
|
|
After following these steps, Android will be built, and a **build-log.txt** file containing all the build information will be created.
|
|
After following these steps, Android will be built, and a **build-log.txt** file containing all the build information will be created.
|
|
|
|
|
|
Please refer to the next section for instructions on flashing the output files to your board.
|
|
Please refer to the next section for instructions on flashing the output files to your board.
|
... | @@ -119,6 +132,7 @@ Please refer to the next section for instructions on flashing the output files t |
... | @@ -119,6 +132,7 @@ Please refer to the next section for instructions on flashing the output files t |
|
# Download and flash Android image
|
|
# Download and flash Android image
|
|
|
|
|
|
## Create Distro Folder
|
|
## Create Distro Folder
|
|
|
|
|
|
Tastitalia has developed a convenient script, `create_distro.sh`, to prepare the folder containing all the necessary files for flashing Android onto your device. You can execute the script using the following command:
|
|
Tastitalia has developed a convenient script, `create_distro.sh`, to prepare the folder containing all the necessary files for flashing Android onto your device. You can execute the script using the following command:
|
|
|
|
|
|
```bash
|
|
```bash
|
... | @@ -138,17 +152,93 @@ $: ./create_distro.sh tasd8mm_2g_10 |
... | @@ -138,17 +152,93 @@ $: ./create_distro.sh tasd8mm_2g_10 |
|
Running the script in this way will create a dedicated folder within "Distro" containing the Android files tailored to the specified machine.
|
|
Running the script in this way will create a dedicated folder within "Distro" containing the Android files tailored to the specified machine.
|
|
|
|
|
|
## Flash Android BSP on eMMC
|
|
## Flash Android BSP on eMMC
|
|
|
|
|
|
|
|
After following the previous section, which helped you create the "Distro" directory with your machine-specific folder inside (e.g., `Distro/tasd8mp_2g_10/`), proceed with the following steps to flash the Android BSP onto the eMMC of your device.
|
|
|
|
|
|
|
|
1. **Enter the Distro Directory:**
|
|
|
|
|
|
|
|
Navigate to the "Distro" directory and enter your machine-specific folder using the following command:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$: cd Distro/tasd8mp_2g_10/
|
|
|
|
```
|
|
|
|
2. **Prepare for Flashing:**
|
|
|
|
- Ensure that your device is in "Serial Download" mode. <span dir="">Refer to your device's documentation or manufacturer's instructions for specific steps on how to </span>boot your board in Serial Download mode.
|
|
|
|
- Connect the OTG port on your device to the USB port on your PC.
|
|
|
|
- Use the `lsusb` command to verify that your device is recognized among the peripherals. It should appear as something like "NXP Semiconductor SE Blank XXX." Below is an example screenshot of the `lsusb` output:
|
|
|
|
|
|
|
|

|
|
|
|
3. **Flash Android BSP:**
|
|
|
|
|
|
|
|
Run the following command with sudo privileges to initiate the flashing process:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$: sudo ./uuu uuu.lst
|
|
|
|
```
|
|
|
|
|
|
|
|
This command will flash the Android BSP onto the eMMC of your device.
|
|
|
|
4. **Configure Boot Source:**
|
|
|
|
|
|
|
|
After successful flashing, configure your device to boot from eMMC. Refer to your device's documentation or manufacturer's instructions for specific steps on how to set the boot source to eMMC.
|
|
|
|
5. **Boot Your Device:**
|
|
|
|
|
|
|
|
Once the boot source is set to eMMC, power on your device. It should now boot from the newly flashed Android BSP.
|
|
|
|
|
|
|
|
**Note:** The first boot may take longer than usual as Android prepares all the necessary files for the file system. Subsequent boots should have normal boot times.
|
|
|
|
|
|
## Flash Android BSP on uSD (Not Recommended)
|
|
## Flash Android BSP on uSD (Not Recommended)
|
|
|
|
|
|
|
|
**Note:** It is not recommended to install Android on a uSD (microSD) card. Android is a resource-intensive operating system, and boot times, especially during the initial boot, can be significantly prolonged when running from a uSD card. For the best performance and user experience, we strongly advise flashing Android onto the eMMC of your device instead of a uSD card.
|
|
|
|
|
|
|
|
However, if you still wish to proceed with installing Android on a uSD card, for example for testing purposes, please follow the steps below:
|
|
|
|
|
|
|
|
1. **Enter the Distro Directory:**
|
|
|
|
|
|
|
|
Navigate to the "Distro" directory and enter your machine-specific folder using the following command:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$: cd Distro/tasd8mp_2g_10/
|
|
|
|
```
|
|
|
|
|
|
|
|
2. **Use the "imx-sdcard-partition.sh" Script:**
|
|
|
|
|
|
|
|
The "imx-sdcard-partition.sh" script is used to partition the uSD card for Android. You can display available parameters by running the following command:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$: ./imx-sdcard-partition.sh -h
|
|
|
|
```
|
|
|
|
|
|
|
|
Among the most important parameters are:
|
|
|
|
- "-f soc_name" to specify the processor (e.g., "imx8mm" for tasd8mm or "imx8mp" for tasd8mp boards).
|
|
|
|
- "-c card_size" to set the uSD card size (options: 7, 14, or 28).
|
|
|
|
|
|
|
|
Here is an example of how to use the script to flash a uSD card:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$: sudo ./imx-sdcard-partition.sh -f imx8mm -c 28 /dev/sdb
|
|
|
|
```
|
|
|
|
|
|
|
|
Replace "/dev/sdb" with the appropriate device path for your uSD card.
|
|
|
|
|
|
|
|
3. **Configure Boot Source:**
|
|
|
|
|
|
|
|
After partitioning the uSD card, set your device to boot from the uSD card. Refer to your device's documentation or manufacturer's instructions for specific steps on how to set the boot source to the uSD card.
|
|
|
|
|
|
|
|
4. **Insert the uSD Card and Power On:**
|
|
|
|
|
|
|
|
Once you have configured the boot source to uSD, insert the uSD card into your device and power it on.
|
|
|
|
|
|
|
|
**Note:** Expect extended boot times when using Android from a uSD card, especially during the first boot. It is strongly recommended to use the eMMC for improved performance and faster boot times.
|
|
|
|
|
|
# Tastitalia Naming Convention
|
|
# Tastitalia Naming Convention
|
|
|
|
|
|
We follow a specific naming convention for our board names. The board names are in the format **tasXYYY_Zg_W**, where:
|
|
We follow a specific naming convention for our board names. The board names are in the format **tasXYYY_Zg_W**, where:
|
|
|
|
|
|
- "**X**" indicates the format of the System-on-Module (SOM):
|
|
- "**X**" indicates the format of the System-on-Module (SOM):
|
|
- "d" represents SODIMM format
|
|
- "d" represents SODIMM format
|
|
- "c" represents SMARC format.
|
|
- "c" represents SMARC format.
|
|
- "**YYY**" indicates the processor type, such as "8mp" for NXP i.MX8M Plus processor
|
|
- "**YYY**" indicates the processor type, such as "8mp" for NXP i.MX8M Plus processor
|
|
- "**Z**" indicates the amount of DDR RAM in GB.
|
|
- "**Z**" indicates the amount of DDR RAM in GB.
|
|
- "**W**" indicates the display size in inches.
|
|
- "**W**" indicates the display size in inches.
|
|
|
|
|
|
For example, a board name **tasd8mm_2g_7** would represent a board with a SODIMM format, an i.MX8M Mini processor, 2GB of DDR RAM, and a 7-inch display. |
|
For example, a board name **tasd8mm_2g_7** would represent a board with a SODIMM format, an i.MX8M Mini processor, 2GB of DDR RAM, and a 7-inch display. |
|
|
|
\ No newline at end of file |