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)

    25 komentárov:

    1. Tento komentár bol odstránený autorom.

      OdpovedaťOdstrániť
    2. "2013-09-10T22:08:32Z 904499d6f84a opt"

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

      OdpovedaťOdstrániť
    3. 2013-09-19T02:22:36Z d1073636dce6 opt

      for 1.36.0

      OdpovedaťOdstrániť
    4. 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...

      OdpovedaťOdstrániť
    5. Will this work with the new update of IITC?

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

      OdpovedaťOdstrániť
    7. 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" :)

      OdpovedaťOdstrániť
    8. 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.

      OdpovedaťOdstrániť
    9. "2013-11-27T00:17:25Z 2b5ffb29b701 opt" for 1.41.0

      OdpovedaťOdstrániť
    10. Tento komentár bol odstránený autorom.

      OdpovedaťOdstrániť
    11. "2013-12-19T17:33:48Z ce19fef1117a opt" for 1.42.2
      consider the first question answered as "yes" :)

      OdpovedaťOdstrániť
    12. My impression is that Niantic recently "shut the door" formerly used by this plugin... am I right?

      OdpovedaťOdstrániť
    13. 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

      OdpovedaťOdstrániť
    14. "2014-02-13T21:15:30Z e02c150a2a72 opt" for 1.45.2

      OdpovedaťOdstrániť
    15. The string you are all looking for: "2014-02-24T19:17:49Z 31337a6a12db opt"

      OdpovedaťOdstrániť
    16. 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?

      OdpovedaťOdstrániť
    17. '2014-03-18T23:38:38Z 5df0a209e387 opt', 'deviceSoftwareVersion': '4.48.0'

      OdpovedaťOdstrániť
    18. For 4.49.0
      2014-04-02T20:13:28Z 54aa6009cb17 opt

      OdpovedaťOdstrániť
    19. I packaged this all into a CRX file. Give it a try: https://www.dropbox.com/s/yo3j84anp7kjhi0/iitc_key_import.crx

      OdpovedaťOdstrániť
    20. still working, current is: 2014-08-26T14:12:22Z 0b8777852486 opt

      OdpovedaťOdstrániť
    21. Jaro, great to hear that! Cool, thanks :)

      OdpovedaťOdstrániť
    22. current is: 2014-09-30T18:10:49Z 8c0548b9de8d opt

      OdpovedaťOdstrániť