• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Fire TV Stick 4K 6.2.8.1 r3_4054 No efuse/Old UI/Accessibility/NO OTA/PRE-ROOTED ROM

Search This thread

Skel40

Senior Member
Dec 27, 2019
286
137
Moto G 5G
Here's the latest release 6.2.8.1_r3_4054 of the pre-rooted rom I've combined into one patched ota removed zip which packs the downgraded older interface with accessibility settings working again. After flashing, clear data in settings/applications/Appstore to prevent issues with apps and reboot.

There's no bugs in this rom that I know of.

No efuse is present in this rom and is completely safe to flash. Remember to not flash stock images that are 6.2.8.0 and higher. Only flash the pre-rooted roms from @rbox so that the efuse doesn't burn.

Nothing is removed in this rom, only re-edited for system app downgrades that include the com.amazon.tv.launcher (KFTV launcher), com.amazon.tv.settings.v2 (Amazon Settings), and lastly, com.amazon.venezia (Appstore) with options to hide cloud apps, to adjust AV Sync Tuning, as well with the Wi-Fi icons when connecting wirelessly altogether with the older interface.

Things that don't work

Amazon FreeTime
Profiles
Some apps that recognize a bootloader is unlocked and forcibly closes i.e Peacock TV
OTA updates?? Of course ota updates no longer work. This rom removes the fota and any type of updates from occurring
Amazon Live Shopping (The app does work, but the older UI somehow doesn't recognize it as one)

For those that prefer using the newer interface with the same patches, download this rom from this link:

 

Attachments

  • 6.2.8.1_r3_4054_patched-older-interface.zip
    630.5 MB · Views: 319
Last edited:

Skel40

Senior Member
Dec 27, 2019
286
137
Moto G 5G
Is eFuse removed in the firmware?
I'm sure it is. I double checked the updater-script and it says this

(getprop("ro.product.device") == "mantis" || getprop("ro.build.product") == "mantis") || abort("This package is for \"mantis\" devices
this is a \"" + getprop("ro.product.device") + "\".");
ifelse(is_mounted("/system"), unmount("/system"));
package_extract_dir("install", "/tmp");
set_metadata("/tmp/backuptool.sh", "uid", 0, "gid", 0, "mode", 0755);
mount("ext4", "EMMC", "/dev/block/platform/soc/11230000.mmc/by-name/system", "/system", "");
run_program("/tmp/backuptool.sh", "backup");
unmount("/system");
ui_print("Copying system image...");
block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
ui_print("Copying vendor image...");
block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat");
mount("ext4", "EMMC", "/dev/block/platform/soc/11230000.mmc/by-name/system", "/system", "");
delete("/system/bin/efuse_check.sh",
"/system/bin/ewriter");
unmount("/system");
ui_print("Copying kernel...");
package_extract_file("boot.img", "/dev/block/platform/soc/11230000.mmc/by-name/boot");
package_extract_dir("magisk", "/dev/tmp/install");
set_metadata("/dev/tmp/install/install-magisk.sh", "uid", 0, "gid", 0, "mode", 0755);
run_program("/dev/tmp/install/install-magisk.sh");
mount("ext4", "EMMC", "/dev/block/platform/soc/11230000.mmc/by-name/system", "/system", "");
run_program("/sbin/mkdir", "/system/addon.d");
run_program("/tmp/backuptool.sh", "restore");
unmount("/system");

Whereas with the original stock 6.2.8.0_3236, it activates some type of blocklist from Amazon without the disable efuse_check in this updater-script:

So to answer your question, yes it disables the efuse in the modded rom. The script is important when flashing zips and why only flashing rbox's pre-rooted roms are necessary. He edits the scripts from the stock rom to make it compatible with rooted 4K devices so the efuse stays disabled under that line he added above.

So in conclusion, when you extract the pre-rooted rom, you'll see the META-INF/com/ without all the Amazon stuff added to it to make it disable the efuse under their scripts because these scripts tell the operating system to block anything from being modified

getprop("ro.product.device") == "mantis" || abort("E3004: This package is for \"mantis\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Target: Amazon/mantis/mantis:6.0/NS6280/3236N:user/amz-p,release-keys");
show_progress(0.650000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
abort("E1001: Failed to update system image.");
show_progress(0.100000, 0);
ui_print("Patching vendor image unconditionally...");
block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat") ||
abort("E2001: Failed to update vendor image.");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/platform/soc/11230000.mmc/by-name/boot");
show_progress(0.200000, 10);
package_extract_file("images/logo.bin", "/dev/block/platform/soc/11230000.mmc/by-name/logo");
package_extract_file("images/lk.bin", "/dev/block/platform/soc/11230000.mmc/by-name/lk");
package_extract_file("images/tz.img", "/dev/block/platform/soc/11230000.mmc/by-name/tee1");
package_extract_file("images/tz.img", "/dev/block/platform/soc/11230000.mmc/by-name/tee2");
package_extract_file("images/preloader.img", "/dev/block/platform/soc/11230000.mmc/mmcblk0boot0");
package_extract_file("META-INF/com/amazon/android/target.blocklist", "/cache/recovery/last_blocklist");
set_metadata("/cache/recovery/last_blocklist", "uid", 0, "gid", 0, "mode", 0444, "capabilities", 0x0);
set_progress(1.000000);
 
Last edited:

Sus_i

Senior Member
Apr 9, 2013
1,265
516
I'm sure it is. I double checked the updater-script

Afaik the efuse doesn't burn during ROM flashing (i.e. you can't find the efuse burning in the updater scripts).
Afaik it can only burn, if TZ gets an update during ROM flashing, then the efuse gets burned at the next reboot (only possible in case of a locked Stick = stock recovery).

But as you know, for an unlocked stick, TWRP recovery will block updating/flashing TZ to tee1 and 2, same for LK and PL images. No LK/TZ updates = no fuse burning ;)

