construire une rom android.
___
Docs officielles android pour le build d’une ROM: https://source.android.com/source/building-running.html
Configurer l’environnement pour avoir les actions dans l’environnement.
$ . ./build/envsetup.sh
S’assurer que le device est vu par le port USB
===============================
voir les usb:
$ lsusb $ dmesg
Faire un udev pour avoir un nom potable dans le /dev et avoir l’adb qui le detecte vi /etc/udev/conf.d/50-custom_device.conf
ajouter la ligne suivante en faisant matcher le vendor et le product avec la sortie de lsusb (ici 04e8:6860) le group est le group (systeme) authorisé a utiliser le device, le symlink est le nom affiché SUBSYSTEM== »usb », ATTRS{idVendor}== »04e8″, ATTRS{idProduct}== »6860″, MODE= »0666″ GROUP= »my_group », SYMLINK+= »i9305″
recharger la config udev
udevadm control --reload-rules
optionnel : update adb list
$ android update adb
ajouter le product id dans la liste adbf Edit $HOME/.android/adb_usb.ini, add 0x2207 at the end of the file Restart adb server
$ adb kill-server && adb start-server
List android device
$ adb devices
lien pour la doc sur udev: http://www.reactivated.net/writing_udev_rules.html#syntax https://wiki.debian.org/udev
monter l’ensemble du systeme de fichier d’un android:
==================================
doc sur : https://github.com/spion/adbfs-rootless
adbfs /chemin_de_mount
Suivre le readme Attention il faut avoir les droit pour lancer l’outil car il lance fuse qui accede a bas niveau:
recuperer l’IMEI:
============
taper sur le tel *#06#
faire un backup
=============
backup dans le repertoire courant (cree le fichier backup.ab)
adb backup -apk -shared -all
restaurer depuis le fichier backup.ab
adb restore backup.ab
arreter le server proprement
adb kill-server
installer un recovery correct:
=====================
Telecharger recovery clockwork puis installer heimdall lancer l’installation de la recovery:
$ heimdall flash --RECOVERY /home/ow-cve/dev/RCW/recovery-clockwork-6.0.4.7-i9305.img
Extraire les données d’une img rockchip:
========================================
You’ll first need to build rk-tools:
git clone https://github.com/rk3066/rk-tools.git cd rk-tools sudo apt-get install libssl-dev libcrypto++-dev make
Then use img_unpack tools to unpack the firmware to another format:
./img_unpack update_mk908_106j2107_04.img update_mk908_106j2107_04_unpack.img rom header code: 1060000 rom version: 4.1.1 build time: 2013-09-07 10:39:22 chip: 70 checking md5sum....OK
Finally, run afptool to extract the files from the resulting file into “firmware” directory:
./afptool -unpack update_mk908_106j2107_04_unpack.img firmware Check file...OK- UNPACK- package-file 0x00000800 0x00000242 RK3188Loader(L)_V1.20.bin 0x00001000 0x0002F8AE parameter 0x00031000 0x00000264 Image/misc.img 0x00031800 0x0000C000 Image/boot.img 0x0003D800 0x00A2C000 Image/recovery.img 0x00A69800 0x00BFC000 Image/system.img 0x01665800 0x1A630000 backupimage/backup.img 0x1BC95800 0x01665004 update-script 0x1D2FB000 0x000003A5 recover-script 0x1D2FB800 0x0000010A UnPack OK!
Ajouter une app dans le framework:
==================================
copier l’app dans /packages/apps/<mon_app_dir> copier un Android.mk d’une autre app et mettre a jour les parametres de celui-ci.
Lancer la compilation d’une app:
=================================
Configurer l’environnement pour avoir les actions dans l’environnement.
$ . build/envsetup.sh $ mmm /packages/apps/<mon_app_dir>
Faire un package d’update rockchip:
===================================
afptool et img_pack ne gere pas bien les chemin absolu donc : – faire un lien sym « tmp » dans le repertoire d’afptool qui pointe vers les img du build android
– puis creer le script suivant dans le repertoire afptool:
#!/bin/bash set -e cd `dirname $0` rm -f tmp.img rm -f update.img # put all img in one single img ./afptool -pack tmp tmp.img # add RockChip specific param and bootloader ./img_maker -rk31 tmp/RK3188Loader_2.16.bin 1 0 0 tmp.img update.img rm -f tmp.img echo "update.img is at `pwd`/update.img"
ca genere un fichier update.img dans le repertoire d’afptool.