[BOOTLOADER][MULTIBOOT + RECOVERY][BOOTMENU] Patched ICS bootloader V9 (19/07/2013)

Search This thread

Skrilax_CZ

Inactive Recognized Developer
Dec 20, 2009
1,240
2,397
Allright, final ICS is out, but the stock bootloader still doesn't have fastboot oem unlock working. So, it's either HC bootloader or patched ICS bootloader. Please note that installing custom kernel / recovery on unpatched ICS bootloader will require recovering your device only with nvflash!

This bootloader can only be flashed using nvflash. You can use the guide here http://forum.xda-developers.com/showthread.php?t=1622425. There is also a post explaining nvflash in here: http://forum.xda-developers.com/showpost.php?p=22923662&postcount=9

YOU DO EVERYTHING AT YOUR OWN RISK!!!

Patched Bootloader V9 (V9-gbc410d4): (19/07/2013)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-EXT to command line, along with V9-ga81f36b for revision
- booting from ext4 filesystem (see further for howto)
- grub style selection screen if multiple images are installed
- added font outline & kerning, uses updated skin application (by yaworski)
- GUI improvements
- haptic feedback
- OpenSuse 12.3 theme
- expanded fastboot commands
- fixed debug mode cmdline

Patched Bootloader V8: (07/06/2012)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
- fastboot handler is completely build from source code
- fastboot:
- A) download command will no longer write downloaded data to cache,
this means that on using flash and boot command, cache won't be wiped
- B) more convenient bootloader flashing (reboots right away to new BL)
- C) you won't have to have cache partition sized larger than other partitions,
in order to flash them
- D) maximum data size that can be send with fastboot is 700 MiB
- revamped GUI, now with fullscreen bootsplash and custom font, and themable
- added fastboot oem sbk command, which will print sbk on the tablet
- several small changes

Patched Bootloader V7: (31/05/2012)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
- one bootloader for both A500 / A501
- expanded bootmenu application (built from source) with handling several fastboot commands
- fastboot getvar serialno will return real serial number
- bootmenu has options to boot primary / secondary image on current boot
- attempting to boot invalid kernel image will result in being stuck in bootmenu

Patched Bootloader V6: (20/05/2012)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
- added simple boot menu (built from source)

Patched Bootloader V5: (18/05/2012)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
- dualboot (read lower for more information)
- added "fastboot flash bootloader bootloader.blob" command

Patched Bootloader V4: (13/05/2012)
- based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-UNL to command line
- allow bootlogo change (scroll down)
- allow unsigned update via bootloader.blob using CWM
- fixed: AKB partition is no longer used
- fixed: debug on / off works correctly
- fixed: bootloader will now boot to recovery if you erase boot (LNX) partition
- change: bootloader won't pass vmalloc parameter to cmdline

Patched Bootloader V3: (26/04/2012)
- no signature checks
- no "itsmagic" check
- based on latest Acer BL 0.03.12-ICS, it will pass 0.03.12-UNL to command line
- enabled fastboot (details lower)
- replaced bootlogo (moreover just testing that, need to allow bigger image)

FASTBOOT & BOOTMENU (since V6):

POWER + VOLUME DOWN will boot to recovery (won't erase cache).
POWER + VOLUME UP will boot to bootmenu.

In bootmenu, you can do:
A) Reboot
B) Go to fastboot mode
C) Toggle boot mode and set default kernel image on the selection screen
D) Toggle debug mode (modifies cmdline), forbid EXT4 boot in case of a bug in fs
E) Make selection screen include recovery and fastboot
E) Wipe cache (in case you get bad bootloader update and tablet won't boot)

To check for fastboot commands, see the README on the Github.

Here is CWM for ICS bootloader: http://forum.xda-developers.com/showthread.php?t=1654476 , you can flash it from fastboot after you flash the bootloader.

Do NOT run itsmagic on V5+ if you use dualboot, it will corrupt the secondary boot image.

BOOTLOGO CHANGE:

Changelog:

1.06 (19/07/2013)
- updated for V9

1.05 (07/06/2012)
- new application for V8
- customizes bootsplash and the colors

1.04 (31/05/2012)
- updated to support V7

1.03 (19/05/2012)
- updated to support coming V6

1.02 (18/05/2012)
- updated to support V5 as well

1.01 (14/05/2012)
- fixed blob loading & generation
- fix: require only .NET 2.0

1.00 (13/05/2012)
- Initial release

Download the tool from here:
Windows: http://skrilax.droid-developers.org/a500/nvflash/tools/A500BootLogo_106_v9_win.zip
Other OS (Mono): http://skrilax.droid-developers.org/a500/nvflash/tools/A500BootLogo_106_v9_mono.zip

Steps to change bootlogo:

(V4 - V7, applcation version 1.00 - 1.04)

A) Open the bootloader using File menu.
B) Open the image you want using Image menu (the image size must be 268x72)
C) Save the bootloader as *.blob
D) Flash it with a fastboot

(V8, applcation version 1.05)
(V9, applcation version 1.06)

