Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
daria
Level 7

Required: Removing the channel doesn't remove linking information

Hi!

In our channel we have authorisation and in-channel purchases. Last time we were rejected with following message:

Required: Removing the channel doesn't remove linking information – NOT FIXED

We use device id for linking a device to account in our service. They say that this requirement prevents situation when any user after one that was linked manually, will be logged in via device id. That makes sense.

So, I should catch uninstallation and send some logout request to our backend, but I'm not sure it is possible. Channel can be removed from the web, so that's no way to catch it.

Other way is to use some identifier which is unique for user for linking. I tried GetClientTrackingId() instead of GetDeviceUniqueId(), but that is not helpful: generated value is the same even I reset to factory settings and link my device to another user.

I can try getting user's email, but that will cause confirmation form, I wouldn't like to do this.

What do you guys do with that?
0 Kudos
4 Replies
joetesta
Level 10

Re: Required: Removing the channel doesn't remove linking information

create a unique id on the server side (or just use your existing user account id) and pass it back to the device upon registration. Device stores in persistent storage and on channel launch retrieves stored unique id for validation.  If the device is factory reset, persistent storage is wiped out and you passed the test Smiley Very Happy 
aspiring
0 Kudos
Roku Employee
Roku Employee

Re: Required: Removing the channel doesn't remove linking information

"joetesta" wrote:
create a unique id on the server side (or just use your existing user account id) and pass it back to the device upon registration. Device stores in persistent storage and on channel launch retrieves stored unique id for validation.  If the device is factory reset, persistent storage is wiped out and you passed the test Smiley Very Happy 

Specifically, store the magic cookie in the registry (roRegistrySection). If channel is deleted, so will be the registry (w/o factory reset) and on re-install would have to be re-linked. Which is a sound troubleshooting process, being able to start with a clean slate
0 Kudos
user76
Level 7

Re: Required: Removing the channel doesn't remove linking information

Hi RokuNB,

Both the docs ("Registry data is removed only when the application explicitly removes it, the user uninstalls the application, which remove the registry for the application, or the user performs a factory reset, which removes the registry for all applications.") and your previous quote ("If channel is deleted, so will be the registry") say that the registry data for the channel should be deleted when channel is removed. However, when I remove the channel, registry data is still there. I am testing this with both sideloaded and regular apps, and both are still able to read the registry section and get the registry information after deletion. How can I properly remove the registry information when a channel is removed? 

Thanks!
0 Kudos
Roku Employee
Roku Employee

Re: Required: Removing the channel doesn't remove linking information

"user76" wrote:
[...] the registry data for the channel should be deleted when channel is removed. However, when I remove the channel, registry data is still there. I am testing this with both sideloaded and regular apps, and both are still able to read the registry section and get the registry information after deletion. How can I properly remove the registry information when a channel is removed?

It's slightly more complicated, since the same registry is shared between all channels signed with the same developer key (read somewhere between the lines here https://sdkdocs.roku.com/display/sdkdoc/roRegistry - or search for "rekey") and therefore is deleted only when the last installed app referring to it is deleted. That i think includes the side-loaded (dev) app, as long as the same developer key is on the player. You have to delete all apps signed with the same key and then the registry shared between them would be gone.
0 Kudos