Bl301 injection, problems, help,

Well it’s good to know the behaviour is expected. It’s not a big deal for me, but for others that often use both Android and CE, it may be.

I just got an idea how to fix this issue, but I will need some time to implement this…


Good news. Take your time, there’s no rush :slight_smile:

Always good to see others trying to improve beyond the limits. :wink:

I’m already to test it! Just waiting for it, still waiting for it. Soon there yet? heh

Made new topic on issue with waking up my Beelink after it suspends… Beelink GT1 Mini & CoreELEC, Waking up after Suspended

Thinking I should have just posted that information here, since It’s most likely the Bl301 Injection.

I have here a test version for this “doesn’t work on Android, works on CE” issue.
If the bl301 got injected it will be checked now every boot if something changed in config.ini.
If yes, the blob is updated and the device reboot once to refresh the status.

I don’t have a “generic” device here and can’t finish testing as the Khadas devices do have a extra external IR decoder MCU for handling suspend/power off. I will continue tomorrow with another device.

Right now these parameters are supported and should work after a power off from Android too:


So setup your config.ini for your wake up config, reboot the device once and then enter Android and power off the device then. Then it should be possible to wake up the device by your IR wake up code.

1 Like

Will test it shortly and report back. Thanks Portisch! :slight_smile:

CoreELEC:/var/media/sda1-usb-USB_DISK_2.0_1I9/bootloader # sh
Updating device tree from /usr/share/bootloader/device_trees/g12a_s905x2_4g_1gbit.dtb...
Updating device_trees folder...
Updating aml_autoscript...
Updating cfgload... line 159: /usr/sbin/check-bl301: not found
remote-toggle: /meson-ir/ enabled in device tree...

checkbl301 for the latest Nightly build, so I’ve updated the script and ran it again. It didn’t run the injection automatically so I just done that through the CoreELEC. Testing now.

Tested it… But under Android, I power it off… Cannot get it to wake up, no Power LED comes on. It’s probably something wrong I’ve done, let me know what that might be. Thanks :slight_smile:

I don’t know, maybe Android is powering off the SoC completely and this may the reason why khadas have a extra MCU for wake up.

This is an instruction how to use inject_bl301
You don’t need to use

Will try the Standby mode.

Putting it to Suspend mode under CoreELEC. Waking it up (LED power indicator/status light comes on) doesn’t turn TV on either, and still required to manually turning TV on, and still shows no HDMI signal from the unit.

Putting the unit to sleep under Android, I can wake it up. I can’t remember if I’ve tested waking it up from standby with the official bl301 Injection release (I had, and that worked)… Will revert changes and test again the experimental package.

Before CoreELEC…, when unit suspended under Android, the LED power indicator/status light always remained on, unlike behaviour experienced with two other Beelink product types. Reported it over year ago, and few occasions in between, and nothing was ever done about it. However under CoreELEC, powering it off via ’ Power off system ’ the unit shuts down and also the light goes out too! Yet I can still wake it up and it turns TV on. I really like this because this unit has a bright light and sits just at the foot of my bed and shining ever so brightly like the north star at nights. :rofl:

I don’t follow boot2k3. This we testing is not the official package release, but an experimental one and requires different procedure for different package.

Hi. Thanks for the guide
I’m with this error after injecting bl301, whenever I reboot to CE. What was my wrong?

Here a new test version, the script is now working.

And I am talking only about a IR wake up code defined in config.ini.
There is nothing about power on the TV - this is a complete different issue (libCEC & CEC) and have nothing to do here in this topic. I have even no idea how Android is handling this.

The definedIR wake up code will now be also injected to the bl301 blob and should now work after powering down/suspended Android. It will boot to CE after wake up.

After update of CE with this tar file post the log get by this command:
cat /storage/init-previous.log | paste

@doncachopo As I know I didn’t change anything what can cause you this issue - maybe.
Please be sure you use a correct installed SD card/USB flash drive for CE.

1 Like

Perfect. I didn’t manage to test the previous version but this one works. Shutdown with the remote within Android, then powered back on with the remote into CE.

X96 Air, S905X3.


Can you please give example for

-s     define a system root path (needed for

I am not sure what means and for what its used, ans also not sure about what path is it in question, flash, or storage?

/dev/mmcblk0p1          524008    165096    358912  32% /flash
/dev/sda1             14143458    509304  12870660   4% /storage
/dev/loop0              152064    152064         0 100% /

What you trying to do? Just use the tar to update CE.
The system root is only needed by the system update script.