View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Cierre de Android en Rpi4

NOTA: Para la configuración de un TCM, ver http://3.0.1.46:8000/HowTo/353




Tuesday, 21 June 2022, 11:30:28 am
Habilitar temporalmente settings en el cierre para poder llegar al volumen

1. En el tce, se escribe:

adb connect 192.168.1.5
adb root
adb shell pm unhide com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm enable com.android.settings/.homepage.SettingsHomepageActivity


2. Se baja el shade de notificaciones (gesto de arriba a abajo) y se amplía (se vuelve a hacer el gesto) para que salga el icono de la rueda dentada

3. Se da a la rueda dentada

4. Se da a "Sonido" y se comprueban los volúmenes

5. Una vez terminado, se vuelve a cerrar desde el tce:
adb shell pm disable com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm hide com.android.settings/.homepage.SettingsHomepageActivity


Friday, 9 July 2021, 9:14:43 am
Se hace el cierre de manera diferente En vez de modificar el launcher se hace lo siguiente:

1. Se convierte la aplicación de TCEM en un launcher (HECHO)
2. Se deasactiva la aplicación de settings, el launcher y el reloj de dar a la hora de encima del "shade de notificaciones":
adb root
adb shell pm disable com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm hide com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm disable 'com.android.settings/.Settings\$ConfigureNotificationSettingsActivity'
adb shell pm hide 'com.android.settings/.Settings\$ConfigureNotificationSettingsActivity'
adb shell pm disable com.android.launcher3
adb shell pm suspend com.android.launcher3
adb shell pm hide com.android.launcher3
adb shell pm disable com.android.deskclock/.DeskClock
adb shell pm hide com.android.deskclock/.DeskClock


Si quisiéramos deshacer el cierre habría que hacer lo contrario:

adb root
adb shell pm enable com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm unhide com.android.settings/.homepage.SettingsHomepageActivity
adb shell pm enable 'com.android.settings/.Settings\$ConfigureNotificationSettingsActivity'
adb shell pm unhide 'com.android.settings/.Settings\$ConfigureNotificationSettingsActivity'
adb shell pm enable com.android.launcher3
adb shell pm unsuspend com.android.launcher3
adb shell pm unhide com.android.launcher3
adb shell pm enable com.android.deskclock/.DeskClock
adb shell pm unhide com.android.deskclock/.DeskClock


3. En el shade de notificaciones, los 6 quicksettings que hay que dejar son:
  • Ahorro de energía
  • USB Tethering
  • VPN
  • Sync
  • Enviar Pantalla WiFi
  • Girar pantalla automáticamente
4. Poner la navegación por gestos: Sistema > Gestos > Navegación por gestos.
5. Quitar el soporte multiusuario
En sdX2:/system/build.prop se añade la siguiente línea:
 fw.show_multiuserui=0.




Wednesday, 28 April 2021, 10:11:29 am
Sobre QuickStep-enabled launchers Resulta que Hay un solo Trebuchet en los fuentes del LineageOS 18.1, pero se puede compilar con o sin soprote de QuickStep.

¿Qué es QuickStep?

Según deduzco de la página de QuickSwitch,
en Android Pie hicieron que los recents (el botón de "recent/open apps") lo controlara el
launcher, y a eso le llaman QuickStep.

Entonces, un launcher QuickStep-enabled es aquel que en Android Pie visualiza los recents,
y si no es QuickStep-enabled, en Android Pie dar al botón de "recents" no hará nada.

El Trebuchet.apk que he compilado en la entrada anterior no tiene lo del QuickStep integrado,
mientras que el TrebuchetQuickStep que había compilado "por defecto" al hacer la imagen "victara"
sí que tenía lo del QuickStep y por lo tanto lo de los recents.

TL;DR: Usar el Trebuchet.apk ya que deshabilitar los recents era una de las tareas que tenía que hacer
para "cerrar" el android de la rpi.


Wednesday, 28 April 2021, 9:40:10 am
Compilo el antiguo trebuchet que sigue en los fuentes del LineageOS18.1

En uiharu, como dario:
cd ~/android/lineage
source build/envsetup.sh
breakfast victara
croot
make -j32 Trebuchet
ls -l out/target/product/victara/system/system_ext/priv-app/Trebuchet/Trebuchet.apk


Friday, 9 April 2021, 9:05:57 am
Preparo para compilar en uiharu Siguiendo las instrucciones para victara (me da un poco igual qué modelo mientras sea una build de 32 bits y no use una CPU de arquitectura más moderna que la Rpi4):

En uiharu, como root:
apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev
apt-get install libwxgtk3.0-dev