A) Open the bootloader using File menu.
B) Open the image you want using Image menu (the image size must be 1280x800), note file limit max is 200 kB
C) If you wish, tick the checkbox for color customization and set the colors at your wish
D) Save the bootloader as *.blob
E) Flash it with a fastboot

Stock bootlogo is in attachment.

If you want to flash as *.blob, you have to create an update.zip for CWM and flash using this update script:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
package_extract_file("bootloader.blob","/tmp/bootloader.blob");
unmount("/cache");
format("ext4","EMMC","/dev/block/mmcblk0p4","0");
run_program("/system/bin/dd","if=/tmp/bootloader.blob","of=/dev/block/mmcblk0p4");
unmount("/system");

mmcblk0p4 is cache partition. Please note that flashing a nonworking bootloader via *.blob will require recovery using nvflash.

MULTILBOOT:

Before I start, the bootloader will work correctly if you just use single kernel image as you were used to on previous versions. You can just use it the very same as the older versions.
In other words, you can just install it and not have to bother about this at all.


Allright, new feature of V5 is dualboot, i.e toggling to boot two different images and keeping the recovery intact, it is primarily intended to run both Android & Native Linux ported by sp3dev. In V9 this was extended with booting from EXT4 filesytem.

First, basic information:

Multiboot sets the booting partition with "permament effect" (i.e not like holding down a button to boot secondary partition, nothing like that). It is the parition that is highlighted by default on the selection screen.

Primary kernel image is LNX partition (/dev/block/mmcblk0p2, size 8 MB), or "boot" when using fastboot flash / erase command. This is the default partition, used by older bootloaders as well.
Secondary kernel image is AKB partition (/dev/block/mmcblk0p7, size 10 MB), or "secboot" when using fastboot flash / erase command. This parition used for storing checksums on HC bootloader. If this partition doesn't contain Android boot image, it will not show.
Further kernel images can be specified in the menu file for the bootloader.

Now, how to toggle between booting images:

A) Using bootloaderctl

B) Using fastboot:
- "fastboot oem set-boot-image 0" - sets to boot first kernel image
- "fastboot oem set-boot-image 1" - sets to boot second kernel image
- etc.

C) Using bootmenu GUI

Now, how to flash the secondary kernel image:

Either use "dd if=secboot.img of=/dev/block/mmcblk0p7" from within android or recovery, or in fastboot, you can use:

Code:
fastboot flash secboot secboot.img     <- to flash
fastboot erase secboot     <- to erase

DEV:

A) Dualboot

bootloaderctl can be used to modify bootloader settings. Source is in github, or use precompiled version for Android: http://skrilax.droid-developers.org/a500/nvflash/images/bootloaderctl

B) EXT4 FS boot

Since V9, there is also support for EXT4FS boot. Here is example menu.skrilax file for setting it up:

Code:
================================================================================
Example menu.skrilax file:
================================================================================
; commentary is prefixed with ';'
; .ini file structure

; First, three possibilities to boot from partitions

; LNX - primary image (always present, can specify title only)
[LNX]
title=Android

; AKB - secondary image (will not show if property AKB partition doesn't hold android image)
[AKB]
title=LUbuntu

; SOS - recovery image (will show if it's set by user)
title=CWM

; Properties for EXTFS booting
;
; title - text to show in menu
; cmdline - override cmdline (prefixing with @ will make the bootloader append the cmdline to the default one)
;
; Then there are two possibilities:
;
; A) boot android image
; android - path to android image (will be used if present)
;
; B) boot zImage with ramdisk (optional)
; zImage - path to zImage
; ramdisk - path to ramdisk (optional)

; First entry
[BOOT1]
title=EXT4FS Boot 1
android=APP:/boot/boot.img

; Second entry
[BOOT2]
title=EXT4FS Boot 2
zImage=APP:/boot/zImage
ramdisk=APP:/boot/ramdisk

Important to note is that path is in bootloader format i.e PARTITION:file_path_in_partition. For instance APP:/boot/boot.img would be for /system/boot/boot.img when mounted in Android. To see the partition list, see the readme on github.

Lastly you have to tell the bootloader the location of the file. Either boot to android and use bootloaderctl under root user (assuming that the file is under /system/boot/menu.skrilax):
Code:
bootloaderctl --set-boot-file APP:/boot/menu.skrilax
or use fastboot
Code:
fastboot oem set-boot-file APP:/boot/menu.skrilax

If you have problems with booting (stuck on BL screen w/o text showing anything) and have EXT4 FS boot setup, reboot to bootmenu and forbid EXT4 FS boot (it may get stuck if FS is corrupted).

C) Bootmenu

Bootmenu part of the bootloader is open source, with basic functions of the bootloader map. This includes full framebuffer access (hacked a bit as of V9), some standard library functions (you can use your own of course), partition handling, gpio (key handling), fastboot, reboot. Bootmenu currently acts as sub-bootloader, as it passes control back to the bootloader for booting the actual image.

Bootmenu is licensed GPL V3, you can find repository here: https://github.com/SkrilaxCZ/a500_bootmenu

Compile it by making "make", with CROSS_COMPILE set. You can also use "O=../obj" if you prefer obj folder like I do. Also for bootloaderctl either set NO_BOOTLOADERCTL=1 or LINUX_COMPILE and ANDROID_COMPILE for cross-compilers for Linux or Android.

