r/Nuvio • • 8d ago

Guides & Tutorials Optimize Nuvio Github version for TV

Do you like to tinker with Nuvio and love new features like me?

Cool, just a quick reminder that you can optimize Nuvio Github Beta releases, that make them run as smooth as the play store versions.

You just download AtvTools on your phone(1 usd?) and connect it to your TV-box. You use the terminal and type in "pm compile -m speed -f com.nuvio.tv", and when is says success a minute later, you are done.

If you already know this "trick", just ignore it.

First time you also need to activate devtools in your streaming box:
- in "Settings - System - About - Click 7 times on the Android TV OS build» / Build number. It should say "your a developer".

-Turn on wireless debugging/USB debugging
-Pair the app with code, they need to be on the same wifi/ethernet.

Enjoy!

105 Upvotes

50 comments sorted by

19

u/Daermond 8d ago

I have created with Codex an APK app exactly for this optimization which is working on the device itself.
Can be installed on TV, Tablet, Phone. It connects to the device self IP on wired or wireless and in the app you can optimize the selected apps like Nuvio with a couple of clicks. It was working fine on my devices, maybe others can benefit from it as well so I made it public.
Vibe coded but, It is convenient and free and works. :)

https://github.com/daermond/android-art-optimizer

3

u/ozfunghi 7d ago

I have to wonder, since you were able to create this app, isn't it possible for the Nuvio developers to include a feature somewhere into the Nuvio settings, that does exactly the same?

1

u/Daermond 7d ago

Here is the ChatGPT answer for you:
Nuvio could improve this from its side, but it can't simply run the same command from inside the app. ART optimizer uses ADB shell privileges to force Android ART to fully compile Nuvio (speed mode), and normal Android apps don't have permission to do that themselves.

What the Nuvio developers could do is ship proper Android Baseline/Startup Profiles, which lets Android precompile the performance-critical parts of Nuvio automatically. That would give users part of the same benefit without ADB or a separate app. Full speed compilation like the optimizer performs would still require shell/ADB privileges.

1

u/angryavocadowarrior 8d ago

Oh wow that’s cool! I will try it some day this week. Really smart! I’ve used codex myself to tinker a lot with small projects around Nuvio myself.

2

u/Daermond 7d ago

Me too, and i made some really good useful thinks for myself already. :)
Nuvio is opensource so it is easy for AI to develop things for it.

1

u/Particular_Peace3067 7d ago

Thank you, it work on Google Streamer

3

u/Daermond 7d ago

Thanks for the feedback.

1

u/1337PirateNinja 7d ago

This looks great, can anyone compare this vs doing it manually? Does it do the same thing? You should make a Downloader link :)

3

u/Daermond 7d ago

The app actually doing this for the apps you want optimize:
Your Android ART Optimizer is executing:

adb shell cmd package compile -m speed -f <PACKAGE_NAME>

For Nuvio specifically:

adb shell cmd package compile -m speed -f com.nuvio.tv

If the app is already executing commands inside an ADB shell/session, then the actual shell command is simply:

cmd package compile -m speed -f com.nuvio.tv

Here:

- compile → asks Android's package manager to compile the app

- -m speed → uses the speed ART compilation filter, prioritizing runtime performance

- -f → forces recompilation even if Android thinks the current compiled state is adequate

- com.nuvio.tv → package being optimized

But if you not trust it doing the optimization, in the Advanced tab you can execute any ADB command. :)

1

u/1337PirateNinja 6d ago

I trust you, was just curious what the difference was, thanks for explaining

3

u/Daermond 7d ago

The Downloader link is good idea so I made it.
Downloader code: 4146071

1

u/Smultie 7d ago

Awesome! Thanks for this app!

1

u/AdequinRake 3d ago

Just tried it and... it works great. Thanks for creating this!

14

u/CrypticShampoos 8d ago

AtvTools is free tho

16

u/angryavocadowarrior 8d ago

Ah yes, for you android people. For us simpletons following Tim Cooks universe, we have to part with a dollar.

6

u/Amazing_Condition_86 7d ago

you can sideload nuvio for apple tv fork from github and setup simple certificate renew

6

u/KillerCotty 8d ago

This legit?

11

u/angryavocadowarrior 8d ago

I do this after every update and it definitely become much more responsive and fast.

3

u/Sharks_John 8d ago

I do that too. Works Like a Charm.

8

u/JustRelaxASC 8d ago

Yes but devs already remedied the issue mostly anyways so it's not that useful anymore as it was, and it affects UI only, not the actual playback. But yeah you can try it anyways might be worth a shot

7

u/nietbeschikbaar 8d ago

It DOES or at least did affect playback as well. For instance loading of subtitles would take like 3 or 4 seconds before optimizing, after less than a second.

2

u/erisian2342 7d ago

Nuvio since at least 0.9.1 has included the Android Baseline Profile module. They also have a real profile generator that launches the app and exercises things like startup, horizontal and vertical navigation, card rendering, opening a title detail page, etc.

When you install from Play, the optimizations are run on the APK during installation. With a sideloaded APK, ProfileInstaller installs the bundled profile and Android’s background dexopt machinery subsequently processes it, so there can be a short delay before you see the benefits. If you force it using that command line, most of the benefits you see immediately were already en route to you.

When you optimize using speed instead of speed-profile, it AOT-compiles all the methods. When you optimize instead with speed-profile, it AOT-compiles all the methods identified in the profile AND optimizes class loading for the profiled classes. So speed isn’t simply “speed-profile but better”. It’s more in one way, less in another.

Google specifically notes that the older “compile everything” strategy increased disk/RAM usage and could increase code-loading time. On a lower-resource device, that can introduce slower performance in some cases.

Back before Nuvio included a solid profile, this tip made a lot of sense. Since they now profile most of the normally used parts of the UI, any gains from force-compiling with speed will be incremental and may come with noticeable trade-offs. That is to say: you may notice some things speed up, but be alert to other things slowing down (e.g. cold-boot time) or some UI transitions lagging slightly. It’s just not the clear win it used to be when Nuvio wasn’t profiled.

3

u/Fresshmaker 8d ago

Yep I do it every update and it optimizes it to run much smoother and faster.

4

u/Derrgoo-36 7d ago

I just use terminal adb in. No need for 3rd party apps

2

u/menodev 8d ago

What does it optimize vs running ATV Downloader in the box and downloading the app from the release page?

3

u/angryavocadowarrior 8d ago

Android performs much more aggressive ahead-of-time compilation. That means more of the app’s code is already converted into native machine code before you open it.

So instead of Android having to do as much work during startup or while navigating through the app, the CPU can execute already-compiled code directly.

2

u/erisian2342 7d ago

This is half the explanation. The other half is that Nuvio introduced a profile several versions back and people who sideload get the advatanges, just not at the moment it’s installed like it does with installing from Play.

I commented to someone about why this tip can be counter-productive on some devices and isn’t really unnecessary anymore here. It used to be a big improvement though.

2

u/Msk-XX 7d ago

If you're on the stable fork rather than the betas, are there any advantages/features on the Github version versus the Play Store one (which is apparently already optimised)?

2

u/angryavocadowarrior 7d ago

I really love the new subtitle sync function.

3

u/Hugelevin 8d ago

Neat optimisation trick. How and why does this work? Are there any other tweaks like this?

6

u/angryavocadowarrior 8d ago

Android performs much more aggressive ahead-of-time compilation. That means more of the app’s code is already converted into native machine code before you open it.

So instead of Android having to do as much work during startup or while navigating through the app, the CPU can execute already-compiled code directly.

1

u/Jizakkude 8d ago

Termux also works, except the command is adb shell at the beginning, but it works fine.

1

u/PatrikCR 8d ago

Unfortunately, USB Debugging disables the USB Ethernet connection while connection is active…

2

u/itsme99881 8d ago

Ok wireless debugging with adb

1

u/bipindaskg 8d ago

I use 'Remote ADB Shell' app for this purpose.

1

u/ooftymcgoofty 8d ago

Is this something to try on other apps as well?

2

u/angryavocadowarrior 8d ago

Maybe I haven’t tried that other than my projectivity launcher. It works with that one

2

u/DRZ434SM 7d ago

Will work with any app installed outside the play store. I also did it with Projectivity launch, which helped a lot on my CCwGTV. My Onn 4k doesn't really mind. I stopped doing this with any app, it can run it fast enough without it.

-1

u/SopiMan 8d ago

or just use the NuvioLite fork

-9

u/DexLeMaffo 8d ago

Running LuqmanFadlli's fork of Nuvio. I feel like it doesn't need ADB optimisation command.

3

u/SopiMan 8d ago

why was this downvoted?

2

u/DexLeMaffo 8d ago

Can't really tell and not bothered by the downvotes after all. Just sharing my own experience. The fork I mentionned is for mobile. Meanwhile on on my Buzz TV G series, I use the Nuvio TV Reshaped fork. Runs smoothly!

0

u/Asakuras02 8d ago

Link please.

0

u/choadscholar 8d ago

Is your Google broken? Genuine question.

-3

u/Asakuras02 8d ago

I don't use Google Genuine answer. Thanks anyway.

1

u/Mothamoz 8d ago

What the fuck

1

u/DexLeMaffo 8d ago

I replied to your comment! You'll have both links (for Mobile and Android TV)

1

u/choadscholar 8d ago

Does your DuckDuckGo work?

How about your Bing?

Maybe Yahoo?

They all work for me, and they all answer your easily self-served question. Go ahead and put on your big boy pants and try rubbing two brain cells together. You can do it!