Форум проекта PuppyRus Linux

Обсуждения операционных систем => Процессоры ARM архитектуры => Операционные системы (ОС) ARM => Тема начата: midnighter от 22 Май 2017, 18:41:24

Название: Запуск Android с флэшки
Отправлено: midnighter от 22 Май 2017, 18:41:24
Или может можно андроид с флэша запускать?

Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912 (https://habr.com/ru/post/525116/)
https://4pda.ru/forum/index.php?showtopic=998873&st=0#entry97732150

Я свой ZTE перепрошивал безсчётное количество раз. В том числе ставил на него по две разные прошивки одновременно.
Первый опыт был таков:
1. Делал на флешке два ext раздела
2. Разбирал boot.img, переписывал пути монтирования /system, /data
3. Собирал boot.img, и заливал его вместо recovery
В результате основная системма грузилась стандартно, а вторая через горячие клавиши, меню перезагрузки или reboot recovery.

А потом я нашёл вот это: Multiboot via loop file (http://www.modaco.com/forums/topic/356891-mod-script-multiboot-via-loop-file-1912/)
Автор правда предлагает при каждой перезагрузке перешивать boot раздел, но я так делал только при первой пробе новой прошивки, чтобы если что-то пошло не так можно было восстановиться из бэкапа. Потом правил пути и заливал boot.img в recovery.
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 23 Май 2017, 09:09:17
свой ZTE
Можно подробнее - что за устройство? Телефон?
ставил на него по две разные прошивки одновременно.
прошивки каких систем?
Название: Re: Запуск Android с флэшки
Отправлено: midnighter от 23 Май 2017, 18:21:34
Телефон?
Да. ZTE Libra.
прошивки каких систем?
Ну линукс на телефон ставить смысла нет и ни кто этим не заморачивается. Кастомные прошивки, обновления ну и свои эксперименты. Это чтобы основную системму не трогать.
 Я привёл это как пример загрузки с флешки:
Или может можно андроид с флэша запускать?
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 24 Май 2017, 09:00:04
Я привёл это как пример загрузки с флешки:
Можно подробнее
Название: Re: Запуск Android с флэшки
Отправлено: midnighter от 24 Май 2017, 20:12:58
У меня 4 основных раздела:
recovery (маленькая системма для бэкапа, восстановления, обновления и т.д...)
boot       (ядро, initrd.gz и параметры загрузки в одном флаоне)
system   (собственно системма)
userdata (что-то типа ~home и для стороннего софта)
boot и recovery загрузочные. Первый грузиться при включении второй через горячие клавиши.
Ищем в интернете пару утилит (для Вашего устройства могут быть другие, я описываю свой случай):
unpackbootimg - для распаковки образов boot.img и recovery.img. Снять образ можно стандартно dd if/of.
makebootimg - для запаковки.
После распаковки имеем файлы:
zImage - ядро
initrd.gz - ну понятно
boot.img-base - файл в котором записывается смещение ядра от начала раздела
boot.img-cmdline - параметры ядра (аля kernel бла бла...)
Далее распаковываем initrd.gz
Ищем в нём файл в котором прописаны пути монтирования. У меня это init.rc. В нём есть строки:
Код
# mount mtd partitions
    # Mount /system rw first to give the filesystem a chance to save a checkpoint
    mount yaffs2 mtd@system /system
    mount yaffs2 mtd@system /system ro remount
    mount yaffs2 mtd@userdata /data nosuid nodev
    mount yaffs2 mtd@cache /cache nosuid nodev
Заменяем их на то, что нужно нам:
Код: примерно так
 mkdir /sdz 0777 system system
mount ext4 /dev/block/mmcblk0p3 /sdz utf8
# mount mtd partitions
    # Mount /system rw first to give the filesystem a chance to save a checkpoint
mount ext2 loop@/sdz/multiboot/system-loop-files/cm11 /system
mount ext2 loop@/sdz/multiboot/system-loop-files/cm11 /system ro remount
mount ext2 loop@/sdz/multiboot/data-loop-files/cm11 /data nosuid nodev
    mount yaffs2 mtd@cache /cache nosuid nodev
mmcblk0p3 - это третий раздел на карте памяти (у меня).
cm11 - файлы-образы ext2 - системный и дата.

Вот как-то так. Надеюсь объяснил понятно. В принципе ни чего сложного. Большую часть информации почерпнул на 4pda. Там же нашёл утилиты, busybox и т.д..
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 25 Май 2017, 08:49:14
На amlogic будет немного своей специфики, но может получиться
Спасибо +
Название: Запуск android с SD карты
Отправлено: Gennadyi от 15 Январь 2020, 11:37:19
Нашлась в интернете вот такая статья :Запуск любой android с SD карты (https://minix.com.ru/index.php?route=news%2Farticle&news_id=21)
Цитата
перевод статьи Яна Мориссона. Оригинал здесь
 (https://plus.google.com/+IanMORRISON/posts/XyZrNp8YvJu?cfem=1)
Спойлер
Всегда хотели попробовать другую версию системы на вашем устройстве с RK3188 но не хотите подвергать устройство риску?
Или может на вашем устройстве установлен Linux а вы хотите попробовать андроид. Я создал инструмент который позволяет создать загрузочную карту SD с помощью которой можно работать с андроид непосредственно с карты
Вам нужен будет компьютер под управлением линукс, SD карта на 8 Гб или выше, и ваш образ операционной системы
В этом примере я использую KitKat ROM Radxa Rock: http://radxa.com/Rock/prebuilt_images
Так же загрузите необходимый инструментарий https://drive.google.com/file/d/0B99O3A0dDe67b3dBUjFzcUoyLWs
В нём вы увидете скрипт 'create-android-sdcard' а так же папку 'tools'
Первым делом вставьте вашу Sd карту в пк и используйте команду 'blkid' или 'lsblk' что бы определить имя устройства.
Теперь запустите программу и передайте имя и местоположение android rom который вы хотите поставить на вашу карту например:
./create-android-sdcard radxa_rock_android_kitkat_140909_update.img
Программа предложит вам подтвердить имя устройства SD карты. После того как подтвердите,начнётся распаковка android rom и создание разделов
на SD карте которые будут имитировать ROM включая раздел 'user'. Начнётся установка Android ROM на карту памяти и по завершению вы полуите уведомление.
Теперь вам осталось просто взять вашу карту и поставить в ваше устройство.
Первая загрузка идёт довольно медленно так что запаситесь терпением.Некоторые ROMы грузятся очень долго так что будьте особенно терпеливыми.
Впрочем это только первая загрузка, в дальнейшем всё будет гораздо быстрее.
На android KitKat всё должно работать "из коробки". Но с 4.2.2. могут работать не совсем правильно. Это связанно с тем чт встроенная память реализованна иначе. Я нашёл один конкретный ROM где проводник не распознавал внутреннюю память,
однако "ES EXplorer" смог. Все остальные работали нормально.
Теоретически эта схема должна работать с любыми образами системы. Моя программа использует стандартные инструменты RK включенными в каталоге "Tools". Я включил проверку формата памяти как в традиционной сборке так что даже если ваши параметры отличаются от традиционных то скрипт всё равно должен работать.
[свернуть]
Для амлоджика тоже должны быть "tools" аналогичные Rk !
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 15 Январь 2020, 15:29:24
Кто-нибудь пробовал этот или другие рецепты?
Ддя  амлоджика  похоже никто ничего не делал ... Все инструменты для других SoC.
Хотя для владеющего линуксом - труда не составит. Может быть можно это сделать на самом амлоджике с линуксом 
Разбирать образ обновления для амлоджика давно научились, а вот собирать образ для записи на SD и последующей загрузкой с неё ... 
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 09:00:09
Вот еще интересная статья (для Allwinner A13.) - Как записать прошивку андроид на sd карту (http://vitaliy.epifanov.org/publ/os_android/zagruzochnaja_sd_karta_s_os_android/5-1-0-5)
Цитата
как из образа для LiveSuit сделать загрузочную microSD-карту, с которой можно загружать планшет не используя встроенную флешь-память.

Таким образом, изменения в прошивке сводятся к изменениям файлов на microSD, а, стоит вытащить её из слота, и планшет загрузится со своей памяти как ни в чём не бывало

вот отсюда: http://dl.miniand.com/allwinnera10/system/image/tools.tar.gz скачиваем набор инструментов для работы с образами
Название: Re: Запуск android с SD карты
Отправлено: sfs от 16 Январь 2020, 09:22:19
Ддя  амлоджика  похоже никто ничего не делал ... Все инструменты для других SoC.
Хотя для владеющего линуксом - труда не составит
Вроде, а Вас как раз AML и линуксом владеете ...  ;)
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 09:32:28
Вроде, а Вас как раз AML и линуксом владеете ... 
Ну, то такое ... 
Время  нужно, и желание ;)
Может кому это на 5 минут работы, а мне и года мало будет ...

ЗЫ
Как в Армбиан через CLI разрешение гуя изменить, у меня DVI монитор 1600х900 ?
Название: Re: Запуск android с SD карты
Отправлено: sfs от 16 Январь 2020, 09:35:54
Вообще интересно только с точки зрения установки линукса на emmc без убийства андроид
В соседней теме обсуждали скорость носителей - в итоге надо сначала определиться - надо ли вообще к этому стремиться...
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 10:08:31
Вообще интересно только с точки зрения установки линукса на emmc без убийства андроидВ соседней теме обсуждали скорость носителей - в итоге надо сначала определиться - надо ли вообще к этому стремиться...
У меня интерес - задействовать бокс с мертвым внутр. флешем. Скорость для меня - вторично.
А так - да, нужно подбирать интерфейс и устройство с максимальным быстродействием по сравнению с внутр. флеш.
Название: Re: Запуск android с SD карты
Отправлено: sfs от 16 Январь 2020, 10:39:20
У меня интерес - задействовать бокс с мертвым внутр. флешем
Тогда вам и "карты в руки"
Как в Армбиан через CLI разрешение гуя изменить, у меня DVI монитор 1600х900 ?
man xrandr
1 вопрос = 1 тема. Не надо оффтопить
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 11:31:58
Тогда вам и "карты в руки"
Придется подождать :(
man xrandr - спасибо ! больше не буду :)
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 13:25:50
Running Android from an SD Card. (https://github.com/minghuascode/android-amlogic-kernel/blob/master/build01-openlinux/README-build-linux-android)
Цитата
Android
5.Running Android from an SD Card
=====================================
Спойлер
Instead of running Android from internal storage, you can run Android from SD card.
You will need to prepare the SD card as follow:
 $ sudo fdisk /dev/<your sdcard,for example sdd>
 Command (m for help): p
 Disk /dev/sdd: 1977 MB, 1977614336 bytes
 64 heads, 63 sectors/track, 957 cylinders
 Units = cylinders of 4032 * 512 = 2064384 bytes
 Disk identifier: 0x00000000
 Device Boot      Start         End      Blocks   Id  System
 /dev/sdd1            1          30       60448+   b  W95 FAT32
 /dev/sdd2           31         957     1868832   83  Linux

Format the partitions using the following commands:
 $ sudo mkfs.msdos /dev/sdd1
 $ sudo mkfs.ext3 /dev/sdd2

Download a kernel the Android release from here and placed it in the FAT32 partition:
 $ sudo mkdir -p /mnt/fat32
 $ sudo mount /dev/sdd1 /mnt/fat32
 $ sudo cp uImage.android /mnt/fat32

Unpack the Android rootfs tarball prepared earlier onto the EXT2 partition:
 $ sudo mkdir -p /mnt/ext3
 $ sudo mount /dev/sdd2 /mnt/ext3
 $ sudo tar jxfv out/target/product/m1ref/rootfs.tar.bz2 --numeric-owner -C /mnt/ext3

And the final steps:
 $ sync
 $ sudo umount /mnt/fat32
 $ sudo umount /mnt/ext3

Now you can take the SD card and insert into the M1 reference board, at the uboot
command line prompt, issue the following command:

 # setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0:1 82000000 uImage.android;bootm 82000000;'
 # setenv bootargs 'console=ttyS0,115200n8 root=/dev/cardblksd2 rw rootfstype=ext3 init=/init mac=${ethaddr} rootwait'
 # saveenv
 # boot
[свернуть]
Название: Re: Запуск android с SD карты
Отправлено: sfs от 16 Январь 2020, 13:48:12
rootfs tarball
Где его взять (как сделать)
Сами пробовали рецепт?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 14:00:32
Сами пробовали рецепт?
Нет конечно :) Пока только рецепты собираю!
Линукс у меня уже есть на T95, осталось потратить время на эксперименты ;)
Название: Re: Запуск android с SD карты
Отправлено: sfs от 16 Январь 2020, 14:05:08
Где его взять (как сделать)
В теме про RK нам вроде удалось снять дамп андроида и раздербанить его
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Январь 2020, 14:23:49
В теме про RK нам вроде удалось снять дамп андроида и раздербанить его
Для раздербанивания амлоджика тоже инструмент есть, даже два - китайский и от любителей (https://forum.xda-developers.com/devdb/project/?id=26925#downloads). Оба под винду.
Для сборки загрузочного SD образа нет готового инструмента, есть только методика для CLI линукса.
Я для армбиана в готовый образ вставляю 1М с 0 сектора (там SPL и uBoot) и  в нем WinHex-ом меняю таблицу разделов на ту , что в образе (+ совет Balbes150 загрузочному скрипту и .dtb.) Только после этого идет загрузка с SD !

WinHex-ом еще можно образы дербанить
Название: Re: Запуск android с SD карты
Отправлено: balbes150 от 17 Январь 2020, 12:51:51
Я для армбиана в готовый образ вставляю 1М с 0 сектора (там SPL и uBoot) и  в нем WinHex-ом меняю таблицу разделов на ту , что в образе (+ совет Balbes150 загрузочному скрипту и .dtb.) Только после этого идет загрузка с SD !
Извращенцы ... для записи u-boot в существующий (записанный на носитель) образ, есть давно отработанная методика

Write u-boot to SD card. U-boot replacement is performed by two commands.

https://forum.armbian.com/topic/12162-single-armbian-image-for-rk-aml-aw/

Кстати, можно пробовать вытаскивать и использовать существующие (рабочие) варианты u-boot с любого запускаемого образа. Снять рабочий u-boot командой dd (обычно это первые 4 или 16 Мб), а потом записываете как указано по ссылке (с сохранением существующей таблицы разделов в рабочем образе). Но есть нюанс - какие команды есть в тестируемом u-boot для запуска и какие там переменные.
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 17 Январь 2020, 13:13:03
Извращенцы ... для записи u-boot в существующий (записанный на носитель) образ, есть давно отработанная методика
Станешь с вами извращенцем :) !
Линукса у меня в доступном окружении нет (вот только недавно армбиан и либры появились ;) )
Поэтому все делал под виндой.  Можно еще цигвин попробовать,  но это еще отдельный процесс ...  :(

Я как раз и вытащил родной SPL/Part_Table/uBoot от андроида T95. Пока он ко всем образам подошел. Размер 1024kB
вариант с 16 MB  я видел, но не пробовал.
Название: Re: Запуск android с SD карты
Отправлено: sfs от 17 Январь 2020, 13:38:24
Write u-boot to SD card
Т.е.
1. Находим uboot для своего железа https://yadi.sk/d/PIGjwjZ4m4HKqg
Для 905w - odroid ?
Для 905х2 - gl12 ?
Для RK - по чипу
2. Пишем на SD с уже залитой с img системой
Код
dd if=u-boot-<model>.img of=/dev/<SD_card> conv=fsync bs=1 count=442
dd if=u-boot-<model>.img of=/dev/<SD_card> conv=fsync bs=512 skip=1 seek=1
3. Вставляем в бокс без предварительной установки aml_autoscript.zip
Бокс грузит новый uboot с меню?
Т.е. приз - новый убут (который если поставить в emmc - андроид перестанет запускаться)
Так?

А андроид как с SD запустить?

Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 17 Январь 2020, 14:30:43
Надо не просто uBoot в образ вставить, а все, что  с 0 сектора до 1 раздела образа (это 1 или 16 мегабайт)
Я могу свой 1 МБ блок куда-то слить, а вы уже дербаньте его на составляющие и вставляйте  что кому нужно
Название: Re: Запуск android с SD карты
Отправлено: sfs от 17 Январь 2020, 14:36:05
Для тех, у кого emmc жив - пока не понятно, какие плюсы на выходе
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 17 Январь 2020, 18:07:21
Для тех, у кого emmc жив - пока не понятно, какие плюсы на выходе
Плюсы - для экспериментаторов-модификаторов андроида. Можно  проверять новые сборки не трогая основную внутри бокса
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 17 Январь 2020, 19:03:40
Это мой 0-блок 1MB. Я его вставляю WinHEX в образ Armbian и меняю в нем WinHEX таблицу разделов на ту, что в образе
https://yadi.sk/d/s-RoJNk1uhLUGQ
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 17 Январь 2020, 21:10:48
Вот тут - https://yadi.sk/d/K5wb0RwkU5iTWw я выложил распакованный утилитой AMLogicTools_V6.0.0 файл обновления андроида aml_upgrade_package.img для T95
Как я понимаю:
Level1 - нераспакованные файлы
Level2 - распакованное ядро, recovery ядро, SYSTEM
Level3 - распакованные картинки для boot анимации

Как собрать все это обратно для загрузки с SD &
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 15:13:38
Какой дистрибутив для s905 (T95 2G RAM) выбрать для работы с образами андроида и как оптимально настроить ?
Графическая оболочка не очень нужна, тк основное рабочее место - Win (интернет, закачки, хранение файлов и прочее)
Интересует оптимальное взаимодействие  линукса с  Win - , так чтобы было удобно перемещать файлы между системами (WinSCP или что-то подобное)
Название: Re: Запуск android с SD карты
Отправлено: sfs от 18 Январь 2020, 15:23:09
Тогда подойдет любой линукс
Наиболее просто использовать этот (http://forum.puppyrus.org/index.php?topic=20045.0). Свежее ядро под боксы из коробки
ssh ftp и т.п. есть везде
fat и ntfs линукс монтирует на чтение. На них и сохраняйте
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 16:50:52
Тогда подойдет любой линукс
Наиболее просто использовать этот. Свежее ядро под боксы из коробки
ssh ftp и т.п. есть везде
Поставил  Armbian_19.11.3_Aml-g12_buster_legacy_5.3.0_desktop_20191126, но его теперь надо еще и правильно настроить.
Пакеты я сразу обновил, таймзону и RU локали добавил, а вот как FTP/SFTP сервер настроить ?
ps
Разобрался с FTP :)
pps
У меня USB карт-ридер для SD карт видится как /dev/sda. Какие могут быть особенности при работе с SD ?

Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 18:46:53
После распаковки образа в Layer1 есть файл: image.cfg,
с таким содержимым:
Цитата
[LIST_NORMAL]
file="DDR.USB"         main_type="USB"         sub_type="DDR"
file="UBOOT.USB"      main_type="USB"         sub_type="UBOOT"
file="aml_sdc_burn.UBOOT   main_type="UBOOT"              sub_type="aml_sdc_burn"
file="aml_sdc_burn.ini"   main_type="ini"          sub_type="aml_sdc_burn"
file="manifest.xml"      main_type="xml"         sub_type="manifest"
file="meson1.dtb"      main_type="dtb"         sub_type="meson1"
file="platform.conf"      main_type="conf"             sub_type="platform"

[LIST_VERIFY]
file="boot.PARTITION"      main_type="PARTITION"      sub_type="boot"
file="bootloader.PARTITION"   main_type="PARTITION"      sub_type="bootloader"
file="logo.PARTITION"      main_type="PARTITION"      sub_type="logo"
file="recovery.PARTITION"           main_type="PARTITION"      sub_type="recovery"
file="system.PARTITION"      main_type="PARTITION"      sub_type="system"
Что-бы это значило ?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 21:01:20
внутри Level2 есть папка dtb, а в ней текстовый файл - dtb_1
Цитата
/dts-v1/;
/ {
   model = "Amlogic";
   compatible = "amlogic, Gxbb";
   interrupt-parent = <0x1>;
   #address-cells = <0x2>;
   #size-cells = <0x2>;
......
Часы на передней панели ;)
Цитата
fd628_dev {
      compatible = "amlogic,fd628_dev";
      status = "okay";
      clk_pin = <0x1f 0x58 0x0>;
      dat_pin = <0x1f 0x59 0x0>;
      stb_pin = <0x1f 0x5a 0x0>;
   };
Таблица разделов ?
Спойлер
Цитата
partitions {
      parts = <0xb>;
      part-0 = <0x34>;
      part-1 = <0x35>;
      part-2 = <0x36>;
      part-3 = <0x37>;
      part-4 = <0x38>;
      part-5 = <0x39>;
      part-6 = <0x3a>;
      part-7 = <0x3b>;
      part-8 = <0x3c>;
      part-9 = <0x3d>;
      part-10 = <0x3e>;

      logo {
         pname = "logo";
         size = <0x0 0x2000000>;
         mask = <0x1>;
         linux,phandle = <0x34>;
         phandle = <0x34>;
      };

      recovery {
         pname = "recovery";
         size = <0x0 0x2000000>;
         mask = <0x1>;
         linux,phandle = <0x35>;
         phandle = <0x35>;
      };

      rsv {
         pname = "rsv";
         size = <0x0 0x800000>;
         mask = <0x1>;
         linux,phandle = <0x36>;
         phandle = <0x36>;
      };

      tee {
         pname = "tee";
         size = <0x0 0x800000>;
         mask = <0x1>;
         linux,phandle = <0x37>;
         phandle = <0x37>;
      };

      crypt {
         pname = "crypt";
         size = <0x0 0x2000000>;
         mask = <0x1>;
         linux,phandle = <0x38>;
         phandle = <0x38>;
      };

      misc {
         pname = "misc";
         size = <0x0 0x2000000>;
         mask = <0x1>;
         linux,phandle = <0x39>;
         phandle = <0x39>;
      };

      instaboot {
         pname = "instaboot";
         size = <0x0 0x20000000>;
         mask = <0x1>;
         linux,phandle = <0x3a>;
         phandle = <0x3a>;
      };

      boot {
         pname = "boot";
         size = <0x0 0x2000000>;
         mask = <0x1>;
         linux,phandle = <0x3b>;
         phandle = <0x3b>;
      };

      system {
         pname = "system";
         size = <0x0 0x40000000>;
         mask = <0x1>;
         linux,phandle = <0x3c>;
         phandle = <0x3c>;
      };

      cache {
         pname = "cache";
         size = <0x0 0x20000000>;
         mask = <0x2>;
         linux,phandle = <0x3d>;
         phandle = <0x3d>;
      };

      data {
         pname = "data";
         size = <0xffffffff 0xffffffff>;
         mask = <0x4>;
         linux,phandle = <0x3e>;
         phandle = <0x3e>;
      };
   };

[свернуть]
Есть и PartitionTable
Название: Re: Запуск android с SD карты
Отправлено: sfs от 18 Январь 2020, 21:14:42
Часы на передней панели
Как можно было догадаться что это часы?
Какие могут быть особенности при работе с SD ?
Некоторые тормозные
Любые могут умереть. Делайте бэкапы
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 21:28:12
Как можно было догадаться что это часы?
Я по названию fd628 догадался :)
вот их в LibreELEC запускают:

LED (VFD) Displays in LibreELEC (https://forum.libreelec.tv/thread/11736-led-vfd-displays-in-libreelec/?pageNo=1)
Цитата
The FD628 Service Kodi add-on has been updated as well, check out the configuration dialog to see the new features.
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Январь 2020, 21:31:12
Любые могут умереть. Делайте бэкапы
Сохранять всю SD в образ для бэкапа ?
У меня Кингстон 10 класс 80MB/s
Название: Re: Запуск android с SD карты
Отправлено: sfs от 19 Январь 2020, 08:17:52
Сохранять всю SD в образ для бэкапа ?
Смотря какую инфу храните. Дистр можно перенакатить с образа. Свои настройки - наработки лучше на sd не держать
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 19 Январь 2020, 18:03:39
Как правильно сформировать 0 блок образа и какая его правильная структура ?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 19 Январь 2020, 21:29:28
Нашел исходники распаковщика - https://www.cnx-software.com/2016/11/19/how-to-create-a-bootable-recovery-sd-card-for-amlogic-tv-boxes/
Название: Re: Запуск android с SD карты
Отправлено: sfs от 20 Январь 2020, 09:26:24
А "запаковщик" не нашли?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 20 Январь 2020, 12:47:50
А "запаковщик" не нашли?
"Запаковщик" готовый есть только для образов прошивки зубочисткой

Нужен образ внутр флеш с андроидом для образца, тогда будет проще разобраться
Название: Re: Запуск android с SD карты
Отправлено: midnighter от 21 Январь 2020, 05:53:56
Не совсем по теме.
Вот недавно наткнулся случайно на форпда - TWRP запускаемый из стокового рекавери.
https://4pda.ru/forum/index.php?showtopic=568132&st=2580#entry92355662
Если кто не знает.
TWRP - это "продвинутый" рекавери, позволяющий не только делать сброс и обновляться, а делать и восстонавливать бекапы, форматировать, переразмечать разделы. Есть терминал и простенький фм и т.д.
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 21 Январь 2020, 14:51:19
Не совсем по теме.
Вот недавно наткнулся случайно на форпда - TWRP запускаемый из стокового рекавери.
С SD каточки как его запустить, есть готовый  загрузочный образ ?
Название: Re: Запуск android с SD карты
Отправлено: midnighter от 28 Январь 2020, 15:18:48
С SD каточки как его запустить, есть готовый  загрузочный образ ?
Из штатного рекавери или из самого андроида выбрать пункт > обновление и указать на архив .
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 30 Январь 2020, 11:32:53
интересная инструкция ;) - https://eltex-co.ru/upload/iblock/520/Firmware_customization_for_NV-7xx_through_SDK.pdf
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 30 Январь 2020, 13:24:34
Андроид SDK на Armbian будет работать ?
Название: Re: Запуск android с SD карты
Отправлено: sfs от 30 Январь 2020, 14:45:34
можете сами найти "как запускать ведро с SD карты") :)
http://wiki.friendlyarm.com/wiki/index.php/Main_Page
Название: Re: Запуск android с SD карты
Отправлено: sfs от 31 Январь 2020, 10:07:03
Совет конечно дельный :) и интересного там много ! Обязательно постараюсь посмотреть и понять!
Но задача проще - не надо делать сложные загрузчики с меню.  У меня есть только SD.
На ней нужно создать структуру аналогичную внутр флеш. И исправить пути монтирования.
Собрать можно в файле-образе.  Для знающих это дело нескольких минут, а мне приходиться изучать все пошагово.
Сегодня подключился к КII pro терминалом и копирую разделы внутр флеш на юсб винт
Цитата
/dev/block/platform/d0074000.emmc/by-num:
p1 и до p14
Если-бы я заранее слил все с живого андроида Т95, то сейчас было-бы проще ;)
Загрузчик с меню тоже интересно, но это другая задача
Я не "знающий" сходу ничем не помогу