FAQ:

Q: What are the main advantages over HC bootloader?
A: Mainly fastboot. Then more comfort, but for running a custom ROM, HC bootloader is just as fine. And since V5, the possibility of dualboot.

Q: Can I unbrick my A500 with nvflash?
A: Provided, that you saved CPUID to generate SBK and have mmcblk0_start backup, yes. You can recover by installing this bootloader over HC bootloader should you have SOS and LNX image checksum failure.

Q: What is the best way to install ICS bootloader?
A: First install the bootloader with nvflash. Then using fastboot (POWER + VOLUME UP) flash recovery. From there flash ROM for ICS bootloader. You can however install the recovery with nvflash too.

Q: How do I use fastboot?
A: Fastboot is part of Android SDK, you get it just as you get adb. To recover with fastboot, reset the tablet and hold POWER + VOLUME_UP, the tablet will say "Fastboot Mode". Open up command line in the directory where you have fastboot, and use:
Code:
fastboot flash boot boot.img <- flashes boot.img (to kernel partition - LNX)
fastboot flash recovery recovery.img <- flashes recovery.img (to recovery partition - SOS)
Basically, to unbrick it, use the one to flash recovery. Then boot to the recovery, and flash working backup / ROM, whatever you like.

Q: Fastboot oem debug on / off:
A: This has use only for kernel developers. Fastboot oem debug on / off will only change the cmdline to serial console (on) or null console (off). The console parameter can be edited on offset 0x87638, by default it is "console=ttyS0,115200n8".

Q: Updating BL via recovery:
A: Since V4 supports flashing custom bootloader.blobs. Trying to flash custom bootloader.blob on any other bootloader will result in update failed and bootloader not modified (so this part is safe). Flashing a bad bootloader via bootloader.blob will require recovering with nvflash.

Q: Factory reset:
A: Factory reset (Vol UP and switching the rot. lock) is not supported on patched bootloader, use recovery or "fastboot erase userdata".

Q: The tablet won't boot secondary kernel image, but I have working kernel image. What should I do?
Toggle boot partition in boot menu back to primary.

Q: The tablet doesn't boot after bootloader install.
Boot to bootmenu and wipe cache.

INSTALL:

There are four methods of installing:

A) Flashing the *.bin file using nvflash manually, providing as the bootloader_apx.bin to "-bl" argument

B) Using blackthund3r's tool, see guide here: (guide here: http://forum.xda-developers.com/showthread.php?t=1622425

C) If you have V4+ installed (or newer), you can flash the update.zip for CWM

D) If you have V5+ installed, then you can also use fastboot: "fastboot flash bootloader bootloader.blob". Please note that if you supply invalid block image, then you have to use "fastboot erase cache".

CREDITS:

Bootmenu uses code from following applications:
GRUB: jpg loading
SUSE: V8, V9 Splash screen image
yaworski: font outline / kerning

DOWNLOAD:

There are zip files with bootloaders for a500 / a501 - containing three files:
bootloader_apx.bin - this is bootloader binary to be booted when flashing via nvflash (use with -bl argument)
bootloader_hc.bin - this is HC bootloader, w/o signature and itsmagic checks
bootloader_ics_vx.bin - this is the ICS bootloader file

Please note that using old bootloader_apx.bin (from pre-V5 package) when updating manually will corrupt your secondary kernel image.

Alternatively, you can find there a500apx images for blackthund3r's tool (http://d-h.st/Fkt), there is also repository for the tool on this URL "http://skrilax.droid-developers.org/a500/nvflash", contains only bootloaders. They can be downloaded manually as well.

Download page: http://skrilax.droid-developers.org/a500/nvflash/images/

A500 / A501 ICS V9 BL:

Zip: http://skrilax.droid-developers.org/a500/nvflash/images/a500_a501_bootloaders_apx_ics_v9.zip
blackthund3r's tool package: http://skrilax.droid-developers.org/a500/nvflash/images/A500_A501_ICS_V9_bootloader.a500apx
Update.zip for CWM: http://skrilax.droid-developers.org/a500/nvflash/images/a500_a501_cwm_update_v9.zip
 

Attachments

  • stock_logo.png
    stock_logo.png
    4.5 KB · Views: 7,017
  • v7_logo.png
    v7_logo.png
    18.4 KB · Views: 6,121
Last edited:

yaworski

Senior Member
Jun 24, 2007
158
48
Warsaw
Wow, you found a way to boot into fastboot directly :). Thank you. As for bigger logo I think that it would require to extend the space where the logo resides in bootloader file and that would require to recalculate all addresses after that area. I don't have sufficient knowledge in this area to even guess if this is possible :).
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
This with strra , bat makes it so easy .

Thanks !!!!!!!!!!!

EDIT:

Maybe and I think it is a stupid question but anyway gonnan ask it.

I installed this and it runs fine , I can go into recovery and all but not into to fastboot ,( it says fastboot starting..............) = STUPID me need to type commands so it does sommething :D:eek::eek::eek::eek::eek:
And if I check my bootloader it still shows 3.01 HC ?

