1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Discovering the iPad interface

Discussion in 'TiVo Underground' started by wmcbrine, Jan 18, 2011.

  1. arantius

    arantius New Member

    60
    0
    Jul 25, 2009
  2. tomhorsley

    tomhorsley Active Member

    1,172
    4
    Jul 22, 2010
    Hey! Can this get to the cable card ID numbers? It would be nice if you could cut & paste them somehow into a web interface the cable companies may have someday to avoid typos in number entry.
     
  3. Sep 5, 2011 #163 of 366
    arantius

    arantius New Member

    60
    0
    Jul 25, 2009
    I'm probably wrapping up the last work I will/will need to do on the MindRPC format. The document I wrote on it is probably not 100% up to date, but generally accurate when data is there: https://docs.google.com/document/pub?id=1e4ymm7ROwmW6co2pKENjANGT5xM00VzmzybZ4u8yDE8

    Also, I've got a final set of captured data, hosted in many places to hopefully keep it available until (if?) anybody ever wants it:
    This time, about 4800 requests & responses (including the 900 from my earlier archive). And I think something covering every feature of the (version 1.2) iPad app in there somewhere.

    The last thing I plan on doing is playing with the newest version of the iPad app (1.5) and seeing if there are new features to be found.
     
  4. moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    I just noticed when trying to load a Season Pass I had previously saved to disk that the TiVo won't actually accept it unless the "collectionId" string that is part of "idSetSource" JSON is currently part of guide listings in the destination TiVo. Trying to schedule it yields:
    RPC error response: Unknown collection.

    So what I thought was true Season Pass backups is not really the case since you can only load Season Passes for shows currently in guide listings. If someone can figure out how to schedule a Season Pass for a show not currently in guide listings I'd love to hear about it. One such show is USA channel "Covert Affairs". I verified doing a search it's not currently in guide listings which is why it's failing.

    P.S. I did try scheduling with "collectionId" field removed from "idSetSource" but that failed.
     
  5. morac

    morac Cat God

    8,962
    23
    Mar 14, 2003
    NJ
    The TiVo iPad app itself will only allow scheduling Season Passes (SP) for shows airing in the next 2 weeks (i.e. guide data). That's also true for the Season Pass Manager (SPM) web site. The only method that allows scheduling SPs without the show being in guide data is copying via the SPM and only when both TiVos have the same channel lineup.
     
  6. moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    Thanks for the info. Since the web site can do it then it means it should be possible, but perhaps not via RPC protocol. Currently the "copy" is really scheduling a new Season Pass which is why collectionId is needed. Ideally there would be a true "copy" operation that does not check against guide data.
     
  7. arantius

    arantius New Member

    60
    0
    Jul 25, 2009
    Something about its (iPad app version 1.5) discovery mechanism is different. I used to forge an appropriate mDNS response to get the app to consider my proxy a real TiVo, but that doesn't work anymore. Couldn't notice any new features in the app though, so I'm not super worried.
     
  8. jautor

    jautor Also wants a pony

    599
    2
    Jul 1, 2001
    Houston, TX
    Sorry to revive the old thread, hopefully some of the folks that dove deep into the data are still listening and can answer easily...

    I'd like to use this interface to retrieve simple info about what is currently showing (channel, program title, duration, etc.) for use in a 2-way remote control layout. I looked though the first batch of request/responses, but didn't see it. Any pointers?

    Thanks,

    Jeff
     
  9. arantius

    arantius New Member

    60
    0
    Jul 25, 2009
    Everything I know is written in the doc linked earlier. Sounds like you're interested in tunerStateEventRegister and/or videoPlaybackInfoEventRegister. Might need to dig into the traced requests/responses to find what happens after you call those.
     
  10. moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    For those that want to investigate this some more with the Spring software update the remote2.py python script needs to be updated to use the new client side PKCS12 certificate & password in order for authentication to work. Example java code for doing it can be found here (createSocketFactory method):
    http://code.google.com/p/kmttg/source/browse/trunk/src/com/tivo/kmttg/rpc/Remote.java

    If you unzip the official TiVo Android apk file there are some interesting files under there such as a whole description of the MindRPC schema:
    com\tivo\trio\schema\schema.conf

    All the functions reverse engineered here so far are in there plus many, many more. Looks like many of the those don't actually work through this interface though but there's likely some hidden gems in there that do work.
     
  11. Jun 7, 2012 #171 of 366
    swythan

    swythan New Member

    21
    0
    Apr 4, 2011
    High...
    Thanks so much for that moyekj. I was most of the way through writing a Windows Phone app in January when Virgin Media (in the UK) updated their TiVos and blocked the connection.

    Your latest version of kmttg works great, and I just got my WP7 app working again, too.
     
  12. Sep 6, 2012 #172 of 366
    innocentfreak

    innocentfreak Active Member

    8,950
    3
    Aug 25, 2001
    Florida
    So what are the chances someone might be successful with discovering the updated functionality via the Stream?
     
  13. Sep 7, 2012 #173 of 366
    moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    Once the Android software is updated to support the Stream that may reveal something as it's much easier to reverse engineer Android java based software (which is how I cracked the PKCS12 certificate & password issue).
     
  14. Sep 7, 2012 #174 of 366
    swythan

    swythan New Member

    21
    0
    Apr 4, 2011
    High...
    Incidentally: Virgin Media in the UK updated their TiVo firmware a couple of weeks ago and I can't connect anymore. Given what happened last time (when the need for the client cert was added) I'd expect a similar update to be headed your way (i.e. to the US) in the next few months.

    Basically, I can still make the TCP connection and get through the TLS auth phase (which is good!), but get a "not authorised" / "routing error" response to the bodyAuthenticate message (with the correct MAK, of course).

    From memory, I think the response was this one:
    Code:
    {
        "code": "routingError", 
        "text": "The active partner ID does not have access to the operation.",
        "type": "error"
    }
    I don't expect anyone to be able to work out what needs changing until an updated iOS/Android app comes out. Once that's available I might be on here looking for some guidance! ;)
     
  15. Dan203

    Dan203 Super Moderator Staff Member TCF Club

    37,529
    184
    Apr 17, 2000
    Nevada
    I was playing with the Stream's system info page yesterday and according to it the video uses encrypted HLS. Not sure if that piece of info is useful to anyone, but someone suggested I post it here for you guys just in case.

    Also if you go to the page...

    http://<stream ip>:49152/sysinfo

    it has some javascript code that calls commands on the stream. Maybe that would help decipher how to communicate with it.

    Dan
     
  16. bradleys

    bradleys It'll be fine....

    3,687
    4
    Oct 31, 2007
  17. moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    There are many commands that return "The active partner ID does not have access to the operation." messages due to apparently insufficient authorization.

    Download the android apk file and unzip it.
    Then take a look at:
    com/tivo/trio/schema/security.schema

    Note that up to this point we've always called "bodyAuthenticate" using type=makCredential, but as you can see in security.schema there are several other credentials that can be used besides "makCredential". For example "temporaryKeyCredential" looks to be interesting. Looks like you can generate a credential using "temporaryKeyCredentialGenerate" and then call "bodyAuthenticate" using that credential. Obviously you would then change type=makCredential to type=temporaryKeyCredential in the bodyAuthenticate json.

    I would guess that makCredential is giving us a limited set of operations with which to work and perhaps signing in with different credentials will give us access to a lot more of the operations found in schema.conf. For your situation it may provide an alternate way of getting bodyAuthenticate to work again.

    I haven't tried the above yet and too busy with my real job lately to try digging in more, but seems like it's something worth exploring if you have some time.
     
  18. swythan

    swythan New Member

    21
    0
    Apr 4, 2011
    High...
    Interesting. I'll definitely take a look at that when I get some time.

    Virgin seem to be about to (finally) launch their own iPad app, so I'm guessing that some changes were made to support that (apparently it won't need a direct network connection). I do know the US iPad app currently won't connect to the UK TiVo, so I was expecting to have to wait for new apps to come from TiVo before finding out what had changed.
     
  19. moyekj

    moyekj Well-Known Member

    11,151
    34
    Jan 23, 2006
    Mission...
    I played with it a little this morning but didn't really get anywhere:
    temporaryKeyCredentialGenerate returns the frustrating "The active partner ID does not have access to the operation." message.
    Tried bodyAuthenticate using mmaCredential (with my tivo.com username & password) but TiVo did not like that json and only seems to accept type=makCredential.

    It could well that this interface to the "mind" is intentionally limited such that you can't do anything beyond what the current official applications can do.
    You'll probably have to wait for the Virgin apps as you mentioned to try reverse engineering what is being done. To me the iOS app is useless as I don't know how to reverse engineer anything there. The Android one to me is a lot easier to reverse engineer.
     
  20. Sam Ray

    Sam Ray New Member

    26
    0
    Jul 29, 2012
    Los Angeles, CA
    I think that is definitely something that Tivo could and should do but if not then someone should. That is, the ability to filter out the lines that are abundant but seldom of interest to see just the exceptions.
     

Share This Page