yashsingh1/xdaforums huggingface dataset:
[Google TV General] Tantrim:
I'm attempting to push to /data/adb/modules but I'm getting "Permission Denied". I'm on a rooted device
[Google TV General] RDS5:
did you hold the side button before plugging the device in? if not, it didnt enter amlogic burn mode.

try first holding the little button on the device before plugging it in, and keeping it held for 1-2 seconds after plugging it in, then releasing the button and following those steps.

i dont have the onn tv box, ive got a dynalink, but i was able to recover mine, and since these are similar hardware, i think yours should be recoverable too.
[Google TV General] kennkanniff:
still stuck at bootlogo. :(

@goapy no it does not flicker. tried on different monitors.
[Google TV General] npjohnson:
Don't write it off just yet - remind me on Sunday, we can try more things.
[Google TV General] npjohnson:
That's not an error, it proceeds on.
[Google TV General] npjohnson:
Interesting. We will disable it by default.
[Google TV General] fixsony:
ok, but my box in boot loop after flash the factory images
[Google TV General] alan_harake:
New issue. Had the device turned off for a couple days since I last used it with the rom running. Come to it today to see it's now randomly stuck in sideload mode. Can't reboot to fastboot or bootloader with adb. No picture on display either.
[Google TV General] npjohnson:
Re-sideload the ROM - that's weird af.
[Google TV General] alan_harake:
Device won't successfully finish flashing. Gets to 47% in my computer and hangs. And idk what the device is doing since no display output.
[Google TV General] ali387:
I ended up loading boot.img using this command and it is now booting fine. for me.

C:\AD>fastboot flash:raw boot boot.img

Sending 'boot' (16384 KB) OKAY [ 0.734s]

Writing 'boot' OKAY [ 0.750s]

Finished. Total time: 1.578s
[Google TV General] fixsony:
Good for you. My box still in boot loop after successful flash factory rom.
[Google TV General] npjohnson:
Ahh, okay, I see what happened here - I'll add :raw to the factory image today.

That seems to fix it for me as well.
[Google TV General] alan_harake:
So somehow my device started to cooperate. I have a picture again. I'm trying to revert to the stock image but every time I try to sideload it says verification failed and I can not select yes to skip verificaiton. I've tried using a otg cable with a usb hub and few different keyboards but the device doesn't take any inputs from the keyboards. What can I do?
[Google TV General] ali387:
I was not able to sideload the stock image either. I had to run 'fastboot flash ...' commands as listed in flash-all.sh file. Unzip the stock image file into a folder and CD to the extraction folder and run 'fastboot flash ...' commands. For flashing boot.img file I had to modify 'fastboot flash ..' command to:

fastboot flash:raw boot boot.img

My earlier post has the output of each 'fastboot flash command I ran.

Good luck to you.
[Google TV General] meber:
Testing the Onn device these are two issues I noticed:

Gboard never appears - have to attach otg cable and use a keyboard

-Easily fixed by downloading another keyboard from the playstore

Youtube TV immediately closes after opening the app and logging in
[Google TV General] npjohnson:
see next response.

The factory image now has all the correct commands, also tho, yeah, you can't sideload the factory image, or the random OTA zip someone linked - bad idea. Just run ./flash-all.sh

Yeah, working on this! not yet sure why.
[Google TV General] meber:
Awesome - also is there a keymap file that needs to be included with the controller? I didn't expect the specific application buttons to work, but things like settings button does nothing on the remote.

I tried using button remapper, however, it does not detect the button presses of those buttons.

Anyway, thank you for all your hard work!
[Google TV General] npjohnson:
Yeah, probably. I didn't have dopinder until up until a week ago, was relying on some other people. I'm currently AFK for a week on vacation, but when I get back I plan on revamping it's build.
[Google TV General] madieboyd:
is there a recommended OTG cable? the one I bought off of amazon and the ones I've used from around my house cause the box not to be seen by adb on my pc. i have the Onn UHD box
[Google TV General] ali387:
I could not use OTG cable either. I had to directly connect USB cable from my PC to Onn UHD. USB cable was able to power Onn UHD.
[Google TV General] ROM_gamer987:
Use this to flash without an otg (I had the same issue as you) https://xdaforums.com/t/unofficial-...-g12-sm1-family-devices.4313743/post-85434073
[Google TV General] alan_harake:
Keyboard still does not work with new update.
[Google TV General] kennkanniff:
reminder
[Google TV General] retyre:
If you're stuck in a recovery bootloop, it's usually the result of writing an incompatible recovery image to the recovery partition. You will not be able to reboot into fastboot because that's conditional on having a working recovery. If this is your issue, you might be able to escape the bootloop by remapping recovery (temporarily) to boot normally.

Does the led ever turn white? If it's blinking green, can you print out (via uart) what's going on?

Try the attached file (overwrite sabrina.bootloader.bin in the original exploit package) and post your results here.
[Google TV General] npjohnson:
this is worth a shot - I will be giving you one to reset your env partition later today - se if this works first tho @kennkanniff
[Google TV General] kennkanniff:
Yes! It boots to OS (I also observed that slight flicker you talked about). What steps should I follow to get back to factory unlocked? Can I just boot to fastboot from OS now?
[Google TV General] kennkanniff:
double again. sry.
[Google TV General] retyre:
Just follow the usual procedure with the original exploit. Before you do any of that, however, overwrite the incompatible recovery with something that works. If you have root access, you can dd the correct recovery.img before trying anything else.

You should be able to reboot to bootloader (not fastboot), after which you should be able to fastboot flash recovery with the correct recovery.img (assuming you weren't able to dd as above).
[Google TV General] kennkanniff:
Like this?

$ adb push lineage-18.1-20220324-recovery-sabrina.img /data/media/0
lineage-18.1-20220324-recovery-sabrina.... 27.9 MB/s (25165824 bytes in 0.861s)
$ adb shell 'dd if=/data/media/0/lineage-18.1-20220324-recovery-sabrina.img of=/dev/block/platform/ffe07000.emmc/by-name/recovery_ramdisk_a'
49152+0 records in
49152+0 records out
25165824 bytes (24 M) copied, 0.240880 s, 100 M/s

Still not booting to fasboot after this. 'ADB reboot bootloader' does not work either.
[Google TV General] retyre:
That partition does not exist, yo. Do this:

dd if=/data/media/0/lineage-18.1-20220324-recovery-sabrina.img of=/dev/block/recovery
[Google TV General] kennkanniff:
Thanks! One device that was originally on lineage 18 is fixed now.

The other one on stock is also booting but tries to update itself.

EDIT: The update fails without causing any issues but I cannot enable developer mode by pressing Build several times.
[Google TV General] Big Dumb Object:
I was somewhat puzzled when occasionally checked this thread I almost gave up and didn't find the familiar mention of a broken OMX in the description, then found this post of yours and... Wow... Looks like a tiny revolution for Android development on Amlogic. How did you manage to do that?
[Google TV General] npjohnson:
I missed one line in the kernel cmdline when I first brought these devices up to 12! Lol.

On 11 it was legitimately broken, but on 12, all I needed was:

use_uvm=1.

That was it.
[Google TV General] Big Dumb Object:
That is so much... like myself 🙃

Glad I failed to sell my four Onns purchased solely for the sake of LineageOS. Thank you for not dropping this project!
[Google TV General] npjohnson:
Good to hear.
[Google TV General] yungrece:
Only issues I've seen with both 18.1 version for the ONN 4k streaming devices is the wifi connect and disconnect on its own. Other than that its very fast and not bloated.
[Google TV General] npjohnson:
Don't quote the OP. Zero need for that.

But also, not sure why it's disconnecting.
[Google TV General] RDS5:
is 19.1 still broken at this time? it was completely broken for me (bricking the device multiple times, recovery wouldnt flash at all) on wade, and im not sure if its working now. 18.1 works fine but i really want hardware backed omx (for netflix and other DRM-filled apps).

would it only be fixed when this goes official? or has it already been fixed? i would try it, but the builds are still from april 21st and april 19th, and both of those soft-bricked my device. im still willing to try if things have changed, and ill try my best to provide logs.

im 99% sure its an issue with the build itself and not the device, because following the exact same process for 18.1 works fine, but for 19.1 it refuses to boot into recovery mode (and forcing it to flash 19.1 from the 18.1 recovery was extremely buggy, and after rebooting, it would hang at the androidtv logo.)
[Google TV General] pddc:
Very strange behavior on mine. Got to the lineage boot logo, then the remote pairing screen (which shows the dynalink screen, then device tries to download ONN system update. Is that normal?
[Google TV General] :
Do these builds, for each of the supported devices (respectively), use an unmodified factory original bootloader of some vintage?

Or is the bootloader modified for each supported device? And if so, what is the extent of the modifications? Or, is the bootloader used with these builds so different that it would not be accurate to describe it as a modification, but rather an entirely different bootloader?
[Google TV General] npjohnson:
For what device? dopinder is broken at the moment. yes.

That's... bad. I'll fix it.

Yes, each device has it's own newest boot loader packed in which matching TEE applets.
[Google TV General] :
So that means that for the supported devices that use encrypted bootloaders, the bootrom keys for each device were extracted so as to be able encrypt each supported device's "own newest boot loader" for each of these builds?
[Google TV General] npjohnson:
None of these devices have encrypted. Bootloaders or boot rom passwords except for Sabrina, which has a whole write up on how we did it
[Google TV General] RDS5:
im using wade, trying the same exact procedure on both 18.1 and 19.1 is different.

when i flash and then boot into 18.1 recovery, it all works as expected.

when i flash and then TRY to boot into 19.1 recovery, nothing happens.

if i try flashing 19.1 from 18.1 recovery, it starts acting up in the os, and if i try rebooting into recovery after that, it gets stuck on the boot logo (probably because it freezes up when trying to boot into 19.1 recovery).
[Google TV General] :
When looking at a factory original bootloader.img for the deadpool (adt-3) in a hex viewer, at offset 10h there is:

@AML (hex: 40 41 4D 4C)

While for the dopinder (onn) bootloader.img at offset 0h there is:

hex: 9B DF 1A 47, with no sign of the AML magic anywhere to be found.

For wade (dynalink) it's the same, no AML magic, but different hex values at the start of bootloader.img.

What distinguishes the deadpool bootloader.img (with AML magic) from the dopinder and wade bootloader.img contents?

Are the dopinder and wade bootloader.img contents just compressed rather than encrypted, or else why is the raw hex structure so different as compared to deadpool?
[Google TV General] npjohnson:
They're entirely different.

BL2 on wade/dopinder is older, newer on Deadpool, u-boot is built on completely different revisions for BL33.

They are stored in a proprietary format. See Sabrina writeup on how to tear them apart (minus the encryption).
[Google TV General] :
I've read the sabrina writeup, both yours and fred's, dozens (if not hundreds) of times.

My prior understanding and experience has been that if the AML magic was present at the start of bootloader.img, then that bootloader would at least boot on just about any generic amlogic device that wasn't configured to use an encrypted bootloader.

But if the AML magic wasn't present, then only a bootloader.img that started with the same string of bytes as the original would ever boot. I assumed this was because the bootloaders were differently encrypted. This was the case even of differently branded variants of the same device that were otherwise physically identical and most likely used the same revision of BL33.

It appears that I was wrong and I need to reassess my understanding.
[Google TV General] npjohnson:
That isn't true in the android box world sadly - u-boots need different configurations, and different board files per device often.
[Google TV General] :
Aren't wade and dopinder close enough hardware-wise that they should be able to at least boot each other's bootloader minimally?

Or to put it another way, why does the wade bootloader.img (for all versions) start with hex "A7 5B 38 30" while the dopinder bootloader.img starts with "9B DF 1A 47"? Is this because of the proprietary formatting that you referenced? Could working bootloaders for these devices (respectively) ever start with anything else, in terms of raw hex values?

For other devices, even after an update across PI -> Q -> R, the first couple hundred bytes of the bootloader will always be the same. I imagine that the u-boot components probably changed a lot across android 9, 10, and 11.
[Google TV General] npjohnson:
I wouldn't do that - no reason to.

They're signed by different OEM sets - so I'd anticipate it's that - or just a versioned header.

And eh - it's really just security stuff from pie to R in terms of u-boot - S changes things more tho.
[Google TV General] :
Ah, this may be what I'm trying to understand.

What is an OEM set? How is a bootloader signed by one? This is different than encryption?

When you make a bootloader for use with your LOS build that supports wade/dopinder, do you have to sign each bootloader differently based on its OEM set? Where in the build process does this happen, and how is it done?
[Google TV General] npjohnson:
I meant a "different OEMs set of keys". It is signed with proprietary amlogic tools. Yes it's much different. Digital signage verifies source of distro/who approved it in the header, not encrypts it.

We don't make boot loaders for these devices for lineage. Only for development boards, not production devices.

We just package the stock one to make sure it matches the TEE applets we include.
[Google TV General] :
I took your earlier response to mean the opposite.

Now I'm back to being convinced that the bootloaders for wade/dopinder are encrypted while the bootloader for deadpool is not encrypted. The deadpool bootloader has text strings and large stretches of unused space (00 hex). Neither wade or dopinder do.
[Google TV General] RDS5:
wait a minute, wade works on 19.1 for you?

how. why doesnt it work for me! no matter how many different things i try, its always the recovery that manages to have some issue. it never wants to boot into 19.1 recovery, so how come it works fine for you?

yes i have tried flashing 19.1 from 18.1 recovery, that completely breaks 19.1 and renders it practically unusable (every menu popup that wants to fade the display background literally causes the entire screen to go black) and rebooting into recovery mode from 19.1 (which is supposed to overwrite the 18.1 recovery with the 19.1 recovery) causes it to get stuck on the androidtv screen (most likely because it cant even boot into the recovery!!), effectively softbricking it and forcing me to use amlogic's tools to fix it.

what was your install process? was it the exact same as 18.1? because i tried flashing 19.1 the same way i did for 18.1 and it worked fine with 18.1

i thought all wades werent booting, but now im really really confused. mine's from amazon not from walmart, so that might be the difference, although flashing the factory walmart images worked fine and i dont think wade ever had any major changes that locked it down, especially since, as ive already mentioned, 18.1 works completely fine.

i just want 19.1 because of the omx support, since this box is basically a glorified youtube machine without it, and at that point i might aswell be using a desktop if it werent for the fact that hdcp doesnt even work right on desktops either... neither does it stop piracy :mad:
[Google TV General] :
Yes. I was about to reply to your post just before I got started down that bootloader rabbit hole.

I was pondering what might be different about my device as compared to yours, if anything.

I have several wades (dynalinks). I'll do another, and document my steps, including the version of the firmware that I started with prior to the install. I'll let you know whether it works or not, and if it does, the exact steps I followed.
[Google TV General] npjohnson:
the black screen flash it expected at the moment - we fixed it along with hardware OMX.

Focused on shipping it officially at the moment, so haven't had time to update XDA builds.
[Google TV General] RDS5:
thanks! just in case our models are different, mine's a "DT-ATV36" although i highly doubt they are different. i forgot the firmware i started with before i installed, but i later flashed the walmart firmware (from the factory images provided in this post), so thats what it is for me right now.
[Google TV General] RDS5:
wait, so the screen is supposed to stay black whenever popups happen? because that sorta renders the entire thing unusable, or do you mean you fixed it?

tho if your shipping it officially, its fine. theres no real need to update the XDA builds if the update we were gonna get is just going to end up as lineageos official. i get it takes a while to get things shipped officially (if im not wrong, the only thing stopping you guys is the sepolicy being incomplete), so its fine.

only thing im confused with is how others are fine, but im having so much trouble. i THINK i have the right model and everything, but in case im doing something wrong, i wanna figure that out.

anyways, i wanted to thank you and everyone else for all the great work you guys have been doing, and all the help you've provided me, and everyone else.
[Google TV General] npjohnson:
yea, we fixed the black screen - just haven't pushed new builds.

And yes official ETA soon.
[Google TV General] RDS5:
ohhhh ok, would it be possible for me to compile these builds myself? although im quite a noob at compiling, and if the official builds are right around the corner it sorta wouldnt be worth the trouble, i would just like to know if it is possible to build these, or if the changes havent been published yet.
[Google TV General] kennkanniff:
Yes it is possible. Changes are there. But I decided to wait for official before building anything myself. ETA soon is great news!
[Google TV General] RDS5:
it makes sense that its coming soon tho, as he already did all the work previously, and making it official is just a matter of making the sepolicy and likely just some small code cleanup and testing here and there.
[Google TV General] :
I checked another wade device. It had been in storage and had older firmware installed.

It did have problems running recovery, both by direct boot or if flashed. Best I could tell, it was the particular dtb installed that would allow recovery to boot/run or not

Better to just wait for the real build since it's being worked on presently.
[Google TV General] RDS5:
oh alright! i think the dtb partition is flashable, no? although id prefer not to mess with it anyways since it'd probably brick the thing anyways.

but theoretically, you could probably flash an older dtb, although i think in the factory images, you do flash the dtb of the build (older walmart build on the original post). i had both the latest build (from amazon) and the older walmart build (from the original post) and both failed to launch the 19.1 recovery, so its safe to say that the 19.1 recovery for wade is practically cooked on most devices.

especially new ones.
[Google TV General] :
I'd just leave the device alone. I tried the dtb from the build. It didn't work. Although, of course, recovery does work with that dtb if the build is successfully sideloaded. I then tried another dtb from one of the ota archives, and recovery would then directly boot. But I still had trouble with installation. I gave up and just pulled the super.img off my other wade device that had 19.1 installed already and installed the build with bootloader fastboot.

There is still the black screen issue with this xda build, which has been fixed but not in this build, so it's not really worth the time to finagle an installation of this build. The xda builds of 19.1 for the other devices have issues with the recovery as well.
[Google TV General] pddc:
for the life in me, I cannot get ethernet working on 18.1, OTG or powered HUB. anyone has this working and could share parts used? thanks
[Google TV General] TabascoJoe:
I see the new build is up...

Are we ok to flash and test it?
[Google TV General] npjohnson:
dopinder still isn't gonna boot, but others should be fine yeah
[Google TV General] TabascoJoe:
Figured that out the hard way, lol!
[Google TV General] :
If you do, post your thoughts about any changes that you notice from the prior build.
[Google TV General] TabascoJoe:
Without a working recovery I'm going to wait...

When I flashed a 19.1 image with the 18 bootloader it was broken beyond useable...

Images would crash and never load...

Not sure if it was due to the mismatched recovery, but I figured I'd wait.
[Google TV General] :
Since you know why and how to fix it, what's the reason that dopinder won't boot, and what would it take to fix it?

Asking for a curious friend.
[Google TV General] npjohnson:
What I initially suspected was wrong.

My dopinder is broken. It shot up blue smoke and won't shot any life.

I need to find time to debug it and get one of the lineage devs to get me a UART log.
[Google TV General] :
I'll guess I'll have to try it tonight then. I'm hesitant to tempt fate with a friday-the-13th build, but I won't be able to resist.
[Google TV General] :
It's true that lineage-19.1-20220513-recovery-dopinder.img won't boot from a device that is otherwise stock.

But I installed the lineage-19.1-20220513-UNOFFICIAL-dopinder build by means other than by using the build's recovery installation method, and it boots fine.

I installed the com.netflix.ninja apk that I had pulled from the actively running dopinder stock system on the 19.1-20220513 build, and it installs and runs! Very exciting.

I didn't check if using the build's dtb/dtbo before attempting to boot the build's recovery would make any difference, because I didn't know if that could mess up the stock system before I'd even have a chance to try to boot the build's recovery.
[Google TV General] hp420:
Sorry to ask what's quite obviously somewhat answered somewhere, but I've read through and can't find how people are getting 18.1 running on dopinder if it's broken and reported to bootloop. is there some adp method or something i'm missing?
[Google TV General] :
I've found that by flashing dtb.img, dtbo.img, and boot.img from lineage-19.1-20220513-UNOFFICIAL-dopinder.zip, in addition to flashing the recovery image (lineage-19.1-20220513-recovery-dopinder.img), the lineage-19.1-20220513 recovery will boot on dopinder coming from a device that has a factory build installed.

However, when attempting to repeat these steps again from the beginning (after flashing back the factory firmware), I noticed that the dirty data partition flag got set, but when it got set, it did not boot to the lineage-19.1-20220513 recovery that was installed, it just didn't boot.

So, I rebooted and executed "fastboot erase data" and "fastboot erase cache", and then it functioned properly. These steps need to be inserted somewhere in order to have a reliably repeatable process.

Of course, it is fine just to use the 18.1 recovery (instead of the above steps) until this gets fixed, because the recovery partition will be overwritten to the 19.1 recovery as part of the installation anyway.