アプリケーションパッケージ解析 [1.60.0]

DecodeIngress.jpgデコード・イングレス(DeCode Ingress)
2014/09/11 01:02:45
スキャナーバージョン 1.60.0 の解析結果を紹介します!新たに発見されたものを確認して、今後の手掛かりとしてください。ミッションやフィールドトリップ、オーナメントがあります。

1-60-0.png

アプリケーションパッケージ解析 [1.60.0]
2014年09月10日 Connor Tumbleson

私たちにとって10度目となる解析を紹介します。今回のバージョンはいま現在 Google Play Store上で1%展開の状況にあります。既に今回のバージョンへ更新された幸運な皆さんもいるでしょうが、まもなく全ての皆さんへ展開されることでしょう。公式発表では「不具合修正」とだけ記載されていますが、アプリケーションパッケージ内には更に多くのものがあることを私たちは知っています。それでは見ていきましょう。

ミッション
アプリケーションパッケージ内にはバージョン 1.55.0 から存在しています。

ミッションのレイアウトはいくつかの変更と追加が続けられています。サーバー側での変更に比べれば、クライアント側の変更は無きに等しいものです。今回の変更はどれも抽象化やレイアウト開発、フィールドトリップに関連した微調整のようです。

フィールドトリップ
ミッションの達成要件に「フィールドトリップカードの閲覧」がありますが、フィールドトリップのクラスが空白であったために判然としていませんでした。今回追記されたことで、それがどのように動作するものなのか明らかとなったのです。ポータルを訪れた際に、そのポータルに関連したフィールドトリップ・カードを閲覧する選択肢が登場します。そして内蔵ウェブブラウザを開いて、そのフィールドトリップ・カードを読み込むのです。

ご存じない皆さんへ説明すると、フィールドトリップとは基本的には歴史背景あるイングレス内のポータル群です。こちらのフィールドトリップ・カードとポータルを例にしてみましょう。

Screenshot_2014-09-10-07-16-53.pngScreenshot_2014-09-10-07-17-14.png

ミッション画面
ミッション画面に「authorNickname」や「authorTeam」といった新たなフィールドが追加されました。優れた評価を得たミッションはその地域のミッション一覧で上位となり、ミッションの大半は思慮深く作成されたものとなるようです。そのミッションを作成したエージェント名と陣営はミッション画面に表示されます。

結局のところ、ナイアンティックが 25000 に及ぶ地域すべてでミッションを用意することは期待できそうになく、エージェント制作のコンテンツを加えるのは良いことでしょう。

ミッション総括
ミッション機能が確認されて6度目の更新となりましたから、そろそろわかっていることの概要をまとめてみましょう。

ミッションは、「トレーニング」と同じように新たなタブが用意され、個々のミッションでは用意されたウェイポイントを達成します。ミッションでは次のいずれかを実行しなければいけません。

  • ポータルのハック
  • ポータルのキャプチャー
  • リンクの形成
  • フィールドの形成
  • MODのインストール
  • 写真の撮影
  • フィールドトリップ・カードの閲覧
  • パスフレーズの入力

次のような情報を確認することができます。

  • そのミッションを達成したエージェント数
  • そのミッションを気に入ったエージェントの割合
  • そのミッションを達成した平均時間

ミッションを達成することで次のようになります。

  • 達成したことを示すバッジを獲得します。
  • 気に入ったか否かを評価することができます。

次のようなミッションを用意されることでしょう。

  •  _________ 州立公園を訪れなさい。
  •  ______ のポータルをハックしなさい。
  •  __________ のポータルのフィールドトリップ・カードを閲覧しなさい。
  •  _____________ のポータルから得られる手がかりをもとにパスフレーズを入力しなさい。

オーナメント
オーナメントは、インテルマップ、応答確認、バージョン 1.59.1 のアプリケーションパッケージにおいて初めて確認されました。次の画像で特定のポータルがどのように強調されるのかの手がかりを得たのです。

ornaments1.png
当初のオーナメン画像トから名称変更されています。

上の画像に加えて、モデルファイル(.obj)にはこのオーナメントが追加されています。これによって利用端末でオーナメントを見ることができるようになります。ヘリオスアノマリーのあとのアノマリーシリーズでは、クラスターポータルと揮発性ポータルの見分け方が容易になることでしょう。