En uiharu, como usuario:
mkdir -p ~/bin
mkdir /src/lineage
cd android
ln -s /src/lineage .
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip -d ~
rm platform-tools-latest-linux.zip
cat >> ~/.profile <<'EOF'
#https://wiki.lineageos.org/devices/titan/build
# add Android SDK platform tools to path
if [ -d "$HOME/platform-tools" ] ; then
    PATH="$HOME/platform-tools:$PATH"
fi
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
EOF
source ~/.profile
git config --global user.email "dariorodriguez@sicosoft.es"
git config --global user.name "Dario Rodriguez"
mkdir -p ~/.ccache
mv ~/.ccache /src/
ln -s /src/.ccache ~
ccache -M 100G


Actualizo en uiharu Python a Python3.7 Ya que Debian 9 tiene python 3.5.3 y la utilidad repo de android requiere Python 3.6+. Uso este howto:

En uiharu, como usuario dario:
cd /src
mkdir src.python37
cd src.python37
su
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev
exit
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
tar -xf Python-3.7.9.tar.xz
cd Python-3.7.9
./configure --enable-optimizations
make -j 32
# Parar los tests, no los necesito hacer
^C
su
make altinstall
cd /usr/bin
rm python3 python3m
ln -s ../local/bin/python3.7 python3
ln -s ../local/bin/python3.7m python3m



Compilo el LineageOS 18.1 Usando la guía para "victara" y la de extraer los blobs (uso esta información para deshacer una imagen de partición de android y poder llegar a los vendor blobs)

En uiharu, como usuario dario:
cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-18.1
repo sync
source build/envsetup.sh
breakfast victara
cd ..
mkdir lineageos-system_dump
cd lineageos-system_dump
# https://mirrorbits.lineageos.org/TIMESTAMP?mirrorlist
wget https://mirror.cyberbits.eu/lineageos/recovery/victara/20210404/lineage-18.1-20210404-recovery-victara.img
wget https://mirror.selfnet.de/lineageos/full/victara/20210404/lineage-18.1-20210404-nightly-victara-signed.zip
git clone https://github.com/xiaolu/mkbootimg_tools
./mkbootimg_tools/mkboot lineage-18.1-20210404-recovery-victara.img unpacked
mkdir unzipped
cd unzipped/
unzip ../lineage-18.1-20210404-nightly-victara-signed.zip
git clone https://github.com/LineageOS/scripts
su
apt-get install python3-protobuf
sed -i "s:/usr/bin/python :/usr/bin/python3.5 :g" /usr/bin/lsb_release
/usr/local/bin/python3.7 -m pip install --upgrade pip
pip3.7 install six
pip3.7 install protobuf
exit
python3.7 ./scripts/update-payload-extractor/extract.py system.new.dat.br --output_dir ./
# AVISO: el .dat.br es un fichero de actualización tipo chromeos, y da error --  los siguientes pasos de la guía me fallan por eso
cd ~/android/lineage
cd ./device/motorola/victara/
# Ejecutamos la script ~/android/lineageos/device/motorola/victara/extract-files.sh
# redirigiendo la salida a un log, y generar con un touch esos
# ficheros que han dado error en el log y volverla a ejecutar.
# Con eso debería ser suficiente para poder compilar...
( ./extract-files.sh ~/android/lineage-system_dump/ 2>&1 ) | tee /tmp/extract.log
for i in $(cat /tmp/extract.log  | grep '\!\!' | cut -c 8- | cut -d ':' -f 1) ; do mkdir -p ~/android/lineage-system_dump/$i ; rmdir ~/android/lineage-system_dump/$i ; touch ~/android/lineage-system_dump/$i ;done
./extract-files.sh ~/android/lineage-system_dump/

cd ~/android/lineage
source build/envsetup.sh
breakfast victara
croot
brunch victara


Con eso ya tenemos una imagen para victara (que no vamos a usar), pero, lo más importante, es que tenemos el Trebuchet:

cd ~/android/lineage
cp ./out/target/product/victara/system/system_ext/priv-app/TrebuchetQuickStep/TrebuchetQuickStep.apk /tmp


Se puede instalar en la imagen de la rpi4 con:
mount -t auto /dev/sde2 /media/floppy/
find /media/floppy/ -name "*Trebu*apk"
rm /media/floppy/system/app/Trebuchet/Trebuchet.apk
cp /media/floppy/system/system_ext/priv-app/TrebuchetQuickStep/TrebuchetQuickStep.apk TrebuchetQuickStep.apk.orig
cp /tmp/TrebuchetQuickStep.apk /media/floppy/system/system_ext/priv-app/TrebuchetQuickStep/TrebuchetQuickStep.apk
umount /media/floppy/



Descripción del proyecto


Cierre de la imagen Android de la Rpi4, que usa LineageOS 18.1 32-bit