С утра сделал boot-анимацию (как это делается описано во многих источниках, поэтому не стану распространяться), пересобрал system.img, потом всю прошивку. Залил полученное в коробочку и получил неприятность - коробка загрузилась, показала анимацию и так на ней и застряла. Пришлось изучать вопрос - каким образом её перешить. Замечу, что коробка без USB-OTG, т.е. к компьютеру её не подключить. Кнопок на ней тоже нет. Разобрал, рассмотрел. Нашел отверстия для запайки кнопочки "RES". Поскольку при замыкании оных перезагрузки не произошло, предположил, что это у нас "Restore". Отключил питание, замкнул контакты, включил питание, подождал секунд пять - разомкнул контакты. Счастье есть - попал в restore mode. Там среди прочего есть "erase/wipe" и "rkflash ...". Еще раз всё перепроверил, подправил boot-анимацию (частоту кадров в первом случае поставил низковатую), собрал новый образ, залил на SD-карточку, прошил - коробка ожила. По некоторым непроверенным данным коробка могла "ожить" уже после "erase/wipe".
Где-то недавно видел сентенцию - "опыт - это то, что получаешь, когда не получаешь то, что хочешь". Склонен согласиться. Могу добавить только, что после получения опыта сильно возрастает вероятность получить то, что хочешь. Теперь можно не особо опасаясь пробовать кастомайзить ядро и сам android.
Ну и немного о том, как работать с system.img. Как я говорил в прошлом посте, system.img - в данном случае - это файл, содержащий в себе файловую систему ext3. Сначала монтируем систему и вытаскиваем из нее содержимое:
Выпольнять скрипт надо из под sudo. Результатом будет новый файл system.img, который надо поместить в Images, для последующей сборки прошивки.
Где-то недавно видел сентенцию - "опыт - это то, что получаешь, когда не получаешь то, что хочешь". Склонен согласиться. Могу добавить только, что после получения опыта сильно возрастает вероятность получить то, что хочешь. Теперь можно не особо опасаясь пробовать кастомайзить ядро и сам android.
Ну и немного о том, как работать с system.img. Как я говорил в прошлом посте, system.img - в данном случае - это файл, содержащий в себе файловую систему ext3. Сначала монтируем систему и вытаскиваем из нее содержимое:
mkdir system sudo mount -o loop system.img system mkdir -p out/system cp -R --preserve=all system/* out/system/ sudo umount system mv system.img system-orig.imgДалее производим нужные пассы, после чего запаковываем out/system. Скриптик запаковки выдрал из тулзов сборки ядра для rk30xx:
#!/bin/bash SYS=$1 OUT="system.img" if [ -d "$SYS" ] then # Main calculation delta=5120 num_blocks=`du -sk $SYS | tail -n1 | awk '{print $1;}'` num_blocks=$(($num_blocks + $delta)) num_inodes=`find $SYS | wc -l` num_inodes=$(($num_inodes + 500)) ok=0 echo "Blocks=$num_blocks, inodes=$num_inodes" while [ "$ok" = "0" ] do genext2fs -a -d $SYS -b $num_blocks \ -N $num_inodes -m 0 $OUT \ 2>&1 >/dev/null \ && \ tune2fs -j -L system -c -1 -i 0 \ $OUT 2>&1>/dev/null \ && \ ok=1 || num_blocks=$(($num_blocks + $delta)) done echo "Recalculate blocks=$num_blocks" e2fsck -fy $OUT 2>&1>/dev/null || true delta=1024 num_blocks=`resize2fs -P $OUT 2>&1 \ | tail -n1 | awk '{print $7;}'` rm -f $OUT echo "Dirty run end, now building image..." ok=0 while [ "$ok" = "0" ] do genext2fs -a -d $SYS -b $num_blocks \ -N $num_inodes -m 0 \ $OUT 2>&1>/dev/null \ && \ tune2fs -j -L system -c -1 -i 0 \ -O "dir_index,filetype,sparse_super" \ $OUT 2>&1>/dev/null \ && \ ok=1 || num_blocks=$(($num_blocks + $delta)) done e2fsck -fyD $OUT 2>&1>/dev/null || true echo "Done." else echo "System directory $SYS not found" exit 0 fi
Выпольнять скрипт надо из под sudo. Результатом будет новый файл system.img, который надо поместить в Images, для последующей сборки прошивки.