yashsingh1/xdaforums huggingface dataset:
[Fire TV Original Android Development] three6zerocool:
I just purchased two new Fire Cube 3rd gen. I come from NZ, so can not get them from Amazon, instead purchased them from a tech store that sells them, and stuff like Raspberry Pi's etc.

They appear to be USA in origin models, as shipped with US style power adapters.

The box packaging was just a black outer box with amazon symbol.

My original Fire TV Cube was obtained from Australia, and came in typical Amazon colored packaging.

Okay, something strange has occurred. Am 100% certain after setting up, that the new Fire Cube was running 3166. When I could not get root working, I factory Reset it.

After that, it still said 3166. I installed Launcher Manager so I could use custom launcher.

Woke up this morning, looked at 'About' and now it is saying '3550'

Other weird thing is that 2 extra icons popped up in my Wolf Launcher screen that were not there last night.

'Mini TV' and 'What Should I watch'

I am not complaining, as objective achieved. (hopefully)
[Fire TV Original Android Development] Pro-me3us:
Black box with Amazon logo sounds like a refurbished unit, that would also explain why it came with PS7607/3166, instead of PS7299/3052. It's not the first time I've heard of a second hand seller, listing a refurbished unit as new.

FireOS doesn't wait for your permission to install updates. If the unit is connected to the internet and updates not blocked, it will automatically download & update when it's not in use, or on the next reboot. It updated to the latest firmware PS7646/3550 while you were sleeping. Those two icons are new apps with PS7646.

I found the reason why gazelle_buf didn't work on PS7607/3166. It's been fixed for both gazelle_buf and gazelle_shrinker.

My personal recommendation is to update new Cubes to PS7613/3701 and block updates. But you will still have all the same privileges with gazelle_buf on PS7646/3550.

Don't forget to block updates now.
[Fire TV Original Android Development] three6zerocool:
Yeah, well it did say message about checking for updates on setup.

If they are refurbished, I can not tell looking at them, as they look new.

I asked the reseller I got them from, and they said Amazon offered the option of 'Evironmental' option, which is plain packaging'

I don't know.

The other thing that is interesting, is that it has somehow retrograded (assuming cause I factory reset), and other thing I notice is that when using my custom launcher thru Launcher Manager, that the typical preference settings work, instead of Laucher Manager's ones.

(grin) So both good things. I can't retrograde back to PS7613 3701, but PS7646 3550 will suffice.
[Fire TV Original Android Development] Pro-me3us:
I've never seen such an option, and that answer is an indicator to me that it wasn't an honest seller mistake. You can contact Amazon online support, give them the serial number, and they will tell you if it is a refurbished unit.

Amazon refurbished devices are usually in great shape. I'm betting it was used less than a couple weeks since it only got the first firmware update.

That sounds like you may be using the newer ADB - log reading method in LM 1.1.8. It doesn't disable Amazon Launcher, but also isn't as responsive.
[Fire TV Original Android Development] three6zerocool:
To be fair to the merchant, Amazon do have option for what they call eco/plain packaging, as I have myself, had that option offered on items I have purchased here from NZ.

They basically repackage the item, and charge less for shipping.

Perhaps it is something they only offer for international shipping, I don't know, but they do have that option.

What happened to me, is that a few of my purchases were dispatched to New Zealand, I could track them all the way to destination country, cleared customs, and then completely disappeared. (presumably stolen by the carriers here) Presumably plain packaging for particular items can make them less desirable for theft in transit, and also be more cost effective to international buyers.

So, the units might be refurbished, I would have to check up using your suggestion, but the merchant was not lying when he spoke of the plain packaging option.

The issue I have, is that Amazon will not deliver Fire TV Cube 3rd gen to my country, or the new Alexa Voice remote. They do have an international version Cube 3rd Gen which they released in Australia, and that is the first one I bought.
[Fire TV Original Android Development] Pro-me3us:
Resources

- How to skip forced update during new device setup / following factory reset

How to block updates with a DNS block, entered during WiFi password setup​

- Firmware, Apps & Souce Code links (Github)

- Set a custom launcher with Launcher Manager

Wolf Launcher​

Flauncher​

LeanBack on Fire​

Projectivy Launcher​

Emotn​

- Better way to disable Amazon homescreen than Launcher Manager.

- Remap remote app buttons

Root Version History

May 15th, 2022

[UNLOCK][ROOT][TWRP][UNBRICK] ≤ PS7242/3516

Install TWRP, Magisk & full root

Full recovery from any brick

* Requires HDMI dongle & Linux to install

April 8th, 2023

[UNLOCK][ROOT][TWRP] ≤ PS7292/2984

Install TWRP, Magisk & full root

Unbricking options are more limited

DFU eFuse is preserved if installed on ≥ PS7242/3616

HDMI dongle can be used for Full unbrick options

[Temp ROOT] ≤ PS7624/3337

Spawn temporary root shell, gone after a reboot

Run a single file directly on the Cube to gain ADB root

Remove app protections

enable/disable any app even without root

use custom launcher

block OTA updates

disable Amazon AppBlockList

backup & restore app data

access all files and folders, and more...

[BOOTLESS MAGISK] ≤ PS7624/3337

Lite version of Magisk to grant root to any apps, and use su in ADB.

Limited, most Magisk modules don't work

* No HDMI dongle needed. Requires ADB run from Windows, Mac, Linux or Android to install, your choice.

June 16th, 2023

[Temp ROOT] ≤ PS7646/3565

Same as temp root from April 8th, 2023 using new GPU exploit
[Fire TV Original Android Development] Pro-me3us:
This release is mostly for the Raven folks that missed the last exploit because their devices had already updated.

@errut @yakovperelman69 @u_no_fr @ktjensen

I don't know if anyone is interested in running bootless Magisk, but it should be doable with this root as well. There will just be more of a delay before Magisk starts since it takes longer for this exploit to work. I haven't had a chance to test it, I prioritized getting the basic root exploit out this time over testing Magisk.

​
[Fire TV Original Android Development] yakovperelman69:
hi, thanks pro-me3us for post this.

im on S7646/3550 and following steps via ADB wireless (ubuntu), because I dont know how connect through a cable and send commands (never in a cube)

I was able to reach step 3

raven:/ $ chmod +x /data/local/tmp/raven_buf

but in this command :

raven:/ $ /data/local/tmp/raven_buf ... i got this:

benchmark_time 132

failed after 100

finished reset: 125054016 fault: 120552766 2746 err 0 read 3

failed to find pgd, retry

........and loops forever.

any help will be appreciate.

thanks
[Fire TV Original Android Development] yakovperelman69:
I Got it.

finally I completed all steps via wireless.

now I will need some help/instructions/link to install Magisk and get SU rights.

in a meanwhile I have a question: the OTA updates are permanently disabled? i need to be sure of that.
[Fire TV Original Android Development] Pro-me3us:
Yeah, this is a much different type of bug than the previous Mali GPU bug, it takes many attempts to gain root. You just have to be patient and let raven_buf run for a few minutes until it finishes.

If you disabled the OTA packages in the instructions, you should get an error when you check for updates in FireOS settings. As far as I know, there aren't any FireOS apps that re-enable the disabled OTA packages, but every new firmware has potential new hidden tricks.

Right now I'm noticing that Launcher Manager is being disabled by some other FireOS app. This was reported in the Launcher Manager thread. I need to see if I can figure out what app is responsible for this, so that it can be disabled.

Temp root can only work with bootless Magisk. I haven't had a chance to test it yet, so I'll need a couple days. Be aware that bootless Magisk has limitations. You can grant apps SU, but most Magisk modules don't work. My feeling is that you shouldn't use bootless Magisk unless you know you need it.

I'm not sure how many people are actually using it from the last temp root. There haven't been any comments about it, so maybe that just means it's working flawlessly :D

Roligov was the only person that I know of that was really trying it out. @roligov are you still using bootless Magisk regularly?
[Fire TV Original Android Development] yakovperelman69:
That's good news, mainly to avoid an unwanted update and to be able to wait on my current build PS7646/3550 until developers can figure out a permanent root, install TWRP, etc.

For now I'll be testing my Raven cube and reporting anything strange that happens.

Now I have another question, if I want to access root tomorrow, can I do this? :

raven:/ $ /data/local/tmp/raven_buf

raven:/ # "any command I need"?

And here I have to disable the internet again?

Do I have to disable package protections again?

thanks Pro-me3us for your help
[Fire TV Original Android Development] Pro-me3us:
Yea, if you just want to spawn a root shell, you only need to run raven:/ $ /data/local/tmp/raven_buf

