さまざまな物や事に関する、役に立ったり立たなかったりするテキストが綴られるブログ。

2016/09/28

Pokémon GO Plusをデコってみる

カーボンチックなダイノックフィルム
機能的には申し分のない"Pokémon GO Plus"ですが、あの派手な赤白カラーは少々困りモノ。デザインのコンセプトは充分に理解できるのですが、いい大人が身に着けるには厳しい感があります。

ということで、なんとかしてみることに。最初に思いついたのは塗装ですが、ずいぶんとご無沙汰しており、やるなら道具からそろえなければなりません。

「となると貼る系でカッティングシートかなぁ」などと考えたのですが、ふと思い出して3Mのダイノックフィルムを手配してみました。加工は未経験ながら、既製品は何度か使用しており、特性や貼り方がわかっているのもポイントです。

カラー(柄)に関してですが、個人的に好きというのもあるのですが、小さいサイズで入手しやすかったカーボン調の"CA-421"をチョイスしてみました。このフィルムは自動車のドレスアップで使われることも多く、強度や耐候性に不安はありません。

加工方法としては、全体に貼り付けてから不要な部分をカットする、というのが定番なのですが、全体に貼ってしまうとのっぺりとした仕上がりになってしまいます。そこで、今回はボタン部分で分割した2パーツ構成とし、オリジナルのライン(黒線)を活かす形で貼り付けることにします。

この時に問題となるのが、ボタン部分のカット方法。貼付け後にフィルムをカットする場合、高い確率で本体にキズを付けることになります。このため、上下の分割ラインとボタン部分だけはあらかじめカットされているのが理想的。ではあるのですが、図面的なモノが必要となります。

幸いにしてプリンタでシールを出力するための型紙を公開してくれている方がおりましたので、ありがたく利用させていただきました。

型紙を台紙に貼り付け
ダウンロードした型紙はグラフィックソフトで読み込んでからコピー&ペーストで増産。1回のプリントでたくさんの型紙が取れるようにします。

あとは解像度を600dpiにして保存→PDF化してコンビニのマルチコピー機にて紙に出力しました。なお、解像度はプリンタにより異なりますのでご注意を。

さらに、出力した型紙をテキトーに切り抜き、フィルムの裏(台紙)に糊付けして乾燥後にデザインナイフでカット。予定どおり型紙に沿ってカットするのはボタン周りと上下の分割ラインのみで、他の部分は大きめに残します。

フィルムの準備はここまで。次に"Pokémon GO Plus"を分解します。貼り付け加工時にフィルムの端を裏側に回り込ませる勢いで伸ばす必要があり、分解は不可避です。少なくとも、当方のスキルでは分解せずに貼り付けるのは無理というもの。

分解には通常のプラスドライバーに加え、特殊なY字型のドライバーが必要となります。例えばこんなの。電池カバーを外すと見える3本のY字型ビスを外せば、あとは手でバラせます。

具体的な貼り付け方法ですが、まずボタンをぐるりと囲む黒丸と左右に伸びる黒線に位置を合わせてフィルムを乗せてから軽く圧着。ドライヤー(またはヒートガン)でフィルムのエッジ周辺を温め、フニャフニャな感じになったら端をつかんでギューと伸ばし、曲面部分にフィットさせます。

特に下端部は角度もキツく曲面も複雑であるため、念入りに作業する必要があります。感触的には今回の作業における一番の山場。ここを超えれば終ったも同然です。貼り終えたら余分なフィルムをカットして仕上げます。

ひとつ気がかりなのは、フィルムの厚みにより僅かながら外周が大きくなってしまった点。"Pokémon GO Plus"の外装の一部である枠パーツに収まるか、一抹の不安があります。

ハメてみると若干キツくなったような気はしますが、何とか枠パーツに収まりました。フィルムの端が浮くなどの問題もナシ。あとは分解と逆の手順で組み立てれば完成です。

シックに仕上がりました
で、こちらが成果物。探せばアラは見つかりますが、全体としてはうまく行った感じです。赤白の部分は完全に覆われており、どこから見られても大丈夫。

