AOSP Apps

Une fois n’est pas coutume, un chouya d’informatique (pas de quoi en faire un site différent)
Je viens de builder quelques applications d’android AOSP (plutôt Lineage en l’occurrence mais Lineage n’a pas apporté beaucoup de modifications) car mon téléphone ne les a pas dans son système d’origine
Pour une compatibilité accrue, j’ai changé les noms de packages en com.spisoft.aosp.*

Appli email

Télécharger:
Email.apk

Keyboard AOSP

Télécharger:
LatinIME-signed.apk

Instructions de build:

/!\ Attention cela nécessite de télécharger tout Lineage (variante d’android) et de compiler l’ensemble. Il y a sans doute plus simple mais je retrace exactement les étapes que j’ai suivies. L’idée étant qu’initialement, je m’étais buildé une rom lineage

OS : Ubuntu 16.04 AMD64

Les dépendances

sudo apt install git openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip repo

Là vous allez avoir besoin de place, beaucoup de place, dans le doute comptez 100go pour le sync et le build


cd where-ever-you-want-to-download-lineage
repo init -u git://github.com/LineageOS/android.git -b lineage-16.0
repo sync

Devrait mettre du temps. Moment idéal pour ranger l’appartement, repeindre la cuisine, renverser le gouvernement.

Ensuite


cd Lineage
. build/envsetup.sh
breakfast manta

On démarre le build

brunch manta

manta étant la référence d’un device lambda, attention une rom Lineage complète sera générée à la suite de ça. Rom dont on n’a pas besoin intégralement.

Bonne nuit. C’est plus long que le démarrage de Windows 7.

C’est fini ? Pas d’erreur ?
Menteurs.

Bien des machines ne supportent pas le build la première fois, souvent dû à un manque de ram. Googlez votre erreur. Fréquemment, un certain Jack fait des siennes

Là, c’est bon ?

Email

Ok, donc on va re-builder l’appli mail comme promis, avec un nouveau nom de package


cd packages/apps/Email

Tout d’abord, on modifie les fichiers (remplacez votre-nouveau-package par votre nom de package)

find . -type f | xargs sed -i 's/com\.android\.emailcommon/com.android.emtailcommon/g' &&
find . -type f | xargs sed -i 's/com\.android\.email/votre-nouveau-package/g' &&
find . -type f | xargs sed -i 's/com\.android\.emtailcommon/com.android.emailcommon/g'

Navré, je suis une merde en regex donc j’ai été contraint de faire ça. La première et la dernière ligne sont pour éviter de modifier les com.android.emailcommon. C’est sale. Ça marche. C’est à mon image.

Ensuite, on doit déplacer deux trois dossiers

cd src/com/android

Vous avez deux dossiers : Email et Email2
Ces deux dossiers devront être déplacés selon votre nom de package
Exemple avec mon propre cas

Package originel étant com.android.email
Le nouveau étant com.spisoft.aosp.email
Les dossiers
src/com/android/email et src/com/android/email2
ont dû être déplacés dans
src/com/spisoft/aosp
ce qui donne
src/com/spisoft/aosp/email et src/com/spisoft/aosp/email2

Pour finir, ouvrez Android.mk, trouvez les lignes commençant par LOCAL_SRC_FILES et ajoutez
LOCAL_SRC_FILES += $(call all-java-files-under, src/com/spisoft/aosp)

en remplaçant spisoft/aosp par vos propres dossiers

Puis, dernière étape
mma

L’apk final sera dans
out/target/product/manta/system/app/Email

Keyboard

In English now because la flemme de préparer la future version bilangue

First change package name in manifest:

sed -i 's/package="com\.android/package="com.spisoft.aosp/g' java/AndroidManifest.xml
then fix manifest references

sed -i 's/="\./="com.android.inputmethod.latin./g' java/AndroidManifest.xml
sed -i 's/="LatinIME/="com.android.inputmethod.latin.LatinIME/g' java/AndroidManifest.xml

fix resources

find . -type f | xargs sed -i 's/apk\/res\/com\.android\.inputmethod\.latin/apk\/res\/com.spisoft.aosp.inputmethod.latin/g'

fix provider

