O Ubuntu atualmente não suporta YAFFS2. Há uma solicitação de recurso para empacotar o módulo do kernel YAFFS2, que forneceria suporte de montagem para o sistema de arquivos: [ embalagem de necessidades] yaffs2 .
Suporte ao kernel
Assim, atualmente, se você precisar de suporte para montagem, você mesmo terá que compilá-lo. O site do YAFFS tem instruções para compilar um kernel Linux com suporte YAFFS (usando Precise 32-bit):
O wiki do Ubuntu também tem informações gerais sobre compilação do seu próprio kernel .
Extrair e reconstruir
Como alternativa, tente usar yaffs2utils
para extrair e reconstruir a imagem.
Observe que devido a um bug , você deve especificar a opção --yaffs-ecclayout
ou falhará silenciosamente. Então, para extrair, tente algo como
git clone https://code.google.com/p/yaffs2utils/
cd yaffs2utils && make && cd ..
./yaffs2utils/unyaffs2 --yaffs-ecclayout system.img tempdir
Teoricamente, você também pode reconstruir a imagem usando mkyaffs2
, mas não consegui fazê-la funcionar (o resultado não foi inicializável).
Yaffey
Eu encontrei um programa, Yaffey , que permite editar uma imagem YAFFS2 usando uma GUI:
EnquantoahomepagedizqueéapenasparaWindows, com uma alteração trivial , ela é compilada no Ubuntu Precise . Para fazer isso:
- Instalar dependências:
sudo apt-get install qt-sdk
-
hg clone https://code.google.com/p/yaffey/
-
No arquivo
yaffey/yaffs2/yaffs_guts.h
, altere a linhatypedef unsigned loff_t;
para
#include <stdlib.h>
- Compilação:
cd yaffey && qmake && make
- Executar
./yaffey
. - Abra sua imagem, faça as alterações desejadas e salve (ela se recusa a sobrescrever; você precisa selecionar um nome de arquivo diferente).
Quando tentei, a imagem resultante foi inicializada com sucesso no emulador do Android.