I think @9lalex9 asked about what rbox did with his last prerooted, cuz rbox removed the kernel script that burns the efuse in the boot.img of his prerooted Rom. This is not needed as long as TWRP is always there, but it if you like you can do it too. Maybe ask @Pretoriano80 I guess he can tell you some detailed things about the kernel :) Another way may be to grab the prerooted rom as source for your modded rom...

Added back the old interface because the new ui is horrendous.
Yes. You're right, it's awful, the most terrible thing they did in the last years^^
So keep going on with this, please :)
 
Last edited:

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
I'd like to introduce you all rooted Fire TV Stick 4K users a mod I've been working on to get the old interface back on your devices without the new interface. In this beta release, you will find the old interface on this version and the current version of this stock rom is 6.2.8.0_3236. Everything works. Apps install just fine as if you were on the previous OS, 6.2.7.7. What you'll also find in this mod is notable improvements in performance. Before doing any changes to your Fire TV Stick 4K, make a full backup of your system and data before proceeding. Flash this zip in TWRP after wiping everything in recovery. Be sure to block updates so the old ui isn't overwritten with the new ui.

Bugs:
The UI will lag occasionally, don't know what's causing this issue. This isn't really considered a bug but the 'Who's watching Fire TV' screen will appear without the actual icon because of this being an older launcher.

Notes:
Added back the old interface because the new ui is horrendous. I can't even go to my apps like I would before so this mod prevents me from staying on an older OS. What I've done with this mod is very simple. Amazon only updated the interface so I downgraded back to a previous version with AV Sync Tuning as well with the Wi-Fi Icons. Feel free to leave any feedback about adding or removing features if this rom isn't working right and please report any bugs.
The efuse is also disabled with this rom. It's found in the script to disable the efuse_check.

Requirements: A rooted and unlocked Fire TV Stick 4K without the eFuse chip blown after 6.2.7.7, basic knowledge that this stock modded rom is beta so there will be a few bugs.

Official Modded Pre-Rooted Rom Latest (6.2.8.0_3236):
Can you also fix Accessibility? Only thing which is keeping me from upgrading

@

Sus_i

[EDIT]
So I was thinking of patching to fix Accessibility,
I have deodexed the ROMs and I was thinking of following few approaches.
1. Replace logan
2. Replace Services with older version
3. Try to patch the jar of Services.
Even though i have some experience with smali jar and basic stuff but i have no experience with binary files.

Now i have some questions relating some problems.
Changing stuff in TWRP does not affect the System
So i have to find a way to flash without taking to much time.
And what's the matter with efuse??
On which version does it blow up and what are the caveats?
 
Last edited:

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
Hi again,
I have patched this file (fosservices.jar) its from 6.2.7.3, can anyone check if it fixes accessibility.
 

Attachments

  • fosservices-patched6273.jar
    764.1 KB · Views: 20

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
Where can I overwrite this file? 6.2.7.3 patches accessibility. Get the file from 6.2.7.1. I'm glad to test it out rn
replace this with /system/framework/fosservices.jar , there should also be an odex file in /system/framework/oat/arm/fosservices.odex (delete this file).
this file is from 6.2.7.3 where accessibility services are restricted to system apps only.
on 6.2.7.1 there is no such restriction.
if you are on 6.2.7.1 then theres no need to test because accessibility works just fine. i need to test this on newer version, and i am also unable to download your zip file for whatever reason. if i had then i could have gave you patched version from 6.2.8.0

The reason why I am not doing is because i have removed root and TWRP.
if this worked on 6.2.8.0 then i will update to that using TWRP, remove OTA apps, and patch this file and lock the bootloader again.

[Question] If i relock the bootloader and it replaces the boot image with stock one. will it blow the efuse?
 
Last edited:

Skel40

Senior Member
Dec 27, 2019
286
137
Moto G 5G
replace this with /system/framework/fosservices.jar , there should also be an odex file in /system/framework/oat/arm/fosservices.odex (delete this file).
this file is from 6.2.7.3 where accessibility services are restricted to system apps only.
on 6.2.7.1 there is no such restriction.
if you are on 6.2.7.1 then theres no need to test because accessibility works just fine. i need to test this on newer version, and i am also unable to download your zip file for whatever reason. if i had then i could have gave you patched version from 6.2.8.0

The reason why I am not doing is because i have removed root and TWRP.
if this worked on 6.2.8.0 then i will update to that using TWRP, remove OTA apps, and patch this file and lock the bootloader again.

[Question] If i relock the bootloader and it replaces the boot image with stock one. will it blow the efuse?
Thanks for getting back to me. That's strange. It's downloading fine on my end. I'll try to upload it on mega or something like that. That's not recommended. Any OS after 6.2.7.7 will blow the efuse on a locked bootloader so the exploit is no longer working unless you kept your device in an unlocked state like mine. I own 3 4K's fully unlocked with 6.2.7.7 because of older easy to navigate ui and the efuse being disabled as well thanks to TWRP. Once you're unlocked you're safe. What I should recommend instead is getting one of the latest pre-rooted roms available due to the efuse check being removed then replace the boot.img. Don't update with the official stock version as that will keep your device locked for good. No bootrom to access anymore. It's impossible so if you want to take the risk go ahead but I don't advise doing so.
 

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
Thanks for getting back to me. That's strange. It's downloading fine on my end. I'll try to upload it on mega or something like that. That's not recommended. Any OS after 6.2.7.7 will blow the efuse on a locked bootloader so the exploit is no longer working unless you kept your device in an unlocked state like mine. I own 3 4K's fully unlocked with 6.2.7.7 because of older easy to navigate ui and the efuse being disabled as well thanks to TWRP. Once you're unlocked you're safe. What I should recommend instead is getting one of the latest pre-rooted roms available due to the efuse check being removed then replace the boot.img. Don't update with the official stock version as that will keep your device locked for good. No bootrom to access anymore. It's impossible so if you want to take the risk go ahead but I don't advise doing so.
Thanks, I was reading other post on XDA where people are stuck with locked bootloader on 6.2.8.0, I do not do OTA updates, and I certainly don't update without assurance that my apps work fine on it. i was thinking of getting an image and make some changes by removing the efuse binaries from bin and also was thinking of unlocking ADB on Boot.img and if found removing efuse from there, the thing is i have to patch boot.img as my stick becomes unstable with TWRP. but for now I just wanted to go 6.2.7.3 and check if everything goes right i will stay on it else jump back to 6.2.7.1

Sorry for bothering you, what version introduced profile in FireTV?
 
Last edited:

Skel40

Senior Member
Dec 27, 2019
286
137
Moto G 5G
Thanks, I was reading other post on XDA where people are stuck with locked bootloader on 6.2.8.0, I do not do OTA updates, and I certainly don't update without assurance that my apps work fine on it. i was thinking of getting an image and make some changes by removing the efuse binaries from bin and also was thinking of unlocking ADB on Boot.img and if found removing efuse from there, the thing is i have to patch boot.img as my stick becomes unstable with TWRP. but for now I just wanted to go 6.2.7.3 and check if everything goes right i will stay on it else jump back to 6.2.7.1

Sorry for bothering you, what version introduced profile in FireTV?
That makes sense! I don't update thru ota either. This is off topic but do you know why updating the settings V2 app on 6.2.7.1 won't do anything to add av sync tuning and wifi icons by any chance? It acts like an update but doesn't add those features in. Maybe it's the .jar files? I also have a slight issue with my old UI rom too. Its laggy as if something heavy is running in the background. Do you think I should run a logcat? I'll need to upload the rom to mega for you to see and possibly fix. The version that introduced profiles was 6.2.8.0_3233
 

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
That makes sense! I don't update thru ota either. This is off topic but do you know why updating the settings V2 app on 6.2.7.1 won't do anything to add av sync tuning and wifi icons by any chance? It acts like an update but doesn't add those features in. Maybe it's the .jar files? I also have a slight issue with my old UI rom too. Its laggy as if something heavy is running in the background. Do you think I should run a logcat? I'll need to upload the rom to mega for you to see and possibly fix. The version that introduced profiles was 6.2.8.0_3233
i haven't checked but as far as i know, the actual code is in the settings V2, but the shortcuts are embedded in the amazon launcher, so there will be two icons in two different places one in the network activity of the Settings apk where as the other is on Amazon Launcher itself.
 

Pretoriano80

Senior Member
Jun 9, 2010
3,244
2,917
Thanks, I was reading other post on XDA where people are stuck with locked bootloader on 6.2.8.0, I do not do OTA updates, and I certainly don't update without assurance that my apps work fine on it. i was thinking of getting an image and make some changes by removing the efuse binaries from bin and also was thinking of unlocking ADB on Boot.img and if found removing efuse from there, the thing is i have to patch boot.img as my stick becomes unstable with TWRP. but for now I just wanted to go 6.2.7.3 and check if everything goes right i will stay on it else jump back to 6.2.7.1

Sorry for bothering you, what version introduced profile in FireTV?
People stuck with locked bootloader on 6.2.8.0 most likely never unlocked it before updating to 6.2.8.0.

Devices unlocked previously, before 6.2.8.0 are fine, unless you restore everything to stock, including boot, recovery, bootloader, and tz.

Also, as long as you keep TWRP (i don't know why you removed yours) then you are pretty safe, even if you install a full stock rom (TWRP has a failsafe mechanism which prevents flashing the critical images (recovery, tz, and bootloader).

As for modifying the boot image, there's not much to do, just disabling the efuse_check or anything efuse related from the ramdisk.
 
  • Like
Reactions: SweenWolf

SweenWolf

Senior Member
Mar 18, 2016
569
428
Paradise
Amazon Fire TV
People stuck with locked bootloader on 6.2.8.0 most likely never unlocked it before updating to 6.2.8.0.

Devices unlocked previously, before 6.2.8.0 are fine, unless you restore everything to stock, including boot, recovery, bootloader, and tz.

Also, as long as you keep TWRP (i don't know why you removed yours) then you are pretty safe, even if you install a full stock rom (TWRP has a failsafe mechanism which prevents flashing the critical images (recovery, tz, and bootloader).

As for modifying the boot image, there's not much to do, just disabling the efuse_check or anything efuse related from the ramdisk.
Thanks for the info, my stick randomly reboots itself if i have TWRP installed.
And File Manager of TWRP had no affect on the System partition (for me atleast)
And I also always has a pendrive attached with the stick with some movies and videos on it.
Which cause boot delay also because it waits for TWRP.
I upgraded to 6273 and there was no Accessibility, so i had to unlock the bootloader once again to go back to 6271.
I use many apps which requires Accessibility like and two main ones are for Launcher and for Mouse Services.
As i don't use google play services or make any changes to the system and with 6271 being last version to support Accessibility i decided to stick with it and just disable updates. And relocked the bootloader, because i had no use of TWRP anymore. Until now, if Accessibility is fixed i might upgrade.

But like you said, it burns the fuse when we update the TZ and that can only be updated by the recovery, TWRP will never update the TZ so we are safe, but even the stock recovery needs an update package to flash the TZ right?
Because of the script it will delete the efuse check and ewriter then it will not blow the fuse, Just like in OP.
Even if i then relock the bootloader, and the updates will be blocked to the system, because there are some update apps which sideloads the OTA package (i read their codes) then if their are no offline update file present in the system how will the stock recovery flash the TZ.
I'm just asking, i know amazon also has some tricks under their sleeves and they can do something notorious.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Here's the latest release 6.2.8.1_r3_4054 of the pre-rooted rom I've combined into one patched ota removed zip which packs the downgraded older interface with accessibility settings working again. After flashing, clear data in settings/applications/Appstore to prevent issues with apps and reboot.

    There's no bugs in this rom that I know of.

    No efuse is present in this rom and is completely safe to flash. Remember to not flash stock images that are 6.2.8.0 and higher. Only flash the pre-rooted roms from @rbox so that the efuse doesn't burn.

    Nothing is removed in this rom, only re-edited for system app downgrades that include the com.amazon.tv.launcher (KFTV launcher), com.amazon.tv.settings.v2 (Amazon Settings), and lastly, com.amazon.venezia (Appstore) with options to hide cloud apps, to adjust AV Sync Tuning, as well with the Wi-Fi icons when connecting wirelessly altogether with the older interface.

    Things that don't work

    Amazon FreeTime
    Profiles
    Some apps that recognize a bootloader is unlocked and forcibly closes i.e Peacock TV
    OTA updates?? Of course ota updates no longer work. This rom removes the fota and any type of updates from occurring
    Amazon Live Shopping (The app does work, but the older UI somehow doesn't recognize it as one)

    For those that prefer using the newer interface with the same patches, download this rom from this link:

    4
    So just to be clear if i install mantis-6.2.8.1-r2-tz-video-error fix-old-interface-pre-rooted.zip on main OP section I should be good ? I'm currently on rbox firmware 6.2.8.0 . It should not effect efuse doing so ? also would there be anything else I would need to flash after flashing ? I see this post and not quite sure if I need these files its all sorta confusing to me .
    I will try to make it less confusing,
    it depends on what you want with the system

    rbox's latest prerooted firmware is 6.2.8.1_r2 which contains updated TZ (why TZ update is needed? If you are on older OS like 6.2.7.1 which is compatible with tz then almost all aps will work except Prime Video, if you are on newer OS like 6.2.8.0 but are using older TZ then they will be incompatible with each other and you will not be able to watch any DRM contents, it will cause the Device to freeze)

    I have not checked what OP has in the ROM, so Skel40 will better tell you about it.

    About my post that you quoted, it contains files which will patch 6.2.8.1 only (assuming that the user has only updated the system partition, all of the prerooted images only updates system), you don't need to update other partitions,
    The NOFOTA zip will disable System updates on the system, meaning that your stick will not check for update, even after factory resetting or when you are setting your device for the first time (in OOBE), your stick will skip any update and will always tell you your system is up to date (or will throw an error) every time you click on check for update in the "My FireTV Section".
    It also enables "AppWidget" which is missing on our stick from ever.
    It also fixed Accessibility so that you can use LauncherHijack/FireTVSettings/FTVLaunchX/AnyDesk/MATVT etc.
    Accessibility allows you to have Custom launcher (without disabling amazon stock launcher), MATVT allows you to use remote as mouse (its alternative to Mouse Toggle).
    It does not uses magisk so it doesn't matter if the system is rooted or not (it is flashed via TWRP)
    Now because you are not disabling your stock launcher you can access all the settings
    This zip will work on any 6.2.8.1 system (you need to have TWRP to flash it)
    It needs the patched boot image so it can boot properly (the boot.img I provided is not patched by magisk so there will be no root, you can install magisk.zip to root if you want)

    The TZ update is only for those who are on 6.2.8.0 or 6.2.8.1 and whose Netflix and prime are crashing and do not want to download the full system image. it will patch the OS (it will update the TZ and then remove the files which burns the efuse).

    The boot image i provided has some things removed, It does not check if the system is tempered (magisk also removes that and is required to removed, if not removed them only stock images will run on your system and any modification to the system will make it non bootable)
    Efuse and recovery service are removed, meaning system will not execute these commands
    the function of efuse checker is to check and blow the efuse (my and pretoriano80's boot image will not run it even its present in the system).
    the function of recovery is to check if the recovery is stock or not, if it is not stock then the system replaces it(TWRP) with stock (amazon)
    as long as you have TWRP installed, recovery script will not do anything but i have removed it just to be safe.
    This boot.img is taken from 6.2.8.1
    3
    What do you think, should we fix widgets too? [Try to fix]
    2
    Patch - 6.2.8.1 v2 (NO FOTA)

    FireTV IME:

    • Enables voice search
    Requirements:
    • v2 Patch
    • Alexa (Latest)
    Package Installer:
    • Fix white Action Bar
    Requirements:
    • v2 Patch

    Instructions:
    Flash Patch (6.2.8.1) v2 using TWRP and reboot.
    When the system is booted install the apps normally using any file manager.
    2
    I now need some help combining the "copying system image" with @SweenWolf's forced ota zip he created by adding the script in the META-INF folder.
    This is what I use, you might know I don't use Magisk, so you will not find it in here, you can add that manually.

    Code:
    (getprop("ro.product.device") == "mantis" || getprop("ro.build.product") == "mantis") || abort("This package is for \"mantis\" devices
    this is a \"" + getprop("ro.product.device") + "\".");
    ifelse(is_mounted("/system"), unmount("/system"));
    ui_print("NS6281 (With Patches)");
    ui_print("Copying system image...");
    block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
    ui_print("Copying vendor image...");
    block_image_update("/dev/block/platform/soc/11230000.mmc/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat");
    mount("ext4", "EMMC", "/dev/block/platform/soc/11230000.mmc/by-name/system", "/system", "");
    ui_print("Deleting efuse burner");
    delete("/system/bin/efuse_check.sh",
           "/system/bin/ewriter");
    unmount("/system");
    ui_print("Updating TZ...");
    package_extract_file("images/tz.img", "/dev/block/platform/soc/11230000.mmc/by-name/tee1_real");
    package_extract_file("images/tz.img", "/dev/block/platform/soc/11230000.mmc/by-name/tee2_real");                      
    mount("ext4", "EMMC", "/dev/block/platform/soc/11230000.mmc/by-name/system", "/system", "");
    ui_print("Patching System Files");
    delete("/system/priv-app/com.amazon.tv.forcedotaupdater.v2/com.amazon.tv.forcedotaupdater.v2.apk",
           "/system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk",
           "/system/framework/fosservices.jar",
           "/system/framework/services.jar",
           "/system/framework/oat/arm/fosservices.odex",
           "/system/framework/oat/arm/services.odex");
    package_extract_dir("system", "/system");
    set_metadata("/system/priv-app/com.amazon.tv.forcedotaupdater.v2/com.amazon.tv.forcedotaupdater.v2.apk", "uid", 0, "gid", 0, "mode", 0644);
    set_metadata("/system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk", "uid", 0, "gid", 0, "mode", 0644);
    set_metadata("/system/framework/fosservices.jar", "uid", 0, "gid", 0, "mode", 0644);
    set_metadata("/system/framework/services.jar", "uid", 0, "gid", 0, "mode", 0644);
    unmount("/system");
    ui_print("Copying kernel...");
    package_extract_file("boot.img", "/dev/block/platform/soc/11230000.mmc/by-name/boot");
    ui_print("OS Installation Complete");
    ifelse(is_mounted("/system"), unmount("/system"));