From raven:/ #, you are root user at the commandline until you close that window

You don't need to disable internet, or disable packages, that was a one time thing to clear package protections. With package protections cleared, you don't need root anymore to enable/disable any packages / APKs.
[Fire TV Original Android Development] yakovperelman69:
Well, all that reassures me, and I'm fine with it. We don't really need root access every day.

I had already thanked you for the post and for the help, but I hadn't thanked you for mentioning me in post #4. That's how I received an email alert and was able to see this post on time. I think I was the first one to use it.

Thanks again Pro-me3us .
[Fire TV Original Android Development] ForbEx:
I have got cube 2nd with 7.2.2.9 with disabled updates should I update and do this? Whats your opinion? @Pro-me3us
[Fire TV Original Android Development] Pro-me3us:
I HIGHLY recommend the bootloader unlock method for any 2nd gen Cubes with firmware PS7292 and below

This is the ultimate goal for any device. It will flash full Magisk & TWRP. And you will be able to flash any firmware up to ps7646 and keep root (as long as you only update through TWRP). This will also keep the DFU fuse in tact, so that it's an option in case you have some sort of catastrophe.

I personally would not recommend updating the firmware to the more recent builds unless you need to for some reason. The newer firmware adds more Amazon BS than user utility.
[Fire TV Original Android Development] Pro-me3us:
I think @boxster03 was looking for recommendations on apps to disable

​

Thanks, that's a solid tip!

Looking at com.amazon.adep, it's got lots of instructions on blocking apps. My guess is that the app block list retrieval involves:

https://d1h88bafe13ct7.cloudfront.net/com.amazon.adep.nimh.appBlockList_V

The other url that pops up in the app is https://arucs-uswest.amazon.com, which I have seen returning hashes to the Cube.

Blocking the d1h88bafe13ct7.cloudfront.net domain may be enough to prevent it from disabling apps. That would be more precise if it works that blocking arucs-uswest.amazon.com

Based on the data in the com.amazon.adep folder, I would guess that the blocklist is based on the hash of the apk, rather than directly on the package name

View attachment 5938175

The app block list includes several versions of Launcher Manager, as well as a number of hashes for unknown apps. I've probably never installed any of these other apps so no package name was added to match any of the hashes.

I'll try just disabling adep for two days, and assuming that works, add it to the OP as another app to disable.

I'm attaching a list of the current apps in the PackageManagerDenyList as well as a reference in case something is added or changed down the line. This is the list of apps that are cleared in the instructions in the OP. The list also includes packages only present on the Fire Tablets and Kindle.
[Fire TV Original Android Development] yakovperelman69:
Hello again Pro-me3us

Since I don't understand much of this, I just follow instructions and advices. I'm not going to ask which command blocks each amz action. Just tell me please, which list should I use?

Despite having blocked updates, amz could still update some apps? (I understood that)

Do I have to write each command separately?

Something like :

raven:/ $pm disable user amazon.fireos

raven:/ $ pm disable-user com.amazon.adep

Thanks to you two Pro-me3us and RiCkLaR for the post.
[Fire TV Original Android Development] Pro-me3us:
I'm not recommending disabling all the apps on the PackageManagerDenyList! I posted it for comparison in case the list changes in the future.

You can disable Adep, and that should prevent Amazon from disabling any apps like Launcher Manager on your Cube

raven:/ $ pm disable-user com.amazon.adep

Don't disable amazon.fireos.

You can try @RiCkLaR's list. You may use some apps or features that he doesn't and has disabled. Eg disabling com.amazon.whad and com.amazon.whasettings breaks Alexa Home Theater mode and the Alexa Home Theater settings sub-menu. If something breaks, you can ask back and someone may be able to point out which app is responsible, and to re-enable.
[Fire TV Original Android Development] yakovperelman69:
I almost bricked the cube... hehe.

Thanks for the clarifications, I haven't changed the launcher yet. I plan to try the Wolf.