上下の分割ラインおよびボタン周りは下地の黒線が見えるようにしましたが、このデザインは正解だった模様。ダイノックフィルムとは異なる質感がワンポイントとなり、全体を引き締めてくれます。

さらに、ひとめで"Pokémon GO Plus"とわかるアイデンティティを残しつつ、シックな仕上がりとなった点には大満足。予想以上ににカーボン柄がフィットした感じです。

先日まではパラコードで編んだベルトを装着していたのですが、腕に装着するよりも手のひらで包むように持った方が、片手でラクにボタン操作が行えることに気付きました。

このため、指を通してハンドストラップとして使っておったのですが「これなら、大げさなベルトは不要なんじゃね?」と思い、シンプルなストラップへと変更した次第。ヒモには今回もパラコードを使用しています。

ちなみに、ダイノックフィルムは楽天市場の"かべがみ道場"というショップにて調達しました。20cm×25cmと小ぶりですが、"Pokémon GO Plus"なら10台分以上の切り出しが可能。これだけあれば安心して失敗できます。

作業にはそこそこの手間と、少々のコストを要しますが、かなりの満足感を得ることができました。何より"Pokémon GO Plus"を持ち歩く恥ずかしさが激減したのは大きな収穫。

ということで、腕に覚えのあるポケモントレーナー様にお勧めなダイノックフィルム加工のご紹介でした。



…続きを読む»

2016/09/24

[Android] Magiskをちょっと便利に

こちらは標準のMagisk Manager
ポケモンGoがSafetyNet APIを利用するようになって以降、root状態を隠匿するツールである"Magisk"および"suhide"の動きが活発化しました。

特に"Magisk"では、腕に覚えのあるユーザによる支援ツールが公開されるなど、周辺環境が激的に変化しております。

ということで、今回はその辺を簡単にご紹介しようかと。

まずは、クイック設定パネルから"Magisk"のroot/unroot動作を制御できる"Magisk Quick Toggle"というアプリ。クイック設定パネルというのは、ステータスバーからペロンと引き下ろすことで、Wi-FiやBluetoothのON/OFFをワンタップで制御できたりするアレです。

この"Magisk Quick Toggle"はNougat(Android7.0)専用となっており、他の環境ではインストールすらできません。が、xdaの有志がMarshmallow(Android6.x)でも動くアプリ"Magisk MM Tile"を公開してくれました。未検証ながらLollipop(Android5.x)でも動く可能性があるのだとか。

ウチではまだNougatを使用していないので、"Magisk MM Tile"の方を試させていただきました。なお、こちらはいわゆる野良アプリとなりますので、ご利用に際しては自己責任でひとつよろしくお願いしたく。

Magisk制御タイルを追加
このアプリは、クイック設定パネルに"Magisk"制御タイルを追加するモノであり、インストールしただけでは何も起こりません。

アプリを起動して"INSTALL TILE"ボタンを押すことによって"Magisk"制御タイルを追加することができます。そのボタンの上にある"Insert After"のリストではタイルの挿入場所を指定できますが、必須項目ではありません。

システム標準機能である"タイルを編集"の方が直感的に並べ替えられるので、ここはスルーでOKかと。

で、設置後のクイック設定パネルに現れる"root"と表記されたタイルが"Magisk"の制御用タイル。アイコンの"#"はroot状態を、"#"に斜線が引かれた状態はunroot状態を示します。で、タップするごとにこれらが切り替わるという次第。

これにより、いつでも必要な時にクイック設定パネルからroot/unnrootの切り替えが可能となります。ドロワーを開いて"Magisk Manager"アプリを起動するという手順が不要となり、流れるようなスムーズさで切り替えられるのがポイント。

なお、設置したタイルを除去する場合、アプリ内の"UNINSTALL TILE"ボタンを使用します。アプリをアンイストールする際にはご注意を。

