Я рассматривал 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 и слегка модифицировал его для файла прошивки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#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); } |
Теперь компилируем:
1 |
gcc aml-upgrade-package-extract.c -o aml-upgrade-package-extract |
и запускаем файл прошивки:
1 |
./aml-upgrade-package-extract aml_s912_q6330-R-BOX-PRO-3gddr-mac-20161015.img |
будет извлекаться куча файлов:
1 2 3 4 5 6 7 8 9 10 11 12 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 в инструкции ниже:
1 2 3 |
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 :
1 2 3 |
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 за предоставленную информацию.
Оригинал статьи тут