Compilació de la imatge

Ubuntu Touch 20.04 presenta molts canvis a sota, que requereixen canvis dels portadors. Aquest document està destinat a servir com a resum sobre com fer que el vostre port s’executi a Ubuntu Touch 20.04. No obstant això, cada port és diferent, i pot requerir més del que es descriu en aquest document. Estarem disponibles a thel’UBports que porti el grup de Telegram <https://docs.ubports.com/en/latest/porting/introduction/Intro.html#getting-community-help>. per respondre qualsevol pregunta que es pugui produir durant el procés.

Per als ports basats en CI de GitLab: commuteu a l’script de construcció compartit GitLab

A causa dels canvis en com es fan els rootfs d’Ubuntu Touch 20.04, hem de canviar la forma en què es construeixen els arxius tar dels dispositius. En lloc de seleccionar canvis de script des del repositori d’altres ports, recomanem la transició a l’script de construcció compartit. Utilitzant l’script compartit, el vostre port rebrà els últims canvis en la compilació de l’arxiu tarl del dispositiu a mesura que el rootfs continuï evolucionant (p. ex. per 22.04 o més). Per a la transició a l’script compartit, suprimiu tot el directori build/ i substituïu el contingut de build.sh amb:

#!/bin/bash
set -xe

[ -d build ] || git clone https://gitlab.com/ubports/community-ports/halium-generic-adaptation-build-tools build
./build/build.sh "$@"

És possible que vulgueu afegir build/ al vostre .gitignore.

I per la mateixa raó, recomanem utilitzar la configuració compartida de GitLab CI perquè quan l’script compartit tingui els seus canvis de requeriments, el vostre port no es trenqui. L’ús de la configuració compartida es pot fer substituint el contingut de .gitlab-ci.yml per:

include:
    - https://gitlab.com/ubports/porting/community-ports/halium-generic-adaptation-build-tools/-/raw/main/gsi-port-ci.yml

variables:
    BUILD_DEVEL_FLASHABLE_FOCAL: "1"

La secció variables permet construir la imatge de partició gravable des dels rootfs Focal, que potser voleu deixar fora per a la seva adaptació inicial.

Nota

L’script actualment no gestiona el repositori únic que es construeix per a múltiples dispositius. Si el vostre port necessita aquesta característica, si us plau, informeu ,aquest número <https://gitlab.com/ubports/porting/community-ports/halium-generic-adaptation-build-tools/-/issues/5>..

Si teniu canvis personalitzats a l’script de construcció o a la configuració de GitLab CI, és possible que hàgiu d’inspeccionar acuradament els canvis per assegurar-vos que el vostre port encara funcionarà. Tingueu en compte que podeu afegir passos addicionals a la configuració del GitLab CI i ordenar-lo després dels passos de construcció del tarball del dispositiu, o fins i tot anul·lar alguns passos (no recomanats).

Per als ports basats en CI de GitLab: inspeccioneu la superposició a les particions d’Android

Molts ports superposen els fitxers a les particions d’Android per fer que el port funcioni. Això s’aconsegueix sovint superposant la tasca Upstart mount-android.conf per contenir el codi en si, o per a cridar un altre script. Atès que l’Ubuntu Touch 20.04 ja no utilitza Upstart (vegeu més avall), el codi ja no s’executarà. Si el vostre port distribueix els fitxers superposats sota /opt/halium-overlay) o /usr/share/halium-overlay, el nou sistema de superposició s’encarregarà d’això automàticament, excepte quan s’afegeixi el nou fitxer en aquest cas és possible que necessiteu .halium-overlay-dir (vegeu Mètode de fitxer superposa).

Alternativament, és possible que vulgueu considerar moure el vostre port completament per utilitzar el sistema overlaystore. No obstant això, la migració no és directa i farà que el vostre port sigui incompatible amb el 16.04 (llevat que tingueu una altra branca). Contacteu amb @peat-psuwit en el grup de ports d’UBports per a més informació.

Per als ports Halium 7 o més antics: actualitza l’script bluetooth-touch

La forma en què funciona el script bluetooth-touch està inherentment lligada a Upstart. A Ubuntu Touch 20.04, bluetooth-touch es migra per utilitzar Systemd. Per tant, en lloc de superposar la tasca Upstart bluetooth-touch-android.conf haureu de superposar /usr/share/bluetooth-touch/android.sh. Tingueu en compte que l’script s’executarà amb /bin/sh, així que eviteu el Bash-isme aquí.

Els ports de Halium 9 no requereixen això, ja que Bluebinder reemplaça bluetooth-touch parlant directament amb el servei HIDL per proporcionar la interfície d’amfitrió Bluetooth.

Per a tothom: configureu usb-moded

usb-moded substitueix l’script setupusb en la configuració i gestió dels modes USB. Hem escrit una pàgina específica per a això. Vegeu Execució de l’Ubuntu Touch.

Per a tothom: consulteu treballs personalitzats d’Upstart

Alguns ports tenen tasques personalitzades d’Upstart per fer certes coses en arrencar. Aquests treballs s’han de convertir a unitats Systemd per tal com a mínim d’executar-se a Ubuntu Touch 20.04. Hom pot trobar útil la guia de l’Ubuntu sobre aquest tema <https://wiki.ubuntu.com/SystemdForUpstartUsers#Job_vs._unit_keywords>.

Alternativament, en lloc d’escriure unitats personalitzades del Systemd, utilitzeu l’script devicehack que s’executarà en cada arrencada després que el contenidor Android s’executi. El camí és /usr/libexec/lxc-android-config/device-hacks, i l’script s’executarà amb /bin/sh.