続いては、もっとラクをしたいユーザにお勧めな"AutoMagisk"(xda)。指定したアプリの実行時に自動でunrootな状態にしてくれるというオートマチックなアプリです。

GUIで簡単設定
しかも、指定したアプリがフォアグラウンドで動作している時だけunroot状態となり、バックグラウンドに回るとシステムはroot状態になるというスグレモノ。

このため、unrootなアプリが動作している場合でも、ホームに戻ると自動でroot状態となり、そのままroot権限必須なアプリを起動して使うことができます。

もちろん、履歴ボタンからの切り替えにも対応しており、何も考えずにアプリを切り替えるだけで、root/unrootを制御してくれます。

さらに画期的なのが、unroot状態で実行したいアプリの指定方法。上記スクリーンショットのように、アイコン付きのリストから選ぶだけでOK。ターミナルエミュレータを操作したり、面倒なコマンドを入力する必要もなく、直感的かつ簡単に設定することができます。

そんな感じで"Magisk"で若干使いづらかった部分が改善され、機能的には個別unrootの指定が可能な"suhide"とほぼ同等に。GUIが使えるため、使い勝手としてはさらに上を行っている感じとなります。

忘れておりましたが、こちらの"AutoMagisk"もいわゆる野良アプリとなっておりますので...(以下省略)。

標準のインターフェースである"Magisk Manager"でも、問題なくroot/unrootの切り替えは行えるので、必要にして充分である。と、いえなくもありませんが、今回紹介したツールを使用すると、さらに快適になることは間違いナシ。"Magisk"ユーザには一度試してみるのもよろしいかと思われます。



…続きを読む»

2016/09/20

Pokémon GO Plusで遊んでみる

付属のベルトを装着
位置情報系スマホゲームであるポケモンGoをサポートするウェアラブルデバイス"Pokémon GO Plus"。運良く購入できたのでちょっと試してみることに。

Bluetoothによりスマホと接続することで、ポケストップのアイテムを入手したりポケモンの発見および捕獲を試みたりすることができる便利アイテムです。

さらに、歩いた距離も計測されるため、タマゴを孵化させたりお供ポケモンのアメがもらえたりといった機能にも対応。ただし、ペアリングしたスマホにてポケモンGoを実行していることが大前提となります。

が、起動さえしていれば良く、バックグラウンドで動いていたり、端末がスリープしたりしていても"Pokémon GO Plus"は問題なく使用可能。

そんな雰囲気のデバイスですが、本体にはマルチカラーLED内蔵のボタンが1個あるだけで、電源スイッチすら存在しないという究極なまでにシンプルなインターフェースが採用されております。

背面にはストラップホール付きのクリップカバーが装備されておりますが、パッケージに同梱されたベルト付きカバーと交換することで、腕時計的な装着にも対応。上記の写真がベルトを装着した状態となっております。

内部にはバイブレーターを備えており、振動と発光のパターンで状況をフィードバックするという仕組み。結構いろいろなパターンがあるので、以下に基本的なモノをまとめてみました。

アイコンで光り方まで表現しようとしたのですが、さすがにファビコンサイズでは厳しかった模様。ただ、アイコンが付いた5項目は"Pokémon GO Plus"でゲームを楽しむために不可欠であるため、目立つようにアイコンはそのままにしておきます。

ポケモン発見(振動+緑点滅)
未知のポケモン発見(振動+黄色点滅)
ポケストップのアイテム入手/ポケモン捕獲成功(振動+レインボー)
捕獲時にポケモンが逃走した(振動+赤点滅)
ポケストップ発見(振動+青点滅)

上記の基本操作に加え、状況を補足的に説明するフィードバックも用意されております。

■ポケストップからのアイテム入手時
赤点灯→ポケストップから離れてしまった
白点灯→バッグの空き容量不足でアイテムがゲットできない

■ポケモン捕獲時
単振動×3+赤点灯→モンスターボールがないので投げられない
長振動×1+赤点灯→ポケモンボックス満員または距離が離れすぎ

■接続確認用ボタン操作
軽く振動する→接続中
青点滅のみ→接続切れ