Вас интересует только андроид? Линукс нет?
Твбокс только этот - без emmc?

Нашел вроде, что-то близкое (http://wiki.friendlyarm.com/wiki/index.php/Android_FAQ#.E5.A6.82.E4.BD.95.E6.9B.B4.E6.94.BAMac.E5.9C.B0.E5.9D.80.3F)
Только на китайском
Название: Re: Запуск android с SD карты
Отправлено: sfs от 31 Январь 2020, 10:25:02
http://wiki.friendlyarm.com/wiki/index.php/How_to_make_your_own_SD-bootable_ROM
По ссылке для каждого девайса в конце про андроид
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 31 Январь 2020, 11:45:31
Вас интересует только андроид? Линукс нет?Твбокс только этот - без emmc?

Да, интересует на текущий момент только андроид для ТВ-бокса без emmc !
С линуксом из готового образа я разобрался, там самое главное оказалось - поместить uBoot на SD и иметь правильный dtb.img  + правильный скрипт uBoot для запуска.

Вчера слил все разделы андроида с K-II pro, попробую собрать образ.
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 31 Январь 2020, 11:55:24
По ссылке для каждого девайса в конце про андроид

Это еще понять надо !
Спойлер
Build Android8
git clone https://gitlab.com/friendlyelec/rk3399-android-8.1 --depth 1 -b master
cd rk3399-android-8.1
./build-nanopc-t4.sh -F -M
wget http://112.124.9.243/dvdfiles/RK3399/images-for-eflasher/android-oreo-images.tgz
tar xzf android-oreo-images.tgz
cp rockdev/Image-nanopc_t4/* android8


Copy the new image files to the exfat partition of the eflasher sd card:
cp -af android8 /mnt/exfat/

[свернуть]
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 02 Февраль 2020, 11:58:31
K-II Pro:
Спойлер
root@kiipro:/ # ls /dev/block/platform/ -alR

/dev/block/platform/:
drwxr-xr-x root     root              2015-01-01 03:00 d0074000.emmc
drwxr-xr-x root     root              2020-02-02 10:41 dwc2_a

/dev/block/platform//d0074000.emmc:
lrwxrwxrwx root     root              2015-01-01 03:00 boot -> /dev/block/boot
lrwxrwxrwx root     root              2015-01-01 03:00 bootloader -> /dev/block/bootloader
drwxr-xr-x root     root              2015-01-01 03:00 by-num
lrwxrwxrwx root     root              2015-01-01 03:00 cache -> /dev/block/cache
lrwxrwxrwx root     root              2015-01-01 03:00 crypt -> /dev/block/crypt
lrwxrwxrwx root     root              2015-01-01 03:00 data -> /dev/block/data
lrwxrwxrwx root     root              2015-01-01 03:00 env -> /dev/block/env
lrwxrwxrwx root     root              2015-01-01 03:00 instaboot -> /dev/block/instaboot
lrwxrwxrwx root     root              2015-01-01 03:00 logo -> /dev/block/logo
lrwxrwxrwx root     root              2015-01-01 03:00 misc -> /dev/block/misc
lrwxrwxrwx root     root              2015-01-01 03:00 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx root     root              2015-01-01 03:00 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx root     root              2015-01-01 03:00 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx root     root              2015-01-01 03:00 mmcblk0rpmb -> /dev/block/mmcblk0rpmb
lrwxrwxrwx root     root              2015-01-01 03:00 recovery -> /dev/block/recovery
lrwxrwxrwx root     root              2015-01-01 03:00 reserved -> /dev/block/reserved
lrwxrwxrwx root     root              2015-01-01 03:00 rsv -> /dev/block/rsv
lrwxrwxrwx root     root              2015-01-01 03:00 system -> /dev/block/system
lrwxrwxrwx root     root              2015-01-01 03:00 tee -> /dev/block/tee

/dev/block/platform//d0074000.emmc/by-num:
lrwxrwxrwx root     root              2015-01-01 03:00 p1 -> /dev/block/bootloader
lrwxrwxrwx root     root              2015-01-01 03:00 p10 -> /dev/block/misc
lrwxrwxrwx root     root              2015-01-01 03:00 p11 -> /dev/block/instaboot
lrwxrwxrwx root     root              2015-01-01 03:00 p12 -> /dev/block/boot
lrwxrwxrwx root     root              2015-01-01 03:00 p13 -> /dev/block/system
lrwxrwxrwx root     root              2015-01-01 03:00 p14 -> /dev/block/data
lrwxrwxrwx root     root              2015-01-01 03:00 p2 -> /dev/block/reserved
lrwxrwxrwx root     root              2015-01-01 03:00 p3 -> /dev/block/cache
lrwxrwxrwx root     root              2015-01-01 03:00 p4 -> /dev/block/env
lrwxrwxrwx root     root              2015-01-01 03:00 p5 -> /dev/block/logo
lrwxrwxrwx root     root              2015-01-01 03:00 p6 -> /dev/block/recovery
lrwxrwxrwx root     root              2015-01-01 03:00 p7 -> /dev/block/rsv
lrwxrwxrwx root     root              2015-01-01 03:00 p8 -> /dev/block/tee
lrwxrwxrwx root     root              2015-01-01 03:00 p9 -> /dev/block/crypt

/dev/block/platform//dwc2_a:
drwxr-xr-x root     root              2020-02-02 10:41 by-num
lrwxrwxrwx root     root              2020-02-02 10:41 sda -> /dev/block/sda
lrwxrwxrwx root     root              2020-02-02 10:41 sda1 -> /dev/block/sda1

/dev/block/platform//dwc2_a/by-num:
lrwxrwxrwx root     root              2020-02-02 10:41 p1 -> /dev/block/sda1
[свернуть]
boot = 4096k (MBR нет, uBoot начинается с 0x1000, а не с 0x1200 как у Т95  в образах для  SD)
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 03 Февраль 2020, 13:37:20
В итогше получилось?
Ничего.  Слил все блоки в один файл образа и пока остановился.
На живом K-II Pro экспериментировать не хочу, а образа образа (дампа) от T95 у меня нет
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 04 Февраль 2020, 11:41:24
Дали мне TWRP бэкап  с живого T95M
TWRP cливает поблочно:
Спойлер
boot.emmc.win       
bootloader.emmc.win
cache.ext4.win     
crypt.emmc.win     
data.ext4.win000   
data.ext4.win001   
instaboot.emmc.win 
logo.emmc.win       
recovery.emmc.win   
reserved.emmc.win   
rsv.emmc.win       
system.ext4.win     
tee.emmc.win       
[свернуть]
Где править пути для загрузки с SD ?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 06 Февраль 2020, 08:11:30
Соответствие разделов слитым через TWRP файлам:
Спойлер
p1 -> /dev/block/bootloader   bootloader.emmc.win
 p2 -> /dev/block/reserved      reserved.emmc.win
 p3 -> /dev/block/cache      cache.ext4.win
 p4 -> /dev/block/env
 p5 -> /dev/block/logo      logo.emmc.win
 p6 -> /dev/block/recovery   recovery.emmc.win
 p7 -> /dev/block/rsv           rsv.emmc.win
 p8 -> /dev/block/tee           tee.emmc.win
 p9 -> /dev/block/crypt      data.ext4.win000
p10 -> /dev/block/misc
p11 -> /dev/block/instaboot   instaboot.emmc.win
p12 -> /dev/block/boot      boot.emmc.win
p13 -> /dev/block/system        ee.emmc.win
p14 -> /dev/block/data      data.ext4.win000  data.ext4.win001
[свернуть]
нет
p4 -> /dev/block/env
p10 -> /dev/block/misc

и
p14 -> /dev/block/data из двух файлов - data.ext4.win000  data.ext4.win001
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 06 Февраль 2020, 11:47:40
я о...ю, дорогие товарищи ... !!!

Спойлер
OpenWRT on android  ???
https://youtu.be/_ReqlwvR5_0
[свернуть]
Название: Re: Запуск android с SD карты
Отправлено: midnighter от 06 Февраль 2020, 17:15:20
Где править пути для загрузки с SD ?
У Вас на боксе ссзади есть видеовыход "тюльпан"? В нём должна быть кнопочка. Зажмите ёё зубочисткой и включите питание. Должен запуститься рекавери. В нем выбрать обновление и указать на зип-архив (ссылку я давал на предыдущей странице). Должен запуститься TWRP. В нём восстановить на своё устройство данный Вам дамп.
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 07 Февраль 2020, 07:55:56
У Вас на боксе ссзади есть видеовыход "тюльпан"? В нём должна быть кнопочка. Зажмите ёё зубочисткой и включите питание. Должен запуститься рекавери. В нем выбрать обновление и указать на зип-архив (ссылку я давал на предыдущей странице). Должен запуститься TWRP. В нём восстановить на своё устройство данный Вам дамп.
У меня внутренний флеш (eMMC) накрылся, рекавери не запустится, тк его нет :)
И кнопочка не в "тюльпане", а в мини-джеке (3,5 мм)
зы
У K-II Pro кнопочка в "пузе"
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 09 Февраль 2020, 12:54:54
Убрал  с загрузочной SD из FAT-раздела все файлы и записал блок от андроида T95 - boot.emmc.win (ядро) под именем recovery.img

Пошла загрузка линукса :
Цитата
Starting kernel ...

uboot time: 5254679 us
[    0.000000@0] Initializing cgroup subsys cpu
[    0.000000@0] Initializing cgroup subsys cpuacct
[    0.000000@0] Linux version 3.14.29-g0492a01-dirty (it01@ubuntu) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #1 SMP PREEMPT Thu May 12 10:12:26 CST 2016
[    0.000000@0] CPU: AArch64 Processor [410fd034] revision 4

нашлась SD карточка и внутр флеш:
Цитата
[    2.401725@1] emmc: new high speed MMC card at address 0001
[    2.401750@1] emmc: clock 50000000, 8-bit-bus-width
 
[    2.406884@0] mmcblk1: emmc:0001 M MOR 7.21 GiB
[    2.411499@0] mmcblk1boot0: emmc:0001 M MOR partition 1 2.00 MiB
[    2.417547@0] mmcblk1boot1: emmc:0001 M MOR partition 2 2.00 MiB
[    2.423591@0] mmcblk1rpmb: emmc:0001 M MOR partition 3 128 KiB
[    2.425628@3] [aml_sd_emmc_probe] aml_sd_emmc_probe() success!
[

а дальше обращение к внутр флеш:
Цитата
[    2.435742@1]  mmcblk1: unknown partition table
[    2.436081@1] [mmc_read_partition_tbl] magic error:
[    2.436083@1] [mmc_read_partition_tbl]: partition verified error
[    2.436085@1] [mmc_read_partition_tbl] mmc read partition ERROR!
[    2.436322@0] amlmmc_dtb_init: register dtb chardev
[    2.436396@0] amlmmc_dtb_init: register dtb chardev OK
[    2.436397@0] Exit aml_emmc_partition_ops OK.
[    2.437243@0]  mmcblk1boot1: unknown partition table
[    2.437864@0]  mmcblk1boot0: unknown partition table
[    2.438033@0] clear_emmc_wait_flag
ядро загрузилось и в конце пошла ошибка :
Цитата
[   24.429227@0] init: property 'ro.product.manufacturer' doesn't exist while expanding '${ro.product.manufacturer}'
[   24.439288@0] init: cannot expand '${ro.product.manufacturer}' while writing to '/sys/class/android_usb/android0/iManufacturer'
[   24.450693@0] init: property 'ro.product.model' doesn't exist while expanding '${ro.product.model}'
[   24.459640@0] init: cannot expand '${ro.product.model}' while writing to '/sys/class/android_usb/android0/iProduct'
[   24.470002@0] init: property 'ro.usb.vendor.string' doesn't exist while expanding '${ro.usb.vendor.string}'
[   24.479652@0] init: cannot expand '${ro.usb.vendor.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/vendor_string'
[   24.492082@0] init: property 'ro.usb.product.string' doesn't exist while expanding '${ro.usb.product.string}'
[   24.501910@0] init: cannot expand '${ro.usb.product.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/product_string'
[   24.545847@0] init: cannot find '/system/bin/FD628_Demo', disabling 'fd628'
[   24.547273@0] init: property 'ro.product.manufacturer' doesn't exist while expanding '${ro.product.manufacturer}'
[   24.557366@0] init: cannot expand '${ro.product.manufacturer}' while writing to '/sys/class/android_usb/android0/iManufacturer'
[   24.568772@0] init: property 'ro.product.model' doesn't exist while expanding '${ro.product.model}'
[   24.577732@0] init: cannot expand '${ro.product.model}' while writing to '/sys/class/android_usb/android0/iProduct'
[   24.588079@0] init: property 'ro.usb.vendor.string' doesn't exist while expanding '${ro.usb.vendor.string}'
[   24.597734@0] init: cannot expand '${ro.usb.vendor.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/vendor_string'
[   24.610158@0] init: property 'ro.usb.product.string' doesn't exist while expanding '${ro.usb.product.string}'
[   24.619987@0] init: cannot expand '${ro.usb.product.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/product_string'
[   25.228472@0] binder: 2711:2711 transaction failed 29189, size 0-0
[   25.658518@0] CPU1: shutdown
[   26.229522@0] binder: 2711:2711 transaction failed 29189, size 0-0
[   27.230469@0] binder: 2711:2711 transaction failed 29189, size 0-0
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Февраль 2020, 14:25:27
Так и не понял логику загрузки андроида из внутр. флеша :(
FAT раздела там нет.
Видимо там uboot и его переменные другие чем в SD карточке ...

Буду разбираться дальше !
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 16 Февраль 2020, 17:29:01
возможно еще и в этом причина :
Цитата
reading dtb.img
** Unable to read file dtb.img **
ee_gate_off ...

Цитата
      Amlogic multi-dtb tool
      Cannot find legal dtb!
load dtb from 0x1000000 ......
ERROR: image is not a fdt - must RESET the board to recover.

Спойлер
зы
Аппаратная конфигурация, редактирование файла dtb в Linux с ядром Mainline 4.9.X (https://pcminipro.ru/os/apparatnaya-konfiguratsiya-redaktirovanie-fajla-dtb-v-linux-s-yadrom-mainline-4-9-x/)
[свернуть]
Название: Re: Запуск android с SD карты
Отправлено: sfs от 17 Февраль 2020, 16:05:17
PhoenixCard (https://pcminipro.ru/os/android-h3droid-i-dr/ustanovka-android-na-orange-pi-s-pomoshhyu-phoenixcard/)
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Февраль 2020, 10:38:05
PhoenixCard
Надо учить китайский ;)
草泥马
PhoenixCard.ini
Цитата
[Option]
Option=1250
;option=0为系统默认语言,option=936为简体中文,其余状态为英文

CtrlCnt=25
InfoCnt=54

936=SChinese
1250=English
И будет на англ.  :)
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 18 Февраль 2020, 18:51:29
Цитата
Phoenixcard – это бесплатное программное обеспечение на базе Windows, предназначенное для создания загрузочных образов и записи их на подключенные съемные диски, такие как SDCARD или MicroSD.
Затем съемный диск помещается в целевое устройство, и устройство загружается со съемного диска, применяя обновление или полное восстановление образа для целевого устройства.
Используется специально для процессоров Allwinner A10 ARM.
:'(

тут - https://4minipc.ru/programmy/programmnoe-obespechenie-phoenixcard-v3-09.html
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 19 Февраль 2020, 11:42:05
Может тут  смотреть надо - https://github.com/codesnake/uboot-amlogic/tree/master/nand_spl
в разных SPL для внутр. флеш и SD карточки ?
А там может и различия в uBoot для внутр. флеш и SD найдутся ?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 19 Февраль 2020, 12:38:03
Вот еще из вики
Цитата
U-Boot does not need to be able to read a filesystem in order for the kernel to use it as a root filesystem or initial ramdisk;
U-Boot simply provides an appropriate parameter to the kernel, and/or copies the data to memory without understanding its contents.


However, U-Boot can also read from (and in some cases, write to) filesystems.
This way, rather than requiring the data that U-Boot will load to be stored at a fixed location on the storage device, U-Boot can read the filesystem to search for and load the kernel, device tree, etc., by pathname.

Загрузка андроида из внутр. флеш - первый вариант.
Линукс с SD - второй.
Название: Re: Запуск android с SD карты
Отправлено: sfs от 20 Февраль 2020, 14:51:22
http://forum.puppyrus.org/index.php?topic=19887.0
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 21 Февраль 2020, 11:24:28
Спасибо !
http://forum.puppyrus.org/index.php?topic=19887.0
Цитата
На amlogic будет немного своей специфики, но может получиться
Спасибо +

Получилось на  amlogic  ?

Я пока уперся в эту "специфику" :(
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 21 Февраль 2020, 15:59:08
Нет. сортировал темы - думал Вы не видели
Не видел. Спасибо !
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 23 Февраль 2020, 17:54:49
Если я правильно понял признаком начала двоичного кода uBoot является сигнатура "@AML" (40 41 4D 4C) со смещением в 16 байт от начала.
В файле bootloader (4Мб) uBoot сразу с начала файла!
На SD карту uBoot пишется с адреса 0x0200h, а с 0x0000h по 0x01FFh записан   SPL и таблица разделов (с адреса 0x01BEh)
На внутреннюю флеш uBoot пишется с 0 адреса ? Или перед ним тоже есть SPL ?
Где тогда находится таблица разделов на внутр флеш ?
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 05 Март 2020, 10:39:28
Обзор защиты ПО процессора S905X (secured boot) (https://habr.com/ru/post/488982/)
Цитата
Процессор S905X — это ARM Cortex-A53 с тактовой частотой до 1,5GHz, напичканый всевозможными декодерами для видео и аудио потоков, как например H.265 4K, VP9, поддерживающий 4КUHD и т.д.
В общем не самый плохой выбор.
В отличии от своего предшествинника, AMLogic встроила в этот процессор так называемую «Advanced TrustZone security system», которая контроллирует все критичиские системные операции, например такие как обращение к защищённым участкам памяти ROM'а, проверку сигнатуры и расшифровку ПО и т.п.
Детальную документацию на эту тему можно найти на сайте производителя (https://developer.arm.com/ip-products/security-ip/trustzone).
В качестве SecureOS выступает ATOS-V1.5-g3e467d9
Название: Re: Запуск android с SD карты
Отправлено: Gennadyi от 05 Март 2020, 11:41:06
По запуску андроида с SD/
если я правильно понял написанное здесь - https://github.com/minghuascode/android-amlogic-kernel/blob/master/build01-openlinux/README-build-linux-android
Спойлер
Цитата
Android
  5.Running Android from an SD Card
  =====================================
   
  Instead of running Android from internal storage, you can run Android from SD card.
   
  You will need to prepare the SD card as follow:
   
  $ sudo fdisk /dev/<your sdcard,for example sdd>
  Command (m for help): p
   
  Disk /dev/sdd: 1977 MB, 1977614336 bytes
  64 heads, 63 sectors/track, 957 cylinders
  Units = cylinders of 4032 * 512 = 2064384 bytes
  Disk identifier: 0x00000000
   
  Device Boot Start End Blocks Id System
  /dev/sdd1 1 30 60448+ b W95 FAT32
  /dev/sdd2 31 957 1868832 83 Linux
   
  Format the partitions using the following commands:
   
  $ sudo mkfs.msdos /dev/sdd1
  $ sudo mkfs.ext3 /dev/sdd2
   
  Download a kernel the Android release from here and placed it in the FAT32 partition:
   
  $ sudo mkdir -p /mnt/fat32
  $ sudo mount /dev/sdd1 /mnt/fat32
  $ sudo cp uImage.android /mnt/fat32
   
  Unpack the Android rootfs tarball prepared earlier onto the EXT2 partition:
   
  $ sudo mkdir -p /mnt/ext3
  $ sudo mount /dev/sdd2 /mnt/ext3
  $ sudo tar jxfv out/target/product/m1ref/rootfs.tar.bz2 --numeric-owner -C /mnt/ext3
   
  And the final steps:
   
  $ sync
  $ sudo umount /mnt/fat32
  $ sudo umount /mnt/ext3
   
  Now you can take the SD card and insert into the M1 reference board, at the uboot
  command line prompt, issue the following command:
   
  # setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0:1 82000000 uImage.android;bootm 82000000;'
  # setenv bootargs 'console=ttyS0,115200n8 root=/dev/cardblksd2 rw rootfstype=ext3 init=/init mac=${ethaddr} rootwait'
  # saveenv
  # boot
[свернуть]
на SD дожен быть (с 0 адреса) загрузчик, MBR, uBoot и два раздела: 1 - FAT, для загрузки uImage и 2 - ext3 со структурой линуксовых разделов андроида ?

В случае чистого линукса - аналогично, но не надо создавать во втором разделе дополнительную структуру ?
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 10 Март 2020, 18:22:17
На amlogic будет немного своей специфики, но может получиться
Спасибо +
Вот со спецификой и проблема !
может стоит объединить темы ? -  Запуск android с SD карты  (http://forum.puppyrus.org/index.php?topic=22343.0)
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 15 Март 2020, 12:05:21
объединил
Спасибо !

Какой uBoot использовать для запуска Андроида с SD карточки ?
тот, что записывается на SD для обновления прошивки или что-то еще можно ? (и где это "что-то" брать?)
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 15 Март 2020, 12:30:33
Судя по
на AML не используется внешний u-boot (если конечно самому руками его не стереть из eMMC)
в зависимости от железа
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 15 Март 2020, 14:22:48
Судя по
Цитата: balbes150 от 04 Март 2020, 15:30:53
на AML не используется внешний u-boot (если конечно самому руками его не стереть из eMMC)
в зависимости от железа

Как понимать - "внешний" ? На SD - это какой ?
Про железо я уже писал - T95 на s905, для линукса подошел meson-g12b-odroid-n2.dtb
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 15 Март 2020, 14:52:17
Вот это в логе загрузки что значит ?
Цитата
Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x000000b0
Load bl30 from SD, src: 0x00010200, des: 0x01000000, size: 0x0000a9b0
Sending bl30...........................................OK.
Run bl30...
Load bl301 from SD, src: 0x0001c200, des: 0x01000000, size: 0x00001c20
Wait bl30...Done
Sending bl301........OK.
Run bl301...
Load bl31 from SD
, src: 0x00020200, des: 0x10100000, size: 0x00011130
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 15 Март 2020, 18:21:07
Как понимать - "внешний" ? На SD - это какой ?
насколько я понял - это внешний
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 15 Март 2020, 20:17:43
насколько я понял - это внешний
Что-то мне кажется, что все сложнее и проще одновременно !
если нет никакой внешней ( по отношению к процессору) памяти с ПО (внутр флеш, SD или еще что-то) то внутренняя (вшитая в чип) программа постоянно опрашивает внешние устройства:
Цитата
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:F3;SD:800;USB:8;LOOP:1;
если она найдет, то
Цитата
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:F3;SD:0;READ:0;CHK:0;
Спойлер
Цитата
no sdio debug board detected
BL2 Built : 15:24:17, Oct 28 2015.
gxb g5d0d038 - xiaobo.gu@droid05


Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x000000b0
Load bl30 from SD, src: 0x00010200, des: 0x01000000, size: 0x0000a9b0
Sending bl30...........................................OK.
Run bl30...
Load bl301 from SD, src: 0x0001c200, des: 0x01000000, size: 0x00001c20
Wait bl30...Done
Sending bl301........OK.
Run bl301...
Load bl31 from SD
, src: 0x00020200, des: 0x10100000, size: 0x00011130
--- UART initialized after reboot ---
[Reset cause: unknown]
[Image: unknown, amlogic_v1.1.3048-cfe1053 2015-12-04 16:31:11 xing.xu@droid05]
bl30: check_permit, count is 1
bl30: check_permit: ok!
chipid: ef be ad deLoad bl33 from SD, src: 0x00034200, des: 0x01000000, size: 0x0009ec90
 d f0 ad ba ef be ad de not ES chip
efuse init ops = 13
efuse init hdcp = c, cf9=7
[0.367469 Inits done]
secure task start!
high task start!
low task start!
NOTICE:  BL3-1: v1.0(debug):02cce1e
NOTICE:  BL3-1: Built : 15:47:40, Nov  6 2015
INFO:    BL3-1: Initializing runtime services
INFO:    BL3-1: Preparing for EL3 exit to normal world
INFO:    BL3-1: Next image address = 0x1000000
INFO:    BL3-1: Next image spsr = 0x3c9
[свернуть]
а дальше это уже uBoot
Цитата
U-Boot 2015.01-g685bb0b-dirty (Jan 08 2016 - 16:40:53)
DRAM:  2 GiB
и в логе uBoot у меня
Цитата
mmc read lba=0x14000, blocks=0x400
      Amlogic multi-dtb tool
      Cannot find legal dtb!
start dts,buffer=0000000073ec8d70,dt_addr=0000000073ec8d70
get_partition_from_dts: FDT_ERR_BADMAGIC
!!!!get dts FAILED
mmc get partition error!
get partition info failed !!

Using default environment
а при нормальной загрузке андроида так
Спойлер
Цитата
mmc read lba=0x14000, blocks=0x400
      Amlogic multi-dtb tool
      Multi dtb detected
      Multi dtb tool version: v2 .
      Support 2 dtbs.
        aml_dt soc: gxl platform: sx6b6x variant: 1g
        dtb 0 soc: gxl   plat: sx6b6x   vari: 1g
        dtb 1 soc: gxl   plat: sx6b6x   vari: 2g
      Find match dtb: 0
start dts,buffer=0000000033ecd270,dt_addr=0000000033ecda70
parts: 11
00:      logo   0000000002000000 1
01:  recovery   0000000002000000 1
02:       rsv   0000000000800000 1
03:       tee   0000000000800000 1
04:     crypt   0000000002000000 1
05:      misc   0000000002000000 1
06: instaboot   0000000020000000 1
07:      boot   0000000002000000 1
08:    system   0000000050000000 1
09:     cache   0000000040000000 2
10:      data   ffffffffffffffff 4
get_dtb_struct: Get emmc dtb OK!
overide_emmc_partition_table: overide cache
[mmc_get_partition_table] skip partition cache.
Partition table get from SPL is :
        name                        offset              size              flag
===================================================================================
   0: bootloader                         0            400000                  0
   1: reserved                     2400000           4000000                  0
   2: cache                        6c00000          40000000                  2
   3: env                         47400000            800000                  0
   4: logo                        48400000           2000000                  1
   5: recovery                    4ac00000           2000000                  1
   6: rsv                         4d400000            800000                  1
   7: tee                         4e400000            800000                  1
   8: crypt                       4f400000           2000000                  1
   9: misc                        51c00000           2000000                  1
  10: instaboot                   54400000          20000000                  1
  11: boot                        74c00000           2000000                  1
  12: system                      77400000          50000000                  1
  13: data                        c7c00000         10a400000                  4
mmc read lba=0x12000, blocks=0x2
mmc read lba=0x12002, blocks=0x2
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
[свернуть]

Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 16 Март 2020, 16:09:22
 Общий ликбез по eMMC/moviNAND проблемам. ( в разработке )  (http://www.gsmforum.ru/threads/193588)
Цитата
eMMC память по подключению мало отличается от простой MMC карты , известны даже случаи успешной подмены чипа eMMC обычной SD-MMC картой *
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 16 Март 2020, 16:19:59
What exactly happened before entering u-boot? (https://forum.khadas.com/t/what-happened-before-entering-u-boot/2387)
Цитата
Hi,

first, the SoC loads the BL1 (first lever bootloader) from maskrom, then depending on state described by the flowchart in the S912 datasheet, BL1 loads and authenticates BL2 from external storage.

BL2 is mainly in charge of setting up DDR and clocks, then it loads and authenticates BL30 from the same storage as itself.

BL30 is in charge of various things like setting up (undisclosed) security stuff and loading the firmware of the cortex-M3 core that handles power-management and CPU cores DVFS (also known as SCPI in ARM terminology).

BL2 also loads/authenticates BL31, also called the secure monitor, running in trustzone and in charge of providing secure services to the main OS, and finally BL33, which is u-boot.
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 16 Март 2020, 16:25:44
This page contains the current name, abbreviated name and purpose of the various images referred to in the Trusted Firmware project. (https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/image-terminology.html)
Название: Re: Запуск Android с флэшки
Отправлено: balbes150 от 16 Март 2020, 17:58:34
на s905, для линукса подошел meson-g12b-odroid-n2.dtb
Не верю .... g12b = s922x
s905 и s922x это разные чипы, с не совместимыми DTB.
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 16 Март 2020, 19:20:14
Не верю .... g12b = s922x
И это Правильно !!!
Цитата
s905 и s922x это разные чипы, с не совместимыми DTB.
вот этот dtb :
meson-gxbb-p201.dtb
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 30 Октябрь 2020, 09:19:16
Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912 (https://habr.com/ru/post/525116/)

https://4pda.ru/forum/index.php?showtopic=998873&st=0#entry97732150
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 30 Октябрь 2020, 09:48:22
Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912
Практически получилось? Хорошо бы более пошаговую инструкцию...
Я правильно понял - любую прошивку, которая будет работать с внутреннего носителя - так не запустить?
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 07 Ноябрь 2020, 11:07:21
Не пробовал. Надо разбираться, а  у меня опыта маловато :( Может более опытные товарищи что подскажут :) !!!
на 4pda процесс идет - https://4pda.ru/forum/index.php?showtopic=998873&view=findpost&p=101318231
Цитата
На s905x есть прошивка андроид 8 с архитектурой arm64 aonly .Она находится на сайте freaktab.Такая же архитектура arm64 и у s912. Из неё можна сделать порт на новее андроид .Я лично делал из неё и андроид 10 .Но там по мелочам не доделовал а так работал.Если хотите улучшить посмотрите здесь прошивки с архитектурой arm64 aonly.Ещё сделал андроид 11 но с архитектурой a64 ab для s905x.Но там только начало нет gapps и браузер не скачивает приложения и нет twrp.Вот в таком состоянии пока но будет лучше.

https://4pda.ru/forum/index.php?showtopic=998873&view=findpost&p=101363461
Цитата
Сделал порт прошивки XVortex Android TV 9. v2.3.0 для S912 для запуска с SD-карты.
Особо ее пока не тестировал, но первое впечатление - это отличная ATV9.
Благодарим * XVortex.
Проверялась на KM8P 2G/8G. Из недостатков обнаружено следующее:
- Не работает пульт,
- Нет Wi-Fi.
Остальное работает.
Порядок установки и запуска прошивки с SD-карты описан в этом сообщении, раздел "Инструкция по установке". Или смотрим описание из архива прошивки.
 #

У меня 905 чип.
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 07 Ноябрь 2020, 11:15:12
тут прошивка и инструкция для 912 - https://4pda.ru/forum/index.php?showtopic=998873&view=findpost&p=100366180
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 07 Ноябрь 2020, 11:30:49
Если я правильно понял: главное - правильно задать адреса разделов и остальные параметры

Цитата
#include <string.h>
#include "mmcparts_a9.h"

//int mmc_partition_tbl_checksum_calc(struct partitions *part, int part_num);

void init_parts()
{
    memset(&g_mmcparts, 0, sizeof(struct mmc_partitions_fmt));
    strcpy(g_mmcparts.magic, MMC_PARTITIONS_MAGIC);

    struct partitions logo;
    strcpy(logo.name, "logo");
    logo.size = 0x800000;
    logo.offset = 0x2800000;
    logo.mask_flags = 0x1;

    struct partitions recovery;
    strcpy(recovery.name, "recovery");
    recovery.size = 0x1800000;
    recovery.offset = logo.offset + logo.size;
    recovery.mask_flags = 0x1;

    struct partitions misc;
    strcpy(misc.name, "misc");
    misc.size = 0x800000;
    misc.offset = recovery.offset + recovery.size;
    misc.mask_flags = 0x1;

    struct partitions dtbo;
    strcpy(dtbo.name, "dtbo");
    dtbo.size = 0x800000;
    dtbo.offset = misc.offset + misc.size;
    dtbo.mask_flags = 0x1;

    struct partitions cri_data;
    strcpy(cri_data.name, "cri_data");
    cri_data.size = 0x800000;
    cri_data.offset = dtbo.offset + dtbo.size;
    cri_data.mask_flags = 0x1;

    struct partitions rsv;
    strcpy(rsv.name, "rsv");
    rsv.size = 0x1000000;
    rsv.offset = cri_data.offset + cri_data.size;
    rsv.mask_flags = 0x1;

    struct partitions metadata;
    strcpy(metadata.name, "metadata");
    metadata.size = 0x1000000;
    metadata.offset = rsv.offset + rsv.size;
    metadata.mask_flags = 0x1;

    struct partitions vbmeta;
    strcpy(vbmeta.name, "vbmeta");
    vbmeta.size = 0x200000;
    vbmeta.offset = metadata.offset + metadata.size;
    vbmeta.mask_flags = 0x1;

    struct partitions param;
    strcpy(param.name, "param");
    param.size = 0x1000000;
    param.offset = vbmeta.offset + vbmeta.size;
    param.mask_flags = 0x1;

    struct partitions boot;
    strcpy(boot.name, "boot");
    boot.size = 0x1000000;
    boot.offset = param.offset + param.size;
    boot.mask_flags = 0x1;

    struct partitions tee;
    strcpy(tee.name, "tee");
    tee.size = 0x2000000;
    tee.offset = boot.offset + boot.size;
    tee.mask_flags = 0x1;

    struct partitions vendor;
    strcpy(vendor.name, "vendor");
    vendor.size = 0x14000000;
    vendor.offset = tee.offset + tee.size;
    vendor.mask_flags = 0x1;

    struct partitions odm;
    strcpy(odm.name, "odm");
    odm.size = 0x8000000;
    odm.offset = vendor.offset + vendor.size;
    odm.mask_flags = 0x1;

    struct partitions system;
    strcpy(system.name, "system");
    system.size = 0x62c00000;
    system.offset = odm.offset + odm.size;
    system.mask_flags = 0x1;

    struct partitions product;
    strcpy(product.name, "product");
    product.size = 0x8000000;
    product.offset = system.offset + system.size;
    product.mask_flags = 0x1;

    struct partitions cache;
    strcpy(cache.name, "cache");
    cache.size = 0x46000000;
    cache.offset = product.offset + product.size;
    cache.mask_flags = 0x2;

    struct partitions data;
    strcpy(data.name, "data");
    //data.size = 0xffffffff;
    //data.size = 3470 * SZ_1M;
    data.size = 0xe2c00000;
    data.offset = cache.offset + cache.size;
    data.mask_flags = 0x4;

    /*struct partitions ;
    strcpy(.name, "");
    .size = 0x800000;
    .offset = 0;
    .mask_flags = 0x1;*/

    struct partitions mmc_parts[] = { logo, recovery, misc, dtbo, cri_data, rsv,
   metadata, vbmeta, param, boot, tee, vendor, odm, system, product, cache, data };

    int mmc_parts_count = 17;

    for(int i = 0; i < mmc_parts_count; i++)
    {
   g_mmcparts.partitions = mmc_parts;
    }
    g_mmcparts.part_num = mmc_parts_count;
    g_mmcparts.checksum = mmc_partition_tbl_checksum_calc(mmc_parts, mmc_parts_count);
}