APNS(アップル・プッシュ通知サービスか?)
今回のバージョンでは新たな文字列を見つけ出しました。

<string name="APNS_ATTACK_FULL">Your portal %1$s is under attack by %2$s.</string>
<string name="APNS_ATTACK_NO_ATTACKER">Your portal %s is under attack.</string>
<string name="APNS_ATTACK_ATTACKER_ONLY">One of your portals is under attack by %s.</string>
<string name="APNS_ATTACK_GENERIC">One of your portals is under attack.</string>
<string name="APNS_NEUTRALIZED_FULL">Your portal %1$s neutralized by %2$s.</string>
<string name="APNS_NEUTRALIZED_NO_ATTACKER">Your portal %s neutralized.</string>
<string name="APNS_NEUTRALIZED_ATTACKER_ONLY">One of your portals neutralized by %s.</string>
<string name="APNS_NEUTRALIZED_GENERIC">One of your portals neutralized.</string>
<string name="APNS_MULTIPLE_ATTACK_NOTIFICATION">%1$s is attacking your portals %2$s.</string>
<string name="APNS_MULTIPLE_NEUTRALIZED_NOTIFICATION">%1$s neutralized your portals %2$s.</string>

ただ奇妙に思えるのは、これらの文字列が発見されたのが Android版の strings.xml であったということです。アプリケーションの libGDX をマルチプラットフォーム化して以後は開発に重複があることは承知していますが、文字列に関しては Android版とiOS版とで異なるものです。したがって、私たちが誤って APNS と認識したのか、この機能に何らかの誤解があるのでしょう。

いずれにせよ、複数の攻撃通知を扱う際の一般的なメッセージのようです。おそらくはアノマリー時に大量の通知が発生することを抑制するものと思われます。

その他
この応答確認は何でしょうか。

異なるバージョンのスキャナーで同一のサーバーと通信するためのものです。利用端末のバージョンに応じて機能の有効化と無効化を行うのです。既にアプリケーションパッケージには組み込まれていますから、近い将来に変更を確認できることでしょう。サーバーを更新することで、機能の無効化と有効化を制御できるのです。応答確認を削除することがイングレスからの削除を意味しません。それはもはや必要としないに過ぎず、存在はしているのです。これによって、アプリケーションパッケージは誰もが利用できるものの一部の人々にアクセスできるようになるのです。

応答確認

  • [追加] enableIOSRecruit
  • [追加] enableMissionsConnectivityRecovery
  • [追加] enableMissionsStatePolling
  • [削除] enableNewsOfTheDay
  • [追加] missionsUpdateDistanceM
  • [追加] missionsUpdateIntervalMs

構築日程

  • 構築 2014年09月02日
  • 漏洩 2014年09月09日

総括
今回のバージョンで発見した主だった機能は、ミッションとオーナメントの2つでした。開発サイクルがまだ終わってないにしても、どちらの機能も開発終了間近です。したがって、次にナイアンティックが手掛けるのは何なのかという疑問が沸きますね。私たちはバージョン 1.61.0 でもたらされるものを見つけ出そうと思います。それまではバージョン 1.60.0 をお愉しみください。

Decode Ingress
2014/09/11 01:02:45
Scanner 1.60.0 APK Teardown is here! 
Come see all the new goodies found within and hints of things to come:
Missions and Field Trip and Ornaments, OH MY!

Ingress Apk / Scanner Teardown [1.60.0]
BY CONNOR TUMBLESON ON SEPTEMBER 10, 2014 GAME, UPDATES

Welcome back to our 10th teardown. This version is currently on its 1% rollout via the Google Play Store. Some of you are lucky enough to have this version now, while others will be receiving it soon. However, the official description states "bug-fixes", while we know there is a lot more under the hood. So lets take a look.

Missions
In APK since 1.55.0
Mission layouts continue to be fleshed out / slightly changed. From a purely technical standpoint, the amount of server to client code changes are little to none. All the final tweaks seem to be related to language abstraction, layout development and Field Trip.

Field Trip
A possible mission requirement is "View Field Trip card". This has been a vague reference since the Field Trip classes were blank. Now they are fleshed out and we know exactly how they work. After visiting a portal (not sure if isolated to just missions), you will have an option to view the Field Trip card associated with that portal (assuming one exists). An internal web browser will open up and load that Field Trip card.

For those who don't know. Field Trip is basically the portals of Ingress with more history and background. Take for example this Field Trip card and respective portal.