Do I need to flash the official leak first and then run this unlocked patch ?
I will try some different stuff , new to this nvflashing things on a tab , did it 100+ times on GPU's but never on my tab.

It pass the flash thing but then I get in red : secure boot : image LNX checksum fail !

EDIT2:
After flashing some more all is well , but still want to know what the following line means after I installed the V3 bootloader :
secure boot : image LNX checksum fail !
If I check my bootloader version now it is 0.03.12-UNL and I got the Thor 1.7 recovery for ICS bootloader users running.
I can flash custom roms and all so no problems here.

Again thanks for the work !! Just a nvflash noob asking some side info !

EDIT3: Question
If I make a update .zip with only bootloader.blob and then the user runs this with the strra packages will that do the trick to make it easy to update to unlocked bootloader and custom recovery?


What I did:
See attachment ; you find what I used and your V3 is in the package , I followed the guide and links by
jm77 but I used the stuff in the attachments.

Make sure you got your uid (CPUuid) so you can get your SBK. (you find this in your cwm backup folder or follow instructions from jm77 guide)
Going back to HC roms is not possible just so you know.


 

Attachments

  • nvflash-A500-ICSbootloader-V3-Custom-CWM-installation.zip
    7.3 MB · Views: 6,280
Last edited:

Skrilax_CZ

Inactive Recognized Developer
Dec 20, 2009
1,240
2,397
Wow, you found a way to boot into fastboot directly :). Thank you. As for bigger logo I think that it would require to extend the space where the logo resides in bootloader file and that would require to recalculate all addresses after that area. I don't have sufficient knowledge in this area to even guess if this is possible :).

Yeah, I rewrote the fuction setting the boot mode. Well, I wasn't thinking of full screen bootlogo, just purging the other unused images and using the space for a single logo. Full logo is over 4 M.

Do I need to flash the official leak first and then run this unlocked patch ?
I will try some different stuff , new to this nvflashing things on a tab , did it 100+ times on GPU's but never on my tab.

It pass the flash thing but then I get in red : secure boot : image LNX checksum fail !


We're using the HC bootloader when you communicate with nvflash (for some reason, ICS will not work). This means that after flashing, don't continue booting, just power off the tablet (as HC bootloader will fail booting on the checksums) and then power it back on.

To upgrade:
1) flash the bootloader with nvflash
2) boot to fastboot (POWER + VOLUME UP), flash CWM via fastboot
3) flash ROM via CWM

If I make a update .zip with only bootloader.blob and then the user runs this with the strra packages will that do the trick to make it easy to update to unlocked bootloader and custom recovery?

No, that can't be used to install unlocked bootloader. The bootloader is checked for signature that way. Only nvflash.
 
Last edited:

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
We're using the HC bootloader when you communicate with nvflash (for some reason, ICS will not work). This means that after flashing, don't continue booting, just power off the tablet (as HC bootloader will fail booting on the checksums) and then power it back on.

To upgrade:
1) flash the bootloader with nvflash
2) boot to fastboot (POWER + VOLUME UP), flash CWM via fastboot
3) flash ROM via CWM



No, that can't be used to install unlocked bootloader. The bootloader is checked for signature that way.

Thanks , m8 , all went OK and works so no problems , got your V3 running and I got custom cwm .
Was just looking if it was possible to make the steps even more simple to the new users.
 

Zatta

Inactive Recognized Developer / Contributor
Dec 22, 2010
2,177
1,222
Sneek
Can't we flash the bootloader ànd the cwm through nvflash anymore? I use a modified script from strra to flash back and forward between hc bootloader icw twrp and bootloader V2 icw the corresponding cwm.

Taptalked u see
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
Can't we flash the bootloader ànd the cwm through nvflash anymore? I use a modified script from strra to flash back and forward between hc bootloader icw twrp and bootloader V2 icw the corresponding cwm.

Taptalked u see

Yes you can , I did it that way with the package I uploaded , it is strra package with this V3 in it.

Can you upload the HC bootloader for me so I can go back and fort if I want.
 
  • Like
Reactions: kiwi_mat and Zatta

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
We're using the HC bootloader when you communicate with nvflash (for some reason, ICS will not work).


No, that can't be used to install unlocked bootloader. The bootloader is checked for signature that way. Only nvflash.

Could it be if we use the USB driver from the a200 ICS from Acer that is will work , communication with nvflash.

And not asking if it is possible to flash the patched bootloader with cwm.
Just a update zip with the original bootloader.blob flash it with cwm and then run nvflash to install the patched boot loader and custom recovery.
That way user won't have to download and install the whole original rom .
 

Skrilax_CZ

Inactive Recognized Developer
Dec 20, 2009
1,240
2,397
No, the error is in the nvflash interface in ICS bootloader itself. However it's pretty much irrelevant which bootloader you use to communicate with nvflash, if they all were working.

And not asking if it is possible to flash the patched bootloader with cwm.
Just a update zip with the original bootloader.blob flash it with cwm and then run nvflash to install the patched boot loader and custom recovery.
That way user won't have to download and install the whole original rom .