find . -type f | xargs sed -i 's/>com\.android\.inputmethod\.dictionarypack\.aosp</>com.spisoft.aosp.inputmethod.dictionarypack.aosp</g'
cd ../java-overridable
find . -type f | xargs sed -i 's/"com\.android\.inputmethod\.dictionarypack\.aosp"/"com.spisoft.aosp.inputmethod.dictionarypack.aosp"/g'

Ready to build !

cd ..
mma

Treaky part, integrate native libs, otherwise dictionnary is cabum

You will need to resign the apk, so be careful to have a keystore apk-signer etc

cd lineage-root-folder
mkdir out/target/product/manta/system/app/LatinIME/libs/armeabi-v7a
cp out/target/product/manta/system/lib/libjni_latinime.so out/target/product/manta/system/app/LatinIME/
cd out/target/product/manta/system/app/LatinIM

add the library

aapt add LatinIME.apk libs/armeabi-v7a/libjni_latinime.so

resign

apksigner sign --ks keystore --out LatinIME-signed.apk --ks-key-alias keyalias LatinIME.apk

And install LatinIME-signed.apk

Enjoy

EDIT 16/03 : ajout du clavier AOSP

Tandis que j’appelle à renverser le gouvernement


J’aimerais me hisser et m’extirper loin du vacarme, du tintamarre. Je scande des slogans, les propos sont soignés, et, dans la meute avançant, un parmi tant, j’attends que se détournent les regards pour lever les yeux au ciel; j’aimerais qu’on me pèche, qu’on m’indique ma place, je la sais bien loin du tumulte, dans ces zones nuageuses. Je rêve d’être béat. Silencieux. Délesté. (Ma chair aspire au bien être, elle m’est inconfortable et sitôt que l’esprit fuit, elle le rappelle à l’ordre, le plaque et le bâillonne.)  Me fondre et disparaître ou me laisser couler, submerger, sans crainte. Je rêve parfois de vieux jours bavant et hors de tout, l’oeil dilaté, le proche aussi flou que l’horizon. Il est si aisé de s’écrouler, une fois au sol, l’inertie rigidifie le corps, qu’importe la stature. (Je suis comme ces passants qui détournent leurs yeux, honteux de voir chez l’autre qui gît l’humanité semblable, celle qui ronge la corde qu’ils s’efforcent de suivre, par habitude, parce que pas le choix, c’est ça ou rien.)

LîvreE

 

Nadine avait appelé le matin même, pour l’aider à déblayer l’appartement de son frère.
« Tu sais Émilien était fou, vers la fin. Il accumulait un bazar monstrueux, regarde moi l’état de ses bouquins »
Elle tira au hasard un livre.
« Histoire de l’individualisme »
Sur la couverture était griffonné à la main le mot « LîvreE » avec un accent et deux e. Elle était parsemée de petits trous, comme s’il l’avait attaquée à coups de compas.

« Aucun sens, regarde. À croire qu’il ne savait même plus écrire. Il était brillant, pourtant. »
Elle souriait.

« Le pire, c’est que personne ne savait qu’il était mort. On l’a découvert au bout de trois semaines »
Elle agita sa main devant son nez pour indiquer une mauvaise odeur.
« Ici »
Elle me montra la salle de bain
« Il a sans doute fait un arrêt cardiaque dans son bain et a tenté de sortir »
La baignoire était sale comme le reste de la pièce, sous cette même couche de poussière qui enveloppait les livres.
« J’ai toujours dit qu’il lui fallait une femme. Quand ma mère est morte, j’ai pas eu le courage de l’assumer. Il lui fallait une femme, c’était pas mon boulot  »
Bruit de verre brisé.
« Meeerde »
Le grand miroir de l’entrée était tombé
« Enfin, c’était de la camelote. Le miroir de sa chambre d’ado, il l’avait repris à la mort de la mère. »

« Bon, tout n’est pas perdu. Va falloir tout nettoyer. On va mettre ses bouquins en brocante. Et puis, reste la Twingo. Christophe pense en tirer 1500€, il va la descendre sur Marseille. Il roulait pas sur l’or. RSA depuis des années ! »
Je glissai discrètement le livre dans mon sac.