Как сделать загрузочную SD карту для приставок на Amlogic

Я рассматривал Rikomagic MK22 TV Box около двух недель назад, тогда же я сделал онлайн обновление прошивки. Компания выпустила новую прошивку .IMG для Amlogic USB Burning Tool , под управлением Windows и Burning tool, которые не очень хорошо работают.

Я начал обзор R-Box Pro TV Box также основанный на процессоре Amlogic S912,но онлайн обновление прошивки не работало и мне снова не удалось найти .IMG прошивку для приставки на GeekBuying. Тем не менее, я был проинформирован о том , что «USB burning Tool» теперь может быть прошита через микро SD карту или USB флэш — диск со всеми последними приставками на Amlogic, поэтому я попробовал этот метод вместо R-Box Pro, и решил рассказать о своем опыте после нескольких инструкций по Freaktab сделанных пользователем Calc. Я покажу как это сделать в Linux, а затем в Windows.

Метод для Linux

После загрузки и извлечения rar’ed файла прошивки (дважды), в конечном итоге я получил одиночные файлы микропрограмм (IMG aml_s912_q6330-R-BOX-PRO-3gddr-macintosh-20161015.img).

Во- первых , нам нужно иметь инструмент для извлечения некоторых файлов из прошивки. Создание AML-ТПиР-pack-extract.c при помощи кода, который я нашел на Freaktab и слегка модифицировал его для файла прошивки:

#include <errno.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
 
uint32_t convert(uint8_t *test, uint64_t loc) {
  return ntohl((test[loc] << 24) | (test[loc+1] << 16) | (test[loc+2] << 8) | test[loc+3]);
}
 
void main (int argc, char **argv) {
  FILE *fileptr;
  uint8_t *buffer;
  long filelen;
 
  FILE *f;
  char *filename;
  uint64_t record;
  uint64_t record_loc;
  uint64_t file_loc;
  uint64_t file_size;
 
  if (argc <= 1) {
    printf("Usage: %s [firmware-file-name]\n", argv[0]);
    exit (0);
  }
 
  fileptr = fopen(argv[1], "rb");
  fseek(fileptr, 0, SEEK_END);
  filelen = ftell(fileptr);
  rewind(fileptr);
 
  buffer = (uint8_t *)malloc((filelen+1)*sizeof(uint8_t));
  fread(buffer, filelen, 1, fileptr);
  fclose(fileptr);
 
  for (record = 0; record < (uint8_t)buffer[0x18]; record = record + 1){
    record_loc = 0x40 + (record * 0x240);
 
    filename = (malloc(32));
    sprintf(filename,"%s.%s",(char *)&buffer[record_loc+0x120], (char *)&buffer[record_loc+0x20]);
 
    file_loc = convert(buffer,record_loc+0x10);
    file_size = convert(buffer,record_loc+0x18);
 
    f = fopen(filename, "wb");
    if (f == NULL) {
     printf("ERROR: could not open output\n");
     printf("the error was: %s\n",strerror(errno));
     free(filename);
     continue;
    }
    fwrite(&(buffer[file_loc]), sizeof(uint8_t), (size_t)file_size, f);
    fclose(f);
    free(filename);
  }
  free(buffer);
}

Теперь компилируем:

gcc aml-upgrade-package-extract.c -o aml-upgrade-package-extract

и запускаем файл прошивки:

./aml-upgrade-package-extract aml_s912_q6330-R-BOX-PRO-3gddr-mac-20161015.img

будет извлекаться куча файлов:

jaufranc@FX8350:~/edev/amlogic/s912$ ls
aml_s912_q6330-R-BOX-PRO-3gddr-mac-20161015.img  logo.PARTITION
aml_sdc_burn.ini                                 logo.VERIFY
aml_sdc_burn.UBOOT                               manifest.xml
aml-upgrade-package-extract                      meson1.dtb
aml-upgrade-package-extract.c                    platform.conf
bootloader.PARTITION                             recovery.PARTITION
bootloader.VERIFY                                recovery.VERIFY
boot.PARTITION                                   system.PARTITION
boot.VERIFY                                      system.VERIFY
DDR.USB                                          UBOOT.USB
keys.conf