ポケモンを発見した状態でボタンを押すと、ノーマルなポケモンボールを投げ、その結果がフィードバックされます。また、ポケストップ発見時にはボタンを押すことでアイテムを入手でき、ポケモン捕獲成功時と同じフィードバックが得られます。基本的な操作はこれだけ。

能書きはこの辺にして早速フィールドに...と思ったのですが、付属のベルトが好みに合わず、これはちょっとナシな感じです。クリップを使うのもひとつの方法ですが、せっかくのウェアラブルデバイスなのだから腕に装着してみたいところ。そこで、手元にあったパラコードで簡易的なベルトを作ってみました。

パラコードでベルトを製作
8の字編みのベルトはクリップカバーで"Pokémon GO Plus"と結合しています。クリップ部分では編むのを止め、ヒモ状態のパラコードを通し、反対側から再び編み始める形で作業しました。

止め具には50円玉を使用。腕に巻き付けてパラコードのループを50円玉にくぐらせれば簡単には外れない、ってな感じになっております。

装着イメージはこちら。作ってはみたものの「やっぱりこれはナシかなぁ?」という気がしないでもありません。本体のデザインがあんな感じなので、ベルトを変える程度ではどうにもならない模様。

それでも、せっかく作ったのだから使わなければ心が痛みます。ということで、"Pokémon GO Plus"を装着してフィールドに出てみました。

事前の準備として、バックグラウンドで休止させられることがないよう、Androidの"設定"→"電池"にてポケモンGoの"電池の最適化"(Dozeモード)をOFFにしておきます。不要かもしれませんが、一応念のため。

あとは外に出てポケモンGoを起動したら、スマホはスリープさせてポケットに収納。「トラブル時の対処以外は操作しない」と心に決めて近所を一周してみました。で、戦績は以下のとおり。

ポケモン発見数:14
ポケモン捕獲数:5
ポケモン逃走数:9

サンプル数が少ないのでアレですが、ちょっと逃げられすぎのような気が。中には図鑑未掲載のポケモンも1匹混ざっておりました。

逃げられまくり
"Pokémon GO Plus"で黄色のインジケータを確認した時点でスマホに持ち替えるべきだったのですが、最初にスマホは操作しないと決めてしまったもので...。変な意地を張らなければ良かった。

ポケモンの希少レベルに応じて、あらかじめ設定しておいたポケモンボール(とズリのみ)を自動で適用する。というような機能が欲しいところです。

現状で可能な対策としては、インジケータが緑なら可能な限り、黄色なら是が非でもスマホを操作する。といったマイルールを実践するしかなさそうです。

高い逃走率はさておき、サポートデバイスとしての出来は良さげな感じ。スマホはスリープ放置でOKなので、端末のみでポケモンGoをプレイする場合に比べて発熱もバッテリ消費も激減しました。ちょっとしたお出かけならモバイルバッテリは必要なさそう。

さらに、雨の中で傘をさしながらのプレイも非常に快適で、軽い感動すら覚えます。スマホをいじりにくい状況が多く、それでチャンスを逃していたポケモントレーナーさんにもお勧め。

本体のデザインさえ我慢できれば、ウェアラブルなデバイスとして常用したい感じです。「そう思うなら(似たような機能を提供するアプリが登場予定の)Apple WatchなりAndroid Wareなりを使いなされ」ということなのかもしれませんが。

必須ではないけれども、あると遊びの幅が広がる"Pokémon GO Plus"。個人的には満足できる製品でした。現状では品薄な感じですが、モノが潤沢に出回るようになったら検討してみるのもよろしいかと。

販路もちょっと特殊なので、通販のご利用ならポケモンセンターオンラインまたはAmazon.co.jp辺りをチェックしてみましょう。



…続きを読む»

2016/09/16

[Android] Magiskを試してみる

rootedな端末は弾かれます
ポケモンGoのroot端末拒否も要因のひとつではあるのですが、システム周りが少々不安定な感じになりつつあるので、いっそのこと初期化してみようかという気になりました。