(y)(y)
[Fire TV Original Android Development] lurchiii:
U are my man! works like charme. Now i dont need lm anymore and can use my own launcher. i can everyone prefer to try projectify launcher.. its the best looking and working launcher i ever used on ftv.
[Fire TV Original Android Development] Turtlear:
I tried to do this today but ran into a few problems. First of all I am on 7.4.6.4. My first problem was that I was unable to get my FireTV cube to show up on adb via USB so I connected to it wirelessly and that worked. I was able to get root shell with raven_buff and use the command to disable package protections. I disabled the internet and restarted. But once I turned the wifi back on to adb back in and disable arcus it said I couldn't disable protected packages. I believe it may be happening because I have to turn the wifi back on rather than USB debug while the wifi is still off but I saw in the comments someone was able to do it with wireless only. Am I disabling package protections correctly? I made sure I typed this command correctly and restarted with no wifi: echo '<?xml version="1.0" encoding="utf-8" standalone="yes" ?><map><set name="DenyListKeyPackages"></set></map>' > /data/system/PackageManagerDenyList

I would appreciate any help on either solving this wirelessly or figuring out how to get USB debugging to work. Thanks.
[Fire TV Original Android Development] Pro-me3us:
Assuming you meant PS7646?

To use USB ADB, you have to use a regular microUSB to USB-A (or whatever your computer accepts) cable with a data line. You can't use an OTG cable. Secondly, the cable has to be already attached to your computer and Cube BEFORE the Cube is powered on.

This is the easier way.

It sounds like you are disabling Wifi on the Cube itself? Which means you can't connect to WiFi ADB to disable Arcus Proxy. So when you re-enable WiFi on the Cube, the FireOS immediately contacts Amazon, to retrieve and restore the PackageManagerDenyList, before you are able to make a WiFi ADB connection to run pm disable com.fireos.acrus.proxy. If the PackageManagerDenyList is rebuilt before you disable Arcus Proxy, you will get 'can't disable protected package' message.

Here's what I recommend. Make a WiFi ADB connection with your Cube, and repeat the process:

raven:/ $ /data/local/tmp/raven_buf

raven:/ # echo '<?xml version="1.0" encoding="utf-8" standalone="yes" ?><map><set name="DenyListKeyPackages"></set></map>' > /data/system/PackageManagerDenyList

raven:/ # exit

raven:/ $ pm clear com.fireos.arcus.proxy

At this point you need to disable internet access. Don't disable WiFi on the Cube, or turn off your router. Unplug the the internet cable that plugs into the back of your router. This way you can still connect your devices in your home, but none of your devices can contact the internet on the outside world. Then reboot your Cube, connect to it via WiFi ADB, and disable Arcus Proxy

raven:/ $ pm disable-user com.fireos.arcus.proxy

NOW you can reconnect your internet to your router, and you shouldn't get any package protection errors.

Then you can finish the process and disable these last new packages

Disable Amazon's AppBlockList

raven:/ $ pm disable-user com.amazon.adep

raven:/ $ pm clear com.amazon.adep

Disable OTA updates

raven:/ $ pm disable-user com.amazon.device.software.ota

raven:/ $ pm clear com.amazon.device.software.ota

raven:/ $ pm disable-user com.amazon.device.software.ota.override

raven:/ $ pm disable-user com.amazon.tv.forcedotaupdater.v2
[Fire TV Original Android Development] Turtlear:
Thank you so much for the detailed response, I was able to get it working this way. Previously I tried unplugging my router and replugging it in after reboot but that didn't work so I tried forgetting all the WiFi networks on the FireTV before I rebooted and logging back in after but that didn't work either. This time I followed your directions and unplugged the fiber optic input to the router and was still able to ADB into the FireTV to get rid of arcus, adep, and updates once and for all. Now I'm able to use Wolf Launcher without it getting removed and it's sooooo much better than the default launcher.

One thing you could add to the post is between step 2 and 3 I spent forever figuring out how to get that "raven:/ $" because I didn't know how to switch to the shell on the FireTV and ended up finding the command "adb shell" somewhere else on this forum in another post.
[Fire TV Original Android Development] Pro-me3us:
Thanks for the suggestion, I added the adb shell step, hopefully that makes it a little clearer. Also added disconnecting internet cable from router as a suggestion in that later step.
[Fire TV Original Android Development] Troox:
Works fine for me, thanks! But how to update Amazon Prime Video without reenable updates? For the most times Kodi is used, but Prime Video has some interesting Content from time2time :-) Prime Videos does not start because of a "missing" Update after this.
[Fire TV Original Android Development] Pro-me3us:
You can manually download and install any system apps from here, Ighor also maintains a similar list for the 4k Stick. System apps that are pushed out OTA are almost all identical between devices (has same MD5), downloading from either list is ok.

