streda 11. septembra 2013

Ingress keys on intel map (iitc importkeys plugin) tutorial

To have successfully running import keys plugin in IITC you need to make some small steps. It is not working immediately out of the box. The reason is that the pull request to IITC was not merged as it (really softly) breaks the rules of Ingress by getting the agent inventory via a request that's dedicated to the application.

What you need to do:
  1. Have IITC installed
    read more and download at http://iitc.jonatkins.com/
  2. Download and install IITC plugins: Keys, Keys on map
    download current version at http://iitc.jonatkins.com/?page=desktop
  3. Download Keys import plugin files from divergentdave's github repository
    keys-import.jshttps://raw.github.com/divergentdave/ingress-intel-total-conversion/master/plugins/keys-import-inject.js
    keys-import.user.jshttps://raw.github.com/divergentdave/ingress-intel-total-conversion/master/plugins/keys-import.user.js
    head to github if you have problems with direct downloading https://github.com/divergentdave/ingress-intel-total-conversion/tree/master/plugins
  4. Turn off the IITC plugins (turn off the layer or the extension in browser) that are showing information on map, such as Portal level number. It would collide.
  5. Find the Ingress app version in keys-import.user.js file

    encodeURIComponent(window.JSON.stringify({'nemesisSoftwareVersion': '2013-08-07T00:06:39Z a52083df5202 opt', 'deviceSoftwareVersion': '4.1.1'}));
    Replace the version by current one '2013-10-15T22:32:58Z 438a6fac0786 opt' for 1.38.0 (or search the web for actual version just simply by putting nemesisSoftwareVersion keyword in github code as lot of ingress hobby projects are hosted there https://github.com/search?&q=nemesissoftwareversion&type=Code)
    UPDATE: No luck on github today. Another and the 100% working method is to decompile the com.nianticproject.ingress.apk with apktool and search for the string in .smali files. I found it in three different files, the code looks like this:
    const-string/jumbo v1, " 2013-09-19T02:22:36Z d1073636dce6 opt"
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    Any search for "2013-09-" or current month should do it.

    So now it should look like this:
    encodeURIComponent(window.JSON.stringify({'nemesisSoftwareVersion': '2013-11-05T00:10:10Z c0bfd67a2024 opt', 'deviceSoftwareVersion': '4.1.1'}));
    (Updated 2013-09-26 with new version and a more effective search method for version string)

    UPDATE 2013-10-09: v1.37.2 string is "
    2013-10-07T21:02:13Z a7cb9f5402e7 opt"
    UPDATE 2013-10-23: v1.38.0 string is "2013-10-15T22:32:58Z 438a6fac0786 opt"
    UPDATE 2013-11-07: v1.39.2 string is "2013-11-05T00:10:10Z c0bfd67a2024 opt"
    UPDATE 2013-12-09: v1.40.0 string is "2013-11-27T00:17:25Z 2b5ffb29b701 opt"
  6. Find the last line in keys-import.user.js

    @@INCLUDERAW:plugins/keys-import-inject.js@@

    and replace it by the content of the keys-import-inject.js file. That's done automatically if you build it, but that's the easy way to get it done manually.
  7. Install the keys-import.user.js as a browser extension. In chrome it's done by dragging the file into the extensions list (Menu / Tools / Extensions).
    Chrome asks persmissions for the extension to access data on www.ingress.com and m-dot-betaspike.appspot.com. That's OK, allow it.

    The m-dot site is actually the communication endpoint of Ingress app. (Thank for your comments).
  8. Now you see an "Import keys" menu item in IITC.

    Yes, go on and click on it!
  9. A dialog windows shows up.

    For the first time, you must authorize the m-dot site for your Ingress account. I had it done always in new windows (as suggested).
  10. Choose the account which you use for Ingress. Close the new windows, the access is granted if you see a lot of json output (a lot of text).
  11. Click OK to close the Import keys dialog.
  12. And now, click on Import keys menu item again and be patient. Might take a while, you can watch the progress in your browsers debugger. Or just wait :)
    Et voila:

  13. TROUBLESHOOTING: If you don't see the numbers at portals
    You can check the status of imported key amounts at the portal detail pane to make sure if it's a data problem or just about displaying it (e.g. colliding iitc plugin)

    Another possible issue is hidden keys layers. You can correct it in layers selector (top right)

    24 komentárov:

    Michael Klesing povedal(a)...
    Tento komentár bol odstránený autorom.
    Sorgo povedal(a)...

    "2013-09-10T22:08:32Z 904499d6f84a opt"

    here you are, that's from 1.35.1, hope it will last for few weeks.

    Sorgo povedal(a)...

    2013-09-19T02:22:36Z d1073636dce6 opt

    for 1.36.0

    F.Schorer povedal(a)...

    Sorry to say, but I don't feel like giving some external site access to (parts of?) my google account, because I can't know how much information may be accessible.

    Is there no way to do that from the script?

    Oh, and I'd really appreciate if there was an english version of this site, beacuse I can't even tell what language all these buttons are in...

    Chase Bunton povedal(a)...

    Will this work with the new update of IITC?

    Sorgo povedal(a)...

    "2013-10-07T21:02:13Z a7cb9f5402e7 opt"
    the 1.37.2 version string. You will be searching for it soon :)

    Sorgo povedal(a)...

    F.Schorer:

    You can find this code in the Ingress app:

    const-string/jumbo v1, "PROD_URL"
    const-string/jumbo v2, "debug.nemesis.url"
    const-string/jumbo v3, "https://m-dot-betaspike.appspot.com"

    So the m-dot-betaspike site IS INGRESS indeed.

    Sorry for not translating the screenshot, I hope it's clear to everyone (the buttons say "add" / "cancel" :)

    Chase Bunton povedal(a)...

    V 1.39.2 string?

    Sorgo povedal(a)...

    Here you go:
    "2013-11-05T00:10:10Z c0bfd67a2024 opt" v 1.39.2

    I found a totally easy way of getting this string: just go to device menu and look at build number. The only problem is that the string gets trimmed at low resolution devices.

    Sorgo povedal(a)...

    "2013-11-27T00:17:25Z 2b5ffb29b701 opt" for 1.41.0

    Sean Anderson povedal(a)...
    Tento komentár bol odstránený autorom.
    Sorgo povedal(a)...

    "2013-12-19T17:33:48Z ce19fef1117a opt" for 1.42.2
    consider the first question answered as "yes" :)

    RobMariani povedal(a)...

    My impression is that Niantic recently "shut the door" formerly used by this plugin... am I right?

    Sorgo povedal(a)...

    Rob, no. You're wrong.
    The only thing that happens is that Niantic releases new version and in few days it shuts down the previous version of app forcing players to upgrade. It's a CLIENT_MUST_UPGRADE response from server, when the app shows you a notice, that to continue playing you must install the upgrade . In this extension it is only about replacing the nemesisSoftwareVersion string, which is actualy "2014-01-22T06:39:00Z 3ab079ce2158 opt" for the latest 1.44.0

    Sorgo povedal(a)...

    "2014-02-13T21:15:30Z e02c150a2a72 opt" for 1.45.2

    Sorgo povedal(a)...

    The string you are all looking for: "2014-02-24T19:17:49Z 31337a6a12db opt"

    Dracul Albastru povedal(a)...

    Hi,

    First of all, thank you for this great tutorial!
    Now that I am trying to use, I must ask.. do you by any chance have the string for the latest version?

    Jordan povedal(a)...

    '2014-03-18T23:38:38Z 5df0a209e387 opt', 'deviceSoftwareVersion': '4.48.0'

    Jordan povedal(a)...

    For 4.49.0
    2014-04-02T20:13:28Z 54aa6009cb17 opt

    Redleader36 povedal(a)...

    I packaged this all into a CRX file. Give it a try: https://www.dropbox.com/s/yo3j84anp7kjhi0/iitc_key_import.crx

    Jaroslav Staníček povedal(a)...

    still working, current is: 2014-08-26T14:12:22Z 0b8777852486 opt

    Sorgo povedal(a)...

    Jaro, great to hear that! Cool, thanks :)

    Jaroslav Staníček povedal(a)...

    current is: 2014-09-30T18:10:49Z 8c0548b9de8d opt

    Rafał Sabat povedal(a)...

    Anyone has actual version?