イチからやり直すのであれば、新しいことにチャレンジするには最適なタイミングです。ということで、興味はありつつも導入が面倒そうで敬遠していた"Magisk"を試してみることに。

で、これがナニモノかというと、トグル操作でroot/unrootの切り替えを可能にする拡張機能。先日投稿した"suhide"のように個別にunroot指定ができる訳ではなく、システム全体のroot/unroot切り替えとなります。すなわち、unroot状態にしたのならroot権限を必要とするアプリは動作しません。その点にはご注意を。

導入の前提条件として、システムが非rootでなおかつクリーンな状態でなければなりません。superuserやxposedも厳禁。なお、"Magisk"のフラッシュ後には対応するsuperuser/xposedを入れることができます。

そんな雰囲気なので、"Magisk"を導入しようと思ったら、フルWipeを実施して端末をまっさらな状態にするのがよろしいかと。なお、導入に必要な素材は上記スレッドに掲載されているので一式ダウンロードしておきます。

ターゲットデバイスにはCM13(SuperSUにてroot化済み)をインストールしたNexus4を使用。導入の手順は以下のとおりです。

Titanium Backupにてアプリをバックアップ
→TWRPを起動
・NandroidバックアップおよびSDCARDのバックアップを実施
→システムを起動
・SuperSUの設定から"ルート権限の放棄(アンルート)"を実施
→TWRPを起動
・Advanced WipeにてInternal Storage以外の全部を消去
・CM13+Gappsをフラッシュ
・/system/bin/suならびに/system/xbin/suを削除(systemをマウントしてファイルマネージャで削除)
・Magisk-v6.zipをフラッシュ
・phh-superuser-17-magisk.zipをフラッシュ
→システムを起動
・phh's SuperUserアプリのインストール(Google Play経由)
・Magisk_Manager_v1.2.apkのインストール(野良アプリ)
・root/unrootの動作をチェック
→TWRPを起動
・他のカスタマイズ系zipをインストール

かなり煩雑な感じとなっておりますが、バックアップに関してはきっちりと実行しておいた方がよろしいかと思われます。その手法に関してはこちらのエントリで詳しく紹介しておりますので、興味のある方はご一読を。

なお、この手順を踏むとシステムが初期状態となるため、Googleのアカウント設定が必須となります。"Magisk"を導入しようとしている端末がGoogleの2段階認証プロセスのカギにに使われている場合、ちょっと面倒なことになりますのでご注意くだされ。

ワンアクションでroot/unrootを切り替え
"Magisk"の動作はインストールしたMagisk Managerアプリで制御します。こちらがそのスクリーンショット。

"Root Toggle"と記載されたスイッチがroot/unrootの切り替え用となっており、起動時は画面左のroot状態となっております。スイッチをタップするとunroot状態となり画面も右側のように変化。もちろん、もう一度スイッチをタップすれば再びroot状態となります。

で、unroot状態にてポケモンGoを試してみると...見事に起動しました。これでお供ポケモンを連れて歩き回れます。root状態を判定するアプリはもちろん、SafetyNetのチェックもパス。スマホゲームや銀行系アプリは残念ながら動作しませんでした。

なかなかによろしい感じではあるのですが、Wi-Fiが切れまくる不具合が発生しております。突然Wi-Fiアイコンが消えてモバイル通信に切り替わり、数秒後にWi-Fiが復活する、という動作。特定のタイミングではないらしく、頻度もまばらです。

xdaの"Magisk"スレッドでは報告がないようなので、特定の環境で発生するレアケースかと思われます。一応他ビルドや他Gappsも試してみたのですが状況は変わらず。この辺はしばらく様子を見てみようと思います。

上記以外の不具合は今のところ見当たらず、Wi-Fiに依存しない状況であるなら憎らしいほど快適に動作しております。

SafetyNetのチェックを通る必要があるAndroid PayやポケモンGoでしか効果を発揮しませんが、そのためのソリューションとしてこれ以上のモノは(今のところ)ありません。

Google的にはセキュリティの穴を突かれているようなモノで、そのうち対処されることになりそうですが、それまではありがたく"Magisk"を使わせていただこうかと思っております。



…続きを読む»

2016/09/11

Seek Thermal Compactを試してみる

防水ケースも同梱
レンズが捉えた範囲の温度分布を視覚化してくれるサーマルカメラ。最近では、スマホに取り付けるお手軽なモノも登場しております。こちらの"Seek Thermal Compact"もそのひとつ。

前々から興味はあったのですが、「業務的に使う訳じゃなし、すぐに飽きるぞ」という天使の声にかろうじて物欲を抑え込んでおりました。

が、「憧れのサーマルカメラだぞ。価格も手頃だし買っちゃえよ」という悪魔の声に負けてしまった次第で。製品としてはmicroUSBに対応したAndroid用とLightningに対応したiOS用の2タイプがありますが、当方ではAndroid用をチョイスしてみました。

けれども、Androidならどんな端末でもOKという訳ではなく、少なくともUSB OTGのサポートが必須。メーカーによる動作確認機種リストはこちらにありますが、数あるAndroid端末のほんの一部しか載っておりません。

リストにない機種に関しては、動くかもしれないし動かないかもしれないという微妙な状況。ユーザによる動作確認の報告があれば良いのですが、それ以外の場合にはギャンブル的な買い物となってしまいます。

当方が所有する端末としてはNexus7(2012)およびNexus4がすでに非対応機種に入っており、残るはCM13を入れたXperia Rayしかありません。「これで動かなかったら、新しい端末を購入するための言い訳にしよう」ってな軽いノリで購入してみました。

残念ながら幸いにしてXperia Rayで動作したため、とりあえず新しい端末を買うのは先延ばしに。ただ、万全な状態で動作した訳ではありません。

"Seek Thermal Compact"はスマホの上か下のUSBポートに接続するよう設計されており、ポートが横にあるXperia Rayでは画像が90度回転した状態となってしまいます。

この問題を解消するため、画面を強制的に回転させることができるアプリを使ってみることに。いくつかのアプリをテストしたのですが、これがどうもうまくいきません。

ちょっとカッコいい...ような気が
無理やり回転させるとアスペクト比がおかしくなるなど、しっくり来ません。ということでスッパリとソフト的な解決はあきらめ、物理的に対処することに。

手持ちのパーツで短いmicroUSB延長ケーブルを作り、"Seek Thermal Compact"を端末の背面に貼り付けてみました。ケーブル長やL字型のコネクタなど、見た目にもこだわっております。

その結果、"Seek Thermal Compact"は設計仕様どおりの向きとなり、ソフト的な不都合はすっかり解消。おまけに、通常のカメラ撮影と同様にスマホをホールドすることができ、使い勝手も良くなっているような気がします。

例えば端末の下に"Seek Thermal Compact"を装着した場合、通常の持ち方では手首が撮影のジャマになってしまいます。このため横画面で使用するか、端末をひっくり返して"Seek Thermal Compact"が上側になるように持ち替えなければなりません。

デザイン的にもメカメカしい雰囲気があり、結構気に入っております。ということで、しばらくはこの形態で運用する感じになりそう。

ちなみに、"Seek Thermal Compact"の貼り付けにはアクリルフォームベースの両面テープを使用しました。強力ではあるもののキレイにはがせるため必要な時だけマウントする、なんてこともできます。

ということで、実際に撮影してみたのが以下の画像。被写体には公園に植えられた比較的大きな木を選んでいます。

解像度自体は低めですが...
サーマルセンサーの物理的な画素数としては206×156しかないため、シャープな画像は期待できませんが、根の張り方や幹の凸凹感など、それなりに表現されているのが確認できるかと。

画面左端には最高温度と最低温度が表示されておりますが、この部分は状況によって変わります。この時はたまたま最低21℃で最高30℃だったということ。

この温度の範囲を黒→青→緑→黄色→赤→白と変化するグラデーションに割り当てて表現するため、温度差が少なめの場合には細かな階調表現が可能となります。