Prime Video and FireTV Player updates are frequently released together, so update both. As you will see, both apps are updated a couple times a month, but you likely don't need to update more than once every 4-6 months.
[Fire TV Original Android Development] EtherealNova:
Thank you so much for root, worked great!

I'm thinking about buying a 3rd gen Cube on Prime Day. Is it possible to backup the app data from my 2nd gen Cube and restore it on the 3rd gen Cube?
[Fire TV Original Android Development] Pro-me3us:
The standard Android backup/restore service doesn't work on FireOS. I don't know if there is an easy way, but you can manually copy the app data from one device and transfer it to another.

raven:/ $ /data/local/tmp/raven_buf

raven:/ # cp -r /data/data/<package-name> /sdcard/download

raven:/ # exit

raven:/ $ exit

adb pull /sdcard/download/<package-name>

Then on the new Cube you would do the reverse, after first installing the app

adb push <package-name> /sdcard/download

adb shell

gazelle:/ $ pm clear <package-name>

gazelle:/ $ /data/local/tmp/gazelle_buf

gazelle:/ # cp -r /sdcard/download/<package-name> /data/data
[Fire TV Original Android Development] EtherealNova:
@Pro-me3us thank you for the detailed instructions! I ordered a 3rd gen Cube and will try that when it arrives.
[Fire TV Original Android Development] madonnaragu:
Ok, I am getting an error here:

raven:/ $ pm disable-user com.fireos.arcus.proxy
Security exception: Cannot disable a protected package: com.fireos.arcus.proxy

java.lang.SecurityException: Cannot disable a protected package: com.fireos.arcus.proxy
at com.android.server.pm.PackageManagerService.setEnabledSetting(PackageManagerService.java:21128)
at com.android.server.pm.PackageManagerService.setApplicationEnabledSetting(PackageManagerService.java:21039)
at com.android.server.pm.PackageManagerShellCommand.runSetEnabledSetting(PackageManagerShellCommand.java:1617)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:208)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21685)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2796)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3975)
at android.os.Binder.execTransact(Binder.java:731)
[Fire TV Original Android Development] Pro-me3us:
The procedure for raven is slightly different from gazelle, so be sure to follow the instructions from the OP of this thread instead of the gazelle thread.

The main difference in the procedure between the two devices is that after you clear the PackageManagerDenyList, raven needs to be rebooted.

What's important here is that you disconnect your router from the Internet before rebooting raven. When raven reboots, it will immediately try to rebuild the PackageManagerDenyList. If it does, then you will get the package protection error you are showing.

You need to keep your router disconnected from the Internet until you are able to run

raven:/ $ pm disable-user com.fireos.arcus.proxy

Finish by running the rest of the commands from the instructions, then plug the internet provider cable back into your router.
[Fire TV Original Android Development] madonnaragu:
I did see there was a slight difference there. I did reboot the device, but I could not connect to my Fire TV Cube via adb shell until both my laptop and my Fire TV Cube were back online. They're both connected to the router via WiFi.
[Fire TV Original Android Development] Pro-me3us:
You have two options here.

1) you disconnect the ethernet cable (from your Internet provider) that runs into the back of your router, and keep the router powered on. This will keep your home network up, so that your WiFi devices can still communicate with each other, but none of your devices can reach the outside world Internet.

2) You power off your router, and use a USB-A to microUSB cable to connect your computer and Cube directly. If you do this, the computer and Cube need to be USB connected before the Cube is powered on. Then use ADBLink to make a USB ADB connection instead of a WiFi ADB connection.

Option 1) should work in most instances. Amazon uses USB-A to microUSB cables for a few of their Echos, kindles and FireHD tablets that you could borrow.
[Fire TV Original Android Development] madonnaragu:
Thanks, that's very useful!

However, when I now try to execute,

/data/local/tmp/raven_buf

it doesn't seem to stop and gain root, even when left to run for 15-20 minutes:

failed after 3400
finished reset: 606087610 fault: 588475860 1282 err 0 read 3
failed to find pgd, retry
failed after 3500
failed after 3600
benchmark_time 99
failed after 3700
failed after 3800
failed after 3900
benchmark_time 123
failed after 4000

I have tried rebooting the Fire TV Cube and my Mac several times, no luck. 🤔