Not entirely sure if I understand what you mean. If you flash original bootloader.blob with ICS, you have to have signed kernel / recovery flashed on the device. Otherwise the only way to recover from that is using nvflash. Easiest way is as I said in 1st post:
1) patched BL using nvflash
2) custom recovery with fastboot
3) ROM (or fixed boot.img for ICS bootloader)

Keep in mind, that in V2, you could only boot to fastboot via "adb reboot bootloader", POWER + VOL_UP to boot to fastboot is new in V3.
 
Last edited:
  • Like
Reactions: ZACQ8 and mrvek

Zatta

Inactive Recognized Developer / Contributor
Dec 22, 2010
2,177
1,222
Sneek
  • Like
Reactions: civato

Skrilax_CZ

Inactive Recognized Developer
Dec 20, 2009
1,240
2,397
Oh didn't know. Rough checking by hex editor: don't see that oem unlock is enabled, and sending it through nvflash is still throwing error (just an annoyance moreless).
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
No, the error is in the nvflash interface in ICS bootloader itself. However it's pretty much irrelevant which bootloader you use to communicate with nvflash, if they all were working.



Not entirely sure if I understand what you mean. If you flash original bootloader.blob with ICS, you have to have signed kernel / recovery flashed on the device. Otherwise the only way to recover from that is using nvflash. Easiest way is as I said in 1st post:
1) patched BL using nvflash
2) custom recovery with fastboot
3) ROM (or fixed boot.img for ICS bootloader)

Keep in mind, that in V2, you could only boot to fastboot via "adb reboot bootloader", POWER + VOL_UP to boot to fastboot is new in V3.

OK thanks , didn't know about v2 as I never flashed that one.
V3 is running and doing his thing just fine .
And flashing with nvflash isn't that hard.
 

Kh_Shad

Member
Jan 14, 2010
15
1
What I did wrong? I followed instruction and got new ICS boot v3 with fastboot, but when i try to enter into fastboot i only get text "fastboot starting ..." and nothing else.
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
What I did wrong? I followed instruction and got new ICS boot v3 with fastboot, but when i try to enter into fastboot i only get text "fastboot starting ..." and nothing else.

You gotta type in commands in cmd. First type fasboot devices, you will get a number or a "?" That is fine. Then you type in the commands.
 

Skrilax_CZ

Inactive Recognized Developer
Dec 20, 2009
1,240
2,397
What I did wrong? I followed instruction and got new ICS boot v3 with fastboot, but when i try to enter into fastboot i only get text "fastboot starting ..." and nothing else.

It doesn't print anything else (in the morning I revised it to rather say "Fastboot Mode"). Just connect it to PC and use fastboot.
 
  • Like
Reactions: mrvek

warfenix

Senior Member
Jan 17, 2011
1,143
323
You gotta type in commands in cmd. First type fasboot devices, you will get a number or a "?" That is fine. Then you type in the commands.

OK so I'm pretty tech say. Lol but I'm kinda confused as to how to get to is bootloader. I don't know what nvflash is or where to find it as I have been through the links and can't find it. And just confusing with all the links and such. Could anyone PLEASE pm what I need to do exactly and links to exactly what I need. I would be forever greatful. Thank you one and all for whatever help you give me

Sent from my A500 using Tapatalk 2
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,222
OK so I'm pretty tech say. Lol but I'm kinda confused as to how to get to is bootloader. I don't know what nvflash is or where to find it as I have been through the links and can't find it. And just confusing with all the links and such. Could anyone PLEASE pm what I need to do exactly and links to exactly what I need. I would be forever greatful. Thank you one and all for whatever help you give me

Sent from my A500 using Tapatalk 2