それで細かなディティールまで読み取れる画像になると。要するに画面内の温度差が小さいと分解能が高くなる訳です。

とはいえ"Seek Thermal Compact"では温度範囲が指定できず、狙って分解能を高めるのは難しい感じ。上位機種となる"Seek Thermal CompactPRO"ではその辺の調整も可能なため、期待する結果に近付けることはできそうです。

サンプル的にもう1枚。今度は通電状態でアクティブに発熱するチップが乗った基板を接写してみました。

接写もOK
画像の中央上部にある温度高めのチップは8mm角ほどの小さなモノですが、形はもちろん足などのディティールも確認できます。

レンズから被写体までの距離は40mmほど。思っていたよりは接写にも強いようです。eBay辺りでは社外品のマクロレンズなども販売されているようですが、個人的には素の接写能力でも充分であると思われます。

なお、手ブレを抑えるため、この撮影では端末を三脚に固定しました。本国ではカメラ部分のみを三脚にマウントできるホルダーも用意されております。

掲載した2枚の画像はいずれも画面中央部の温度を計測・表示するタイプとなっておりますが、アプリの機能としては最低温度と最高温度の場所をリアルタイムで表示したり、指定した温度のみに色を付けて表示するなど、いくつかのパターンが選択可能。また、カラーパレットもプリセットから選ぶことができます。

と、こんな雰囲気で思っていたよりはポテンシャルが高めな感じ。空調や電気関連の工事など、温度分布を可視化することに必然性を感じる方であれば有効に活用できるのではないかと思われます。

そうした目的がない当方のようなユーザにとって役立つシーンはほとんどありませんが、ガジェットとしての面白さはピカイチ。可視光線がまったくない状況でモノを認識できるのには軽い感動すら覚えます。

比較的レアな製品なので購入に際しては通販を利用することになると思われますが、とりあえず楽天市場Amazon.co.jp辺りをチェックしてみるのがよろしいかもしれません。



…続きを読む»

2016/09/06

[Android] suhideを試してみる

しっかりとroot認定されてます
SuperSUで有名なChainfire氏の新作"suhide"を試してみました。これがナニモノかというと、root化済みの端末を非root端末に偽装するツール。

SuperSUの存在を隠すことによって、root化済み端末では動かないハズのアプリが動くようになる(かもしれない)という便利アイテムです。

特に必要性は感じなかったですが、面白そうなので試してみることに。

前提条件として求められるのは、SuperSU(v2.78 SR1以降)がsystemlessモードでインストールされたAndroid 6.0以降の端末。また、インストールおよび設定のためにTWRPも必要となります。同氏のアプリ"FlashFire"でも大丈夫らしいのですが、守備範囲外なので、ここではTWRPに限定させていただきます。

なお、インストールから準備までの話が長めなので、結果だけ知りたいという方は、2枚めの画像の辺りから読み始めるのがよろしいかもしれません。

それではまずインストールから、"suhide"の本体は上記xdaの最初の書き込みの末尾に添付されておりますので、そこからダウンロードしておきます。インストール自体は非常に簡単で、TWRPで"suhide"のZipファイルをフラッシュしてからSuperSUを上書きすればOK。けれども設定は少々面倒です。

まずは"suhide"の動作対象にしたいアプリのUIDを調べる必要があります。UIDはインストールされたアプリに割り振られる固有の番号(5桁の数字)で、端末ごとに異なる可能性が大。なので自分自身での調査が必須となります。

で、そのUIDを知るための方法としてはターミナルエミュレータからの操作が推奨されております。その下準備として必要なのが、ターゲットとなるアプリのパッケージ名。

ここでは、root化済み端末をチェックするアプリ"Root Checker Basic"をターゲットとして話を進めます。このアプリを"suhide"の導入前に実行した結果が冒頭の画像となっております。

パッケージ名を調べる方法はいろいろあるのですが、お手軽なのはシステムの設定を使う方法。"設定"→"アプリ"を開き、対象となるアプリをタップするとバージョンの下にパッケージ名が表示されます。そのパッケージ名を引数として以下のようにlsコマンドを実行します。

ls -nld /data/data/com.joeykrim.rootcheck

すると、以下のような結果が返されます。

drwxr-x--x 11 10141 10141 4096 2016-09-01 07:41 /data/data/com.joeykrim.rootcheck

結果の中に5桁の数字があり、これが目的のUIDとなります。この場合には10141がそれ。ターゲットが複数あるのなら、その数だけ上記作業を繰り返してUIDを調べておきます。

ちなみに、ここまでの作業は"suhide"がなくてもできるので、ターゲットが明確なら"suhide"のインストール前にチェックしておくと効率的です。

ここからがやっと本番。"suhide"の設定となります。まずはTWRPを起動して、ターミナル機能を起動。先ほど調べたUIDを引数として"add"スクリプトを実行します。

/su/suhide/add 10141

実行後に何のエラーも出なければ成功...なのですが、ウチの環境では"not found"と言われてしまいうまく行きません。なので、推奨方法とは異なるのですが、システムを起動し、SU後のターミナルエミュレータアプリから同スクリプトを実行しました。

このスクリプトは、suhide.uidというUIDのリストに指定されたUIDを追加するスクリプトです。実行後にsuhide.uidをチェックしてみましたが、きちんと追加されている様子。なのでこの方法でも問題はないと思われます。

なお、登録したUIDを削除したい場合には"rm"スクリプトを使用します。書式は"/su/suhide/rm xxxxx"こんな感じ。xxxxxにはもちろんUIDの数字が入ります。

UIDの登録が完了したら、念のためシステムを再起動しておきます。これで準備は完了。ということで、ターゲットとして登録したアプリである"Root Checker Basic"を起動してみました。

非rootと判断されました
"suhide"導入前(冒頭の画像)とは異なり、非root端末であるとの表示が。うまく騙せたようです。この結果に気分を良くして、root化済み端末では動作しないゲームや銀行系アプリを試してみました。

が、すっかり玉砕。これらのアプリにはroot化済み端末と判断されてしまい、起動することはできませんでした。お金がからむと本気度が異なるようです。

他の手法を組み合わせることで、上記アプリも動くようになるかもしれませんが、それを目的としている訳ではないので今回はやりません。

何かいまひとつな雰囲気ではありますが、この結果を持って"suhide"がダメであると決めるのは早計というもの。xdaではSafetyNetのチェックをパスしたという報告もあり、root化済み端末でAndroid Payが使えるようになる...可能性を秘めております。

登録済みのアプリに関しては"suhide"が自動的に動作するためユーザが操作する必要がない点、そして登録外のrootedアプリには影響がなく普通に動作する点は"suhide"の大きなアドバンテージといえます。

もし、"suhide"で効果があるアプリをターゲットとするなら、これ以上便利なツールはなさそう。今のところ使い道はほとんどありませんが、覚えておくといつか役に立つかもしれません。

最後になりますが、もしご自身でお試しの際には、何ごとも自己責任でひとつよろしくお願いしたく。

***Edit***
検証にCM13を使ったためか、suの痕跡が残っていたようです。

/system/xbin/su
/system/bin/su

上記2ファイルを削除することでSafetyNetのチェックをパスできるようになりました。ちなみに、使用したアプリはこちら

けれども、ゲームや銀行系アプリに関しては変化がありませんでした。

***Edit2***
SafetyNetですが、サーバ側で対処されたらしく、再びチェックを通らなくなりました。

***Edit3***
バージョン0.5以降でSaftyNetのチェックをパスするようになったようですが、当方の環境ではうまく動かず検証はできておりません。

***edit4***
バージョン0.53にて再び当方の環境でも動作するようになり、SaftyNetのパスならびにポケモンGoの起動を確認。また、ディレクトリおよびコマンド名の変更に伴い内容を修正しました。



…続きを読む»

以前の投稿へ ホームへ