Ingress portal view for that Field Trip card

Mission Details
A few new fields snuck into the Mission detail view called "authorNickname" and "authorTeam". It appears the majority of Missions will be agent created with the carefully thought out and interesting ones being placed on the top of your regional mission list via good ratings. The agent name / team will be visible on the list to show who created each mission.

At the end of the day, you can't expect Niantic to make missions for all ~25,000 regional zones, so its good to have agent created content to populate mission lists.

Missions - A Recap
Since it has been 6 versions since Missions were discovered. I thought I would do a quick overview of what we know now.

Missions will be a new tab much like "Training" in which you can launch and complete a set amount of way points for a specific mission. Missions may require you to do any of the following

  • Hack a Portal
  • Capture a Portal
  • Create a Link
  • Create a Field
  • Install a Mod
  • Take a Photo
  • View Field Trip card
  • Enter Passphrase (via clues)

You will be able to view

  • Number of agents who completed a mission
  • Percent who liked it
  • Average time to complete mission

After completing the mission you will be

  • granted a badge (not medal) for that mission to show completion
  • allowed to rate the mission if you liked it or not

You might have a Mission that works like this (state park based)

  • Visit this _________ State Park
  • Hack ______ Portal
  • View the Field Trip card for __________ Portal
  • Enter the Passphrase via the hints from _____________ Portal

Ornaments
First seen on the intel map, handshake and 1.59.1 apk. We were given clues that certain portals could stand out from the rest via the below images.

Renamed images via the original Ornaments

In addition to images above, model (.obj) files have been added for these ornaments. This ensures that these ornaments will be available to see via your scanner. On our next set of anomalies (after Helios), we will probably have an easier way to identify cluster and volatile portals.

APNS - Apple Push Notification Service?
We saw a group of new strings in this version.

<string name="APNS_ATTACK_FULL">Your portal %1$s is under attack by %2$s.</string>
<string name="APNS_ATTACK_NO_ATTACKER">Your portal %s is under attack.</string>
<string name="APNS_ATTACK_ATTACKER_ONLY">One of your portals is under attack by %s.</string>
<string name="APNS_ATTACK_GENERIC">One of your portals is under attack.</string>
<string name="APNS_NEUTRALIZED_FULL">Your portal %1$s neutralized by %2$s.</string>
<string name="APNS_NEUTRALIZED_NO_ATTACKER">Your portal %s neutralized.</string>
<string name="APNS_NEUTRALIZED_ATTACKER_ONLY">One of your portals neutralized by %s.</string>
<string name="APNS_NEUTRALIZED_GENERIC">One of your portals neutralized.</string>
<string name="APNS_MULTIPLE_ATTACK_NOTIFICATION">%1$s is attacking your portals %2$s.</string>
<string name="APNS_MULTIPLE_NEUTRALIZED_NOTIFICATION">%1$s neutralized your portals %2$s.</string>

The only strange part is that these strings were found in the strings.xml of the Android version of Ingress. I can understand some development overlap in the libGDX portion of the application (since libGDX is multi-platform) but string resources are different between Android and iOS. So maybe we labeled APNS incorrectly or are misunderstanding this feature.

Either way, it seems to have generic messages along with handling one attacker vs multiple. Maybe to stop the overwhelming spam of notifications when at an anomaly.

Nitty Gritty
What are these handshake things (knobs) ?

It's how different version of scanners communicate with one server. Features are enabled/disabled depending on your scanner version. This allows us to see future changes coming, since they are already packed in the APK. Features that stay in knobs can be disabled / enabled at whim with a server update. So for example, removing a knob does not mean its gone from Ingress. It just means it no longer needs a configuration boolean so it's here to stay. This is how missions are in the APK for everyone but only accessible by some.

Handshake

  • [added] enableIOSRecruit
  • [added] enableMissionsConnectivityRecovery
  • [added] enableMissionsStatePolling
  • [removed] enableNewsOfTheDay
  • [added] missionsUpdateDistanceM
  • [added] missionsUpdateIntervalMs

Build Date

  • Build September 2
  • Leaked September 9

Conclusion
The two main features we are following are currently Missions and Ornaments. Both of these features are very close, if not already finished in their development cycle. So it sparks the question what will Niantic bring next? We will see what goodies are brought in 1.61.0. Until then, enjoy 1.60.0.