Amlogic Burning Tool

Amlogic USB Burning Tool or Amlogic, almost always written AMLogic is an American technology company that was initially founded as Amlogic Inc. In the US and is primarily focused on developing and selling integrated circuits for SoC (System on Chip). Amlogic’s USB Burning Tool is a Windows based tool used to upgrade devices based on Amlogic processors over USB. Most devices now implement OTA firmware updates, so in most cases it is not necessary, but if your device has problem to boot, or want to update to a beta software it is often required, although now it is possible to use a micro SD card with Burn Card Maker.

Tool
Utility to extract AMLogic 'USB Burning Tool' .IMG firmware for Linux
aml-upgrade-package-extract.c
Tool
// gcc aml-upgrade-package-extract.c -o aml-upgrade-package-extract
// ./aml-upgrade-package-extract update-usb-burning-mode.img
// /dev/sdX - fat32 sdcard
// Make bootable Android update:
// dd if=aml_sdc_burn.UBOOT bs=1 count=442 of=/dev/sdX
// dd if=aml_sdc_burn.UBOOT seek=1 skip=1 bs=512 of=/dev/sdX
// sync
// dd if=aml_sdc_burn.UBOOT conv=fsync bs=1 count=442 of=/dev/sdX
// dd if=aml_sdc_burn.UBOOT conv=fsync seek=1 skip=1 bs=512 of=/dev/sdX
// cp -v aml_sdc_burn.{ini,UBOOT} [device-mount-point]
// cp -v update-usb-burning-mode.img [device-mount-point]/aml_upgrade_package.img
#include<errno.h>
#include<inttypes.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<arpa/inet.h>
uint32_tconvert(uint8_t *test, uint64_t loc) {
returnntohl((test[loc] << 24) | (test[loc+1] << 16) | (test[loc+2] << 8) | test[loc+3]);
}
voidmain (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 outputn');
printf('the error was: %sn',strerror(errno));
free(filename);
continue;
}
fwrite(&(buffer[file_loc]), sizeof(uint8_t), (size_t)file_size, f);
fclose(f);
free(filename);
}
free(buffer);
}
Burning

Amlogic Burning Tool 2.0.5

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment
Utility to extract AMLogic 'USB Burning Tool' .IMG firmware for Linux

Amlogic Burning Tool Get Key Failed

aml-upgrade-package-extract.c

Amlogic Burning Tool Usb Cable

// gcc aml-upgrade-package-extract.c -o aml-upgrade-package-extract
// ./aml-upgrade-package-extract update-usb-burning-mode.img
// /dev/sdX - fat32 sdcard
// Make bootable Android update:
// dd if=aml_sdc_burn.UBOOT bs=1 count=442 of=/dev/sdX
// dd if=aml_sdc_burn.UBOOT seek=1 skip=1 bs=512 of=/dev/sdX
// sync
// dd if=aml_sdc_burn.UBOOT conv=fsync bs=1 count=442 of=/dev/sdX
// dd if=aml_sdc_burn.UBOOT conv=fsync seek=1 skip=1 bs=512 of=/dev/sdX
// cp -v aml_sdc_burn.{ini,UBOOT} [device-mount-point]
// cp -v update-usb-burning-mode.img [device-mount-point]/aml_upgrade_package.img
#include<errno.h>
#include<inttypes.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<arpa/inet.h>
uint32_tconvert(uint8_t *test, uint64_t loc) {
returnntohl((test[loc] << 24) | (test[loc+1] << 16) | (test[loc+2] << 8) | test[loc+3]);
}
voidmain (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 outputn');
printf('the error was: %sn',strerror(errno));
free(filename);
continue;
}
fwrite(&(buffer[file_loc]), sizeof(uint8_t), (size_t)file_size, f);
fclose(f);
free(filename);
}
free(buffer);
}

Amlogic Burning Tool Pc Update

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment