Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tifroz
Streaming Star

Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution
  • roDeviceInfo.GetOSVersion() is only available from Roku OS 9.2 so you have to detect the OS version before you can even attempt using this API
  • roDeviceInfo.GetVersion() assumes a single digit major version number, so it won't work (at least not as described by the docs - see below) after Roku OS 10 ships
  • Roku now requires channels to signal the launch complete scene.signalBeacon("AppLaunchComplete"), but the corresponding API isn't available until Roku OS 9.1

 

Putting it all together, the only way we can comply with Roku publishing guidelines after Roku OS 10 ships will be to drop support for Roku OS versions < 9.2. 

 

Note: description for GetVersion(), quoted from the documentation:

A 13-character string (for example "034.08E01185A"). The third through sixth characters are the major/minor version number ("4.08") and the ninth through twelfth are the build number ("1185"

0 Kudos
1 Solution

Accepted Solutions
OddScott
Roku Guru

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

Is this what you're looking for?

' Firmware Version Number
' Return 8.01, 9.01, etc if FW 9.1 or less
' Otherwise return 9.2, 9.3, 10.1, etc
Function FwVerNum()
    di=CreateObject("roDeviceInfo")
    if FindMemberFunction(di,"GetOSVersion")=Invalid
        rv=Val(di.GetVersion().Mid(2,4))	
    else
        aa=di.GetOSVersion()
        rv=Val(aa["major"]+"."+aa["minor"])
    endif
    return rv
EndFunction
www.InstantTvChannel.com - 717-441-4386 - Build a Roku SDK channel in 15 minutes! - Easy Direct Publisher to SDK upgrades!

View solution in original post

10 REPLIES 10
renojim
Community Streaming Expert

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

I brought this up years ago.  🙂  I think you're looking at it wrong.  There's no good reason to support older OS versions as every supported Roku will get any new OS version eventually.  You just have to set the Minimum Firmware version when you update your channel and anything running an older OS won't get the update until its firmware is updated.  The unsupported Rokus will never get the new OS or any channel updates for that matter, so there's nothing you can do to support them.  I suspect Roku will have GetVersion() return something for OS v10 like an A, but well have to wait and see.  I can't see a good use case for trying to support an older version, but there may be something I'm not thinking of.

Roku Community Streaming Expert

Help others find this answer and click "Accept as Solution."
If you appreciate my answer, maybe give me a Kudo.

I am not a Roku employee.
0 Kudos
tifroz
Streaming Star

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

As it stands, folks with older Roku devices won't be able to download our channel after OS 10 ships, and the only reason is because OS version detection prior to OS 9.1 only supports single digit numbers - it's just silly. 

Thanks for taking the time to respond! Hopefully Roku will come up with something that can be worked out.

0 Kudos
renojim
Community Streaming Expert

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

I'm still missing what the real problem is; excuse me for being dense.  So you've got an update that uses something new from v10 or doesn't use something new.  If it doesn't use anything new, just set the Minimum Firmware Version to 9.1 (or whatever).  If it does use some feature that's new in v10, then no one that hasn't received v10 would be able to use it anyway.  Roku handles this automatically by not updating the channel on those units.

Are you saying you have an update that could use some new feature in v10, but if it isn't there then you have a workaround to make it work in previous versions, so you need to test for OS version?  In that case I think you could publish one update with the Minimum Firmware Version set to 9.x (wait for it to get published) and then another update with the use of the new feature and the Minimum Firmware Version set to v10.

There's no good reason to set the Minimum Firmware Version required to the latest firmware release.  Heck, I have channels I've updated and the Minimum Firmware Version is set to 3.x.  🙂  I have yet to receive v9.3 on any of my units, so I'm just setting the Minimum Firmware Version to v9.1 because I'm not using anything that's only available in v9.2+.

I'm not trying to be difficult.  I'm just trying to understand the issue.

Roku Community Streaming Expert

Help others find this answer and click "Accept as Solution."
If you appreciate my answer, maybe give me a Kudo.

I am not a Roku employee.
0 Kudos
OddScott
Roku Guru

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

Is this what you're looking for?

' Firmware Version Number
' Return 8.01, 9.01, etc if FW 9.1 or less
' Otherwise return 9.2, 9.3, 10.1, etc
Function FwVerNum()
    di=CreateObject("roDeviceInfo")
    if FindMemberFunction(di,"GetOSVersion")=Invalid
        rv=Val(di.GetVersion().Mid(2,4))	
    else
        aa=di.GetOSVersion()
        rv=Val(aa["major"]+"."+aa["minor"])
    endif
    return rv
EndFunction
www.InstantTvChannel.com - 717-441-4386 - Build a Roku SDK channel in 15 minutes! - Easy Direct Publisher to SDK upgrades!
tifroz
Streaming Star

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

Roku now requires channels to signal the launch complete scene.signalBeacon("AppLaunchComplete") so you have to use APIs not available with 9.0 or earlier - or your channel updates will get rejected.

Setting the minimum firmware version to 9.1 would fix this indeed, but it means that users with older devices will not be able to download our channel. The numbers are relatively small, it would not be such an issue if our distribution was primarily driven from the Roku Store but that's not the case here: our main distribution channels are mobile app stores, and our products are labelled as being compatible with Roku. We don't want people downloading our mobile app, only to find out that the small prints exclude them because they are stuck on Roku OS 8.x  

 

0 Kudos
renojim
Community Streaming Expert

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

But what devices are stuck on 8.x (or any firmware version for that matter)?  Obsolete units won't receive any updates of any kind (so it doesn't matter how you set the minimum firmware version) and devices that are still receiving updates never get stuck on one firmware version.  All supported units receive the latest firmware eventually (although the rollout can take some time).  I'm sorry, but I just fail to see the issue here.

Roku Community Streaming Expert

Help others find this answer and click "Accept as Solution."
If you appreciate my answer, maybe give me a Kudo.

I am not a Roku employee.
0 Kudos
tifroz
Streaming Star

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

Existing users won't receive the update, we understand that, and that is ok.

New users with an older version of the ROKU OS won't be able to download our channel, and that's our issue because we advertise ourselves as "compatible with Roku" (and users won't look at the small print)

(The assumption is that users with ROKU OS 8.x won't be able to download any version of our channel after we start shipping with a minimum OS Version >= 9.1 - I could not find any specific information on that topic, but that's how most platforms work)

0 Kudos
renojim
Community Streaming Expert

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution

Except I keep trying to tell you, any device that is running v8.x (and by the way, I don't believe there are any) will never get any update of any kind (channel updates or firmware updates).  If it's running a firmware version that's that old it is either an obsolete device or they are blocking firmware updates.  I still fail to see any reason for testing for firmware version.  All supported Roku devices are now on version 9.1 or higher (and more likely 9.2 or 9.3) unless they're blocking updates and the vast majority of users wouldn't have a clue how to do that.  If you're trying to cater to them, then that's another issue.

Roku Community Streaming Expert

Help others find this answer and click "Accept as Solution."
If you appreciate my answer, maybe give me a Kudo.

I am not a Roku employee.
0 Kudos
tifroz
Streaming Star

Re: Supporting / Detecting Roku OS versions from 8 to 10+

Jump to solution
  • My understanding is that some users with older Roku devices will never get the 9.x update. Happy to be proven wrong
  • The issue is not with existing users receiving or not receiving updates. The issue is with people who have an older device, and would try do download our channel for the first time (aka new users)
0 Kudos