int mmc_partition_tbl_checksum_calc(struct partitions *part, int part_num)
{
    int i, j;
    uint32_t checksum = 0, *p;

    for (i = 0; i < part_num; i++) {
   p = (uint32_t *)part;

   for (j = sizeof(struct partitions)/sizeof(checksum);
      j > 0; j--) {
       checksum += *p;
       p++;
   }
    }

    return checksum;
}
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 08 Ноябрь 2020, 08:03:13
тут прошивка и инструкция для 912
У меня такого нет. Переадаптировать под другие не чувствую в себе сил
Главный вопрос - зачем  запускать андроид с флэшки : чтобы легко протестировать разные прошивки
Чтобы не заморачиваться с перешивкой, чреватой кирпичом
Если под флэшку нужны только специально подготовленные под определенные чипы андроиды  - теряется смысл
Название: Re: Запуск Android с флэшки
Отправлено: Gennadyi от 08 Ноябрь 2020, 10:22:19
1. Запуск любой ОС (в тос числе андроида) с SD интересен в первую очередь при  сдохшей внутренней флеш
(как у меня).
2. Самостоятельная сборка андроида - если умеешь, то сам себе хозяин. Линукс для армов - как пример!
3. Запуск Андроида с SD - в первую очередь правильное создание всех разделов на SD. Инструмент такой получается есть, но только под линукс и с ручной правкой таблицы разделов в тексте программы.
4. Про новый uBoot и правку для работы с SDMMC - это я не понял, когда и для чего нужно.
Название: Re: Запуск Android с флэшки
Отправлено: L от 10 Декабрь 2020, 21:19:29
Запуск любой ОС (в тос числе андроида) с SD интересен в первую очередь при  сдохшей внутренней флеш
Принимайте еще одного счастливого владельца набора мёртвых NAND и eMMC.
Тоже буду биться над запуском Android с SD-карты.
Интересно, у кого-нибудь сработал метод Моррисона?
Надо все 7 страниц прочитать, может у кого и получилось.
У меня пока что - нет.
Название: Re: Запуск Android с флэшки
Отправлено: sfs от 17 Декабрь 2020, 14:10:16
Надо все 7 страниц прочитать, может у кого и получилось.
нет
Название: Re: Запуск Android с флэшки
Отправлено: ivanovgoga от 17 Август 2023, 14:39:26
Ну что, кто нибудь придумал как на амлогике без костылей запускать андроид?