If I got time I do a wright up on the steps how I did it and with the test rom I used .
Only tip I want to give is ,if you flash the full leaked rom 1.031.00 ( same as what Acer is rolling out as ICS release now so it seems ) is to open it with winrar or 7 zip ( don't unpack ) and delete the recovery folder in it. Makes it easier on the recovery part.
And that is how I did I it.
But again I will do wright up as I understand that for some it is kinda scary to do this.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 80
    Allright, final ICS is out, but the stock bootloader still doesn't have fastboot oem unlock working. So, it's either HC bootloader or patched ICS bootloader. Please note that installing custom kernel / recovery on unpatched ICS bootloader will require recovering your device only with nvflash!

    This bootloader can only be flashed using nvflash. You can use the guide here http://forum.xda-developers.com/showthread.php?t=1622425. There is also a post explaining nvflash in here: http://forum.xda-developers.com/showpost.php?p=22923662&postcount=9

    YOU DO EVERYTHING AT YOUR OWN RISK!!!

    Patched Bootloader V9 (V9-gbc410d4): (19/07/2013)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-EXT to command line, along with V9-ga81f36b for revision
    - booting from ext4 filesystem (see further for howto)
    - grub style selection screen if multiple images are installed
    - added font outline & kerning, uses updated skin application (by yaworski)
    - GUI improvements
    - haptic feedback
    - OpenSuse 12.3 theme
    - expanded fastboot commands
    - fixed debug mode cmdline

    Patched Bootloader V8: (07/06/2012)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
    - fastboot handler is completely build from source code
    - fastboot:
    - A) download command will no longer write downloaded data to cache,
    this means that on using flash and boot command, cache won't be wiped
    - B) more convenient bootloader flashing (reboots right away to new BL)
    - C) you won't have to have cache partition sized larger than other partitions,
    in order to flash them
    - D) maximum data size that can be send with fastboot is 700 MiB
    - revamped GUI, now with fullscreen bootsplash and custom font, and themable
    - added fastboot oem sbk command, which will print sbk on the tablet
    - several small changes

    Patched Bootloader V7: (31/05/2012)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
    - one bootloader for both A500 / A501
    - expanded bootmenu application (built from source) with handling several fastboot commands
    - fastboot getvar serialno will return real serial number
    - bootmenu has options to boot primary / secondary image on current boot
    - attempting to boot invalid kernel image will result in being stuck in bootmenu

    Patched Bootloader V6: (20/05/2012)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
    - added simple boot menu (built from source)

    Patched Bootloader V5: (18/05/2012)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-MUL to command line
    - dualboot (read lower for more information)
    - added "fastboot flash bootloader bootloader.blob" command

    Patched Bootloader V4: (13/05/2012)
    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-UNL to command line
    - allow bootlogo change (scroll down)
    - allow unsigned update via bootloader.blob using CWM
    - fixed: AKB partition is no longer used
    - fixed: debug on / off works correctly
    - fixed: bootloader will now boot to recovery if you erase boot (LNX) partition
    - change: bootloader won't pass vmalloc parameter to cmdline

    Patched Bootloader V3: (26/04/2012)
    - no signature checks
    - no "itsmagic" check
    - based on latest Acer BL 0.03.12-ICS, it will pass 0.03.12-UNL to command line
    - enabled fastboot (details lower)
    - replaced bootlogo (moreover just testing that, need to allow bigger image)

    FASTBOOT & BOOTMENU (since V6):

    POWER + VOLUME DOWN will boot to recovery (won't erase cache).
    POWER + VOLUME UP will boot to bootmenu.

    In bootmenu, you can do:
    A) Reboot
    B) Go to fastboot mode
    C) Toggle boot mode and set default kernel image on the selection screen
    D) Toggle debug mode (modifies cmdline), forbid EXT4 boot in case of a bug in fs
    E) Make selection screen include recovery and fastboot
    E) Wipe cache (in case you get bad bootloader update and tablet won't boot)

    To check for fastboot commands, see the README on the Github.

    Here is CWM for ICS bootloader: http://forum.xda-developers.com/showthread.php?t=1654476 , you can flash it from fastboot after you flash the bootloader.

    Do NOT run itsmagic on V5+ if you use dualboot, it will corrupt the secondary boot image.

    BOOTLOGO CHANGE:

    Changelog:

    1.06 (19/07/2013)
    - updated for V9

    1.05 (07/06/2012)
    - new application for V8
    - customizes bootsplash and the colors

    1.04 (31/05/2012)
    - updated to support V7

    1.03 (19/05/2012)
    - updated to support coming V6

    1.02 (18/05/2012)
    - updated to support V5 as well

    1.01 (14/05/2012)
    - fixed blob loading & generation
    - fix: require only .NET 2.0

    1.00 (13/05/2012)
    - Initial release

    Download the tool from here:
    Windows: http://skrilax.droid-developers.org/a500/nvflash/tools/A500BootLogo_106_v9_win.zip
    Other OS (Mono): http://skrilax.droid-developers.org/a500/nvflash/tools/A500BootLogo_106_v9_mono.zip

    Steps to change bootlogo:

    (V4 - V7, applcation version 1.00 - 1.04)

    A) Open the bootloader using File menu.
    B) Open the image you want using Image menu (the image size must be 268x72)
    C) Save the bootloader as *.blob
    D) Flash it with a fastboot

    (V8, applcation version 1.05)
    (V9, applcation version 1.06)

    A) Open the bootloader using File menu.
    B) Open the image you want using Image menu (the image size must be 1280x800), note file limit max is 200 kB
    C) If you wish, tick the checkbox for color customization and set the colors at your wish
    D) Save the bootloader as *.blob
    E) Flash it with a fastboot

    Stock bootlogo is in attachment.

    If you want to flash as *.blob, you have to create an update.zip for CWM and flash using this update script:
    Code:
    mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
    package_extract_file("bootloader.blob","/tmp/bootloader.blob");
    unmount("/cache");
    format("ext4","EMMC","/dev/block/mmcblk0p4","0");
    run_program("/system/bin/dd","if=/tmp/bootloader.blob","of=/dev/block/mmcblk0p4");
    unmount("/system");

    mmcblk0p4 is cache partition. Please note that flashing a nonworking bootloader via *.blob will require recovery using nvflash.

    MULTILBOOT:

    Before I start, the bootloader will work correctly if you just use single kernel image as you were used to on previous versions. You can just use it the very same as the older versions.
    In other words, you can just install it and not have to bother about this at all.


    Allright, new feature of V5 is dualboot, i.e toggling to boot two different images and keeping the recovery intact, it is primarily intended to run both Android & Native Linux ported by sp3dev. In V9 this was extended with booting from EXT4 filesytem.

    First, basic information:

    Multiboot sets the booting partition with "permament effect" (i.e not like holding down a button to boot secondary partition, nothing like that). It is the parition that is highlighted by default on the selection screen.

    Primary kernel image is LNX partition (/dev/block/mmcblk0p2, size 8 MB), or "boot" when using fastboot flash / erase command. This is the default partition, used by older bootloaders as well.
    Secondary kernel image is AKB partition (/dev/block/mmcblk0p7, size 10 MB), or "secboot" when using fastboot flash / erase command. This parition used for storing checksums on HC bootloader. If this partition doesn't contain Android boot image, it will not show.
    Further kernel images can be specified in the menu file for the bootloader.

    Now, how to toggle between booting images:

    A) Using bootloaderctl

    B) Using fastboot:
    - "fastboot oem set-boot-image 0" - sets to boot first kernel image
    - "fastboot oem set-boot-image 1" - sets to boot second kernel image
    - etc.

    C) Using bootmenu GUI

    Now, how to flash the secondary kernel image:

    Either use "dd if=secboot.img of=/dev/block/mmcblk0p7" from within android or recovery, or in fastboot, you can use:

    Code:
    fastboot flash secboot secboot.img     <- to flash
    fastboot erase secboot     <- to erase

    DEV:

    A) Dualboot

    bootloaderctl can be used to modify bootloader settings. Source is in github, or use precompiled version for Android: http://skrilax.droid-developers.org/a500/nvflash/images/bootloaderctl

    B) EXT4 FS boot

    Since V9, there is also support for EXT4FS boot. Here is example menu.skrilax file for setting it up:

    Code:
    ================================================================================
    Example menu.skrilax file:
    ================================================================================
    ; commentary is prefixed with ';'
    ; .ini file structure
    
    ; First, three possibilities to boot from partitions
    
    ; LNX - primary image (always present, can specify title only)
    [LNX]
    title=Android
    
    ; AKB - secondary image (will not show if property AKB partition doesn't hold android image)
    [AKB]
    title=LUbuntu
    
    ; SOS - recovery image (will show if it's set by user)
    title=CWM
    
    ; Properties for EXTFS booting
    ;
    ; title - text to show in menu
    ; cmdline - override cmdline (prefixing with @ will make the bootloader append the cmdline to the default one)
    ;
    ; Then there are two possibilities:
    ;
    ; A) boot android image
    ; android - path to android image (will be used if present)
    ;
    ; B) boot zImage with ramdisk (optional)
    ; zImage - path to zImage
    ; ramdisk - path to ramdisk (optional)
    
    ; First entry
    [BOOT1]
    title=EXT4FS Boot 1
    android=APP:/boot/boot.img
    
    ; Second entry
    [BOOT2]
    title=EXT4FS Boot 2
    zImage=APP:/boot/zImage
    ramdisk=APP:/boot/ramdisk

    Important to note is that path is in bootloader format i.e PARTITION:file_path_in_partition. For instance APP:/boot/boot.img would be for /system/boot/boot.img when mounted in Android. To see the partition list, see the readme on github.

    Lastly you have to tell the bootloader the location of the file. Either boot to android and use bootloaderctl under root user (assuming that the file is under /system/boot/menu.skrilax):
    Code:
    bootloaderctl --set-boot-file APP:/boot/menu.skrilax
    or use fastboot
    Code:
    fastboot oem set-boot-file APP:/boot/menu.skrilax

    If you have problems with booting (stuck on BL screen w/o text showing anything) and have EXT4 FS boot setup, reboot to bootmenu and forbid EXT4 FS boot (it may get stuck if FS is corrupted).

    C) Bootmenu

    Bootmenu part of the bootloader is open source, with basic functions of the bootloader map. This includes full framebuffer access (hacked a bit as of V9), some standard library functions (you can use your own of course), partition handling, gpio (key handling), fastboot, reboot. Bootmenu currently acts as sub-bootloader, as it passes control back to the bootloader for booting the actual image.

    Bootmenu is licensed GPL V3, you can find repository here: https://github.com/SkrilaxCZ/a500_bootmenu

    Compile it by making "make", with CROSS_COMPILE set. You can also use "O=../obj" if you prefer obj folder like I do. Also for bootloaderctl either set NO_BOOTLOADERCTL=1 or LINUX_COMPILE and ANDROID_COMPILE for cross-compilers for Linux or Android.

    FAQ:

    Q: What are the main advantages over HC bootloader?
    A: Mainly fastboot. Then more comfort, but for running a custom ROM, HC bootloader is just as fine. And since V5, the possibility of dualboot.

    Q: Can I unbrick my A500 with nvflash?
    A: Provided, that you saved CPUID to generate SBK and have mmcblk0_start backup, yes. You can recover by installing this bootloader over HC bootloader should you have SOS and LNX image checksum failure.

    Q: What is the best way to install ICS bootloader?
    A: First install the bootloader with nvflash. Then using fastboot (POWER + VOLUME UP) flash recovery. From there flash ROM for ICS bootloader. You can however install the recovery with nvflash too.

    Q: How do I use fastboot?
    A: Fastboot is part of Android SDK, you get it just as you get adb. To recover with fastboot, reset the tablet and hold POWER + VOLUME_UP, the tablet will say "Fastboot Mode". Open up command line in the directory where you have fastboot, and use:
    Code:
    fastboot flash boot boot.img <- flashes boot.img (to kernel partition - LNX)
    fastboot flash recovery recovery.img <- flashes recovery.img (to recovery partition - SOS)
    Basically, to unbrick it, use the one to flash recovery. Then boot to the recovery, and flash working backup / ROM, whatever you like.

    Q: Fastboot oem debug on / off:
    A: This has use only for kernel developers. Fastboot oem debug on / off will only change the cmdline to serial console (on) or null console (off). The console parameter can be edited on offset 0x87638, by default it is "console=ttyS0,115200n8".

    Q: Updating BL via recovery:
    A: Since V4 supports flashing custom bootloader.blobs. Trying to flash custom bootloader.blob on any other bootloader will result in update failed and bootloader not modified (so this part is safe). Flashing a bad bootloader via bootloader.blob will require recovering with nvflash.

    Q: Factory reset:
    A: Factory reset (Vol UP and switching the rot. lock) is not supported on patched bootloader, use recovery or "fastboot erase userdata".

    Q: The tablet won't boot secondary kernel image, but I have working kernel image. What should I do?
    Toggle boot partition in boot menu back to primary.

    Q: The tablet doesn't boot after bootloader install.
    Boot to bootmenu and wipe cache.

    INSTALL:

    There are four methods of installing:

    A) Flashing the *.bin file using nvflash manually, providing as the bootloader_apx.bin to "-bl" argument

    B) Using blackthund3r's tool, see guide here: (guide here: http://forum.xda-developers.com/showthread.php?t=1622425

    C) If you have V4+ installed (or newer), you can flash the update.zip for CWM

    D) If you have V5+ installed, then you can also use fastboot: "fastboot flash bootloader bootloader.blob". Please note that if you supply invalid block image, then you have to use "fastboot erase cache".

    CREDITS:

    Bootmenu uses code from following applications:
    GRUB: jpg loading
    SUSE: V8, V9 Splash screen image
    yaworski: font outline / kerning

    DOWNLOAD:

    There are zip files with bootloaders for a500 / a501 - containing three files:
    bootloader_apx.bin - this is bootloader binary to be booted when flashing via nvflash (use with -bl argument)
    bootloader_hc.bin - this is HC bootloader, w/o signature and itsmagic checks
    bootloader_ics_vx.bin - this is the ICS bootloader file

    Please note that using old bootloader_apx.bin (from pre-V5 package) when updating manually will corrupt your secondary kernel image.

    Alternatively, you can find there a500apx images for blackthund3r's tool (http://d-h.st/Fkt), there is also repository for the tool on this URL "http://skrilax.droid-developers.org/a500/nvflash", contains only bootloaders. They can be downloaded manually as well.

    Download page: http://skrilax.droid-developers.org/a500/nvflash/images/

    A500 / A501 ICS V9 BL:

    Zip: http://skrilax.droid-developers.org/a500/nvflash/images/a500_a501_bootloaders_apx_ics_v9.zip
    blackthund3r's tool package: http://skrilax.droid-developers.org/a500/nvflash/images/A500_A501_ICS_V9_bootloader.a500apx
    Update.zip for CWM: http://skrilax.droid-developers.org/a500/nvflash/images/a500_a501_cwm_update_v9.zip
    11
    Allright, V8 released, changelog in OP.

    There is new tool to be used for changing bootsplash / colors of the bootloader.
    10
    V7 in OP (differs from all prereleases). This time one bootloader for both A500 / A501, changelog in OP.

    PS: Yeah reacts on oem lock too :p
    8
    I've updated the repository, for those who are playing with the bootmenu source.

    Several simple "proprietary" functions are now using source code.

    Newly, bootmenu application parses key input and misc partition command and decides which mode to boot (BootMenu / Fastboot / Recovery / Factory Reset / Normal).

    In the bootmenu, you can also select to boot from primary and secondary kernel image. Attempting to boot invalid image will cause you to be stuck in bootmenu.

    Fastboot has been partially hacked, "fastboot getvar" response is built from source now.

    Lastly, bootmenu main function either returns (and goes to fastboot mode), or loads android image from partition (proprietary function atm.) and passes it directly to booting function (pointer to the image and offset of entry point in the image). So first step to boot any kernel image.

    PS: Do not use "fastboot continue" :p
    7
    Updated to V4:

    - based on latest Acer BL 0.03.14-ICS, it will pass 0.03.14-UNL to command line
    - allow bootlogo change (see OP)
    - allow unsigned update via bootloader.blob using CWM
    - fixed: AKB partition is no longer used
    - fixed: debug on / off works correctly
    - fixed: bootloader will now boot to recovery if you erase boot (LNX) partition
    - change: bootloader won't pass vmalloc parameter to cmdline