Вам нужен aml_sdc_burn.ini и aml_sdc_burn.UBOOT , плюс сам файл IMG для создания загрузочного устройства.

Теперь нужно найти вашу микро SD карту (отформатированную с файловой системой FAT32) с lsblk:

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0 915.9G  0 part /media/hdd
└─sda2   8:2    0  15.6G  0 part 
sdb      8:16   0 111.8G  0 disk 
└─sdb1   8:17   0 111.8G  0 part /
sdc      8:32   0 931.5G  0 disk 
└─sdc1   8:33   0 931.5G  0 part /media/jaufranc/SEAGATE EXTENSION
sdd      8:48   1   3.8G  0 disk 
└─sdd1   8:49   1   3.8G  0 part /media/jaufranc/6106-E11B
sr0     11:0    1   630M  0 rom  /media/jaufranc/CanonEOS285W
loop0    7:0    0    75M  0 loop /snap/ubuntu-core/423
loop1    7:1    0   4.3M  0 loop /snap/canonical-livepatch/17
loop2    7:2    0   4.3M  0 loop /snap/canonical-livepatch/15

В моем случае это / DEV / SDD, но я буду использовать / Dev / SDX в инструкции ниже:

sudo umount /dev/sdX*
sudo dd if=aml_sdc_burn.UBOOT of=/dev/sdX seek=1 skip=1 bs=512
sync

и , наконец , нужно вновь смонтировать SD – карту / флэш — накопитель, скопируйте файл прошивки и aml_sdc_burn.ini в корень устройства, и переименуйте прошивку aml_upgrade_package.img , чтобы она соответствовала строке вaml_sdc_burn.ini :

cp aml_sdc_burn.ini aml_sdc_burn.UBOOT [device-mount-point] 
cp aml_s912_q6330-R-BOX-PRO-3gddr-mac-20161015.img [device-mount-point]/aml_upgrade_package.img 
sudo umount /dev/sdX*

Теперь убедитесь, что никакие другие устройства USB или SD-карта не вставлена в телевизор, и вставьте загрузочную (микро) SD-карту или USB флэш-накопитель в ТВ-приставку. Если всё сделали правильно, то обновление должно начаться, но если не начнется то вам нужно нажать кнопку восстановления, сначала нажать а потом отпустить кнопку для того, чтобы войти в режим восстановления. Обновление должно запуститься автоматически, как показано ниже.

Терпеливо дождитесь завершения и всё должно заработать. Обратите внимание, что я  попробовал установку с флэш-накопителя USB, но метод не работает. После завершения обновления, вы увидите логотип»Android».

Удалите карту микро SD, выключите и снова включите плату, чтобы завершить обновление, и в течение одной или двух минут запустится Android. Если вместо этого, прошивка заканчивается логотипом с красным крестом, проверьте MD5 прошивки (например, с помощью md5sum в Linux), чтобы убедиться, что он не поврежден. Если поврежден, то повторно загрузите файл и / или повторно скопируйте файл на микро SD карту.

Метод для Windows

Если вы являетесь пользователем Windows , то это намного проще , так как вам просто нужно использовать Burn_Card_Marker инструмент, который вы можете скачать здесь.

Но после запуска программы в Windows 7, и изменении языка в верхнем меню программа остаётся на китайском языке и была похожа на скриншот ниже

[ Update : Для изменения языка на английский, выберите третий вариант в верхнем меню, чтобы применить изменения … Перезапустите приложение, и оно будет на английском языке.]

Это на самом деле не самая большая проблема, но вы все равно можете выбрать SD карту устройства (F: диск в моем случае), загрузите файл и нажмите кнопку «Сделать», чтобы начать создавать загрузочный диск из (микро) SD-карты.

 

Вы увидите сообщение «Success!» Всплывающее окно и кнопку завершения, и содержимое SD-карты будет отображаться как встроенное программное обеспечение, а также два aml_sdc_burn файла.

Теперь вы можете вставить карту микро SD в свой ТВ-бокс, войти в меню восстановления или с помощью какого-нибудь другого способа подходящего для вашего телевизора, и обновление прошивки запустится автоматически.

Удачи!

Благодарим сайт cnx-software.com за предоставленную информацию.

Оригинал статьи тут

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments