Awesome! Anything loaded from the app store seems to be fine. The stupid one it never sends is the default launcher. I’m semi curious about side loaded apps (I don’t have one) as they may not be tracked on the backend properly. Also it will only throw the error when the app starts. Basically the exception throws when get fails on the hashmap.
Nice! Well that is very promising. I’ll probably work on the dynamic channel tomorrow and drop a good clean beta for everyone.
@mhilbush just out of curiosity, did any of the entries look out of alignment? I think I nabbed all the issues I was getting (some were randomly a byte off in either direction for no reason).
Dang, I was hoping you were just getting two lists. I think we’re still ok. The map should deduplicate it right? When youre looking at trace it should be dumping the hashmap still. Are they duplicated there?
Looked at the log. Looks perfect! Not a single thing looks out of whack. The HashMap deduplicated the entire thing as well from what I can tell. Thanks!
For those watching on the sidelines, assuming the dynamic channel bits don’t confuse me too much, and assuming I have the time, ill probably drop a new beta tomorrow for both 4.0.0 and 3.4.0 with all the app additions.
Point of amusement for the day. After absolutely crashing my shield about 40 times, I found the power on button! I’ll be adding it to the next beta drop. No, I have not found any of the power off/sleep buttons yet. But, this definitively works to power the shield on from an off state. I also randomly stumbled onto the google assistant activator (I’m assuming a bluetooth mic may be needed for this). Unfortunately I haven’t stumbled on what I was looking for (basically a null button push) which would force the app name to be sent back. As long as you are using OH as your remote, this isn’t really an issue as it sends on almost every button press. However, if OH is just more in monitoring mode, this could be an issue so I am working on trying to find a patch to it.
I’m giving up on bug fixing for now and moving to the dynamic channel so I can try to get this out soon.
This adds the reported Device ID (which I can’t find in the shield on screen GUI but seems to be some sort of unique ID of the server that the binding talks to) as well as the supported system architectures as reported. This also fixes some bits on the certificate parsing/storage process after successful PIN authentication.
I’d appreciate knowing if the PIN process is working or failing for anyone who uses this. The calculation of the length of the keys has been completely reworked and seems to be OK on the dozen or so attempts I’ve made, but it’s a little weird so I’d appreciate knowing it works for others too.
There was no problem with the pin process after I installed the binding.
When I switched to your 0.6 version I even hadn’t to repeat the Pin-Game
with my shield.
But still I or openhab are not able to see wether the shield is running or
not (the “power on problem”). If it’s solved I could get rid of my android debug binding that still causes these messages of not being able to read media and refresh play status… Or would it be possible with your new versions to solve my problem?
Im glad to hear it’s working. The issue of not having awareness of power state still exists. Simply put, I havent found any specific flag on any message that comes from the shield to indicate power state. It’s definitely something on the todo list. I have one other option I’m going to investigate, but it will require several hours worth of work to identify and then potentially several more hours to code if it does work. If that fails, plan B is to actually integrate the ADB connection into the binding to have it pull that data directly so that happens behind the scenes for the user. I’ll get there eventually, just going to take some time.
Good news, I was able to successfully do a MITM on the new Google TV app and I was able to capture some of the parts of the pin process. Getting that going has been a pain but I had a breakthrough today that gives me some hope that this is possible. My plan here is to integrate both protocol stacks and basically hope that one is going to get the data we need. The protocol seems similar to the shield stack so I’m hoping that some of it seems familiar as I go.
Bad news, there are some added complexities I have to figure out with the PKI process. The googletv (version 2) protocol uses mutual TLS certificate authentication which I haven’t had to do yet so I need to figure out how to adapt the binding to do this as the shield protocol doesn’t do it. Why they did this level of complexity is beyond me, it’s a bit overkill. Once I get the authentication parts done then I’m going to have to try to decode the parts of the protocol that I haven’t been exposed to yet. So, this is going to take some time.
To note, for this to work you will have to make sure your apps are updated on your shield. They discontinued support for the version 1 of the protocol in the last few months.
So stay tuned, I’ll try to post some more updates as I hit some milestones.
I’ve started a thread (link below) about converting this binding to be a googletv binding with an option to add the shieldtv protocol as opposed to just being a shieldtv binding. The googletv protocol is available to any androidtv system so it would have a broader reach than just the shield. If anyone would like to comment please feel free: