2012年12月30日日曜日

2012年のまとめと来年に向けて

2012年も残すところ1日となったので、まとめ記事なんぞを書いてみます。

Jenkinsの年でした


もともと、自分用の備忘録としてスタートしたブログでしたが、思いの外
多くの方に閲覧をしていただいて驚いています。

そんな中、最も閲覧数が多かった記事がこちら。

JenkinsでAndroidのユニットテスト+リリースビルドまで自動化

思えば、今年は色々なところでキーワードとしてJenkinsのことを話して、聞いて
いたように思えます。

最初に使ったのは多分Androidテスト祭りに参加をした後あたりから。

第2回Androidテスト祭り #atecfes2

Linuxでとりあえず導入→マシンのスペック不足でビルド時に落ちる
→Windowsで導入→バグ(?)でうまくビルドできない

などとまあ、苦難の連続でしたが最終的に記事にまとめることができました。

ちなみに、閲覧数上位2位3位が

WindowsにJenkinsを入れてCI #Jenkns
Jenkinsを一般ユーザーで動かす

となっていて、やたらとJenkinsの使い方説明ブログみたいに
なっています。

今年はJenkinsの年だったのかなと言えなくもない。

自分自身で今年面白いことが書けた、できたなぁと思うのが次の2つ。

Root化したAndroid端末とFacebookアプリ
WindowsPhoneとJenkinsの話 #sumaben

一つ目は、Root化ってコワイねーな話。
使う側が気をつけるのはもちろん、作る側もサポート外
だなんて、言ってられないことをもっといろんな人に
知ってほしいところ。

2個めはまたもJenkinsですが、日本語のブログで類似なことを
やってる人が(当時は)見つからなかったのがちょっと嬉しい。

来年からのこのブログ


来年のこととか考えてないなぁ。べつに、一昨年も考えて
いなかったわけだし・・・

ブログの方針とかは変わらないと思います。日々、自分がやったこと
をまとめる感じ。

つまり、自分が「あれ?これってどうやるんだっけ?」と思った時に
見返すことで思い出したり、ヒントになるようなブログにするのが第一。

じゃあ、訪問された方がハッピーになるにはどうすればいいのかって考えると、
固定の読者になっていただくと言うよりも、検索でたどり着いた有象無象の1ページの
1つとカウントしてもらえるのが嬉しいかな。

毎回やってることが違うんだから、当然そうなる。
というわけで、俺も極力参考にしたページとか本とか、ググりワードを
紹介するようにして次の情報への足がかりになるように努めます。

別にこのブログで収益をあげようとかは考えていないので、別にそれで
いいかな?って。

来年からの俺

お金稼げるようになりたいです(白目

言語としてはScalaを引き続き。Rubyも引き続き。

フレームワークはiOSとかPlay Frameworkとか。

ツールはant,maven,sbt...と今は思っていますが、
何が起こるかわかりませんからね。

というか最近はテストの効率化とかデバッグの効率化の
勉強ばっかりなので、そっち方面で強くなりたいですね。

以上、それでは皆様よい年末、年明けをお過ごしください。
また来年もよろしくお願いしますね。

2012年12月4日火曜日

Root化したAndroid端末とFacebookアプリ


Rootとってる人、取ろうと思ってる人はちょっと気にしてほしいこと。

はじめに


結論から言うと、Root化端末を知識のない人間が使うとものすごい危険
です。

なぜなら、たとえばFacebookのアプリはユーザー情報やフレンドの情報を
暗号化を行わないで保存しているから。

これの何が危険かというとROOTを取った端末の場合だと、とくに
制限もなくFacebookアプリのデータベースにアクセスされる可能性が
あるのです。

普通に使っている分には別にいいけど、そうじゃないことしてる人は
気を付けた方が良いよねっ!って話。

実践


では、具体例として友人一覧の情報を取得する方法をコードを交えて。

今回のターゲットは
/data/data/com.facebook.katana/databases/users_db2

この中に友人の名前やメールアドレス、電話番号などが入っていました。

Step.1:ファイルのパーミションを変更する

Androidのアプリは基本的に、自分のアプリのDBに対しては自分からしかアクセス
できないようにできます。

FBアプリも例には漏れず。しかし、結局はLinuxのファイルパーミションを利用して
管理をしているので、su権限でchmodを実行すればなんの問題もないです。

これがRoot化端末の怖いところ。普通はアクセスできないファイルにアクセス
できる可能性がある。

Step.2  SQLiteDatabaseあたりを利用してDBにアクセスする。


ファイルのフルパスを指定してあげれば、簡単にアクセスできます。
あとは煮るなり焼くなりご自由に状態。

ちなみに、コードはこんな感じ。


実行結果


こんなに丸見え!

まとめ


ROOT化端末の場合、ユーザが意図しないタイミングで見られたくないデータを
見られる可能性があるから、気を付けよう。

ROOT化するよー!って人
危険性を本当に理解してください。困るのはあなただけでなく、あなたの
友達かもしれません。

開発者の方
ROOT化端末によって、予期せぬデータ流出が起こることを知っておいてください。
確かにROOT化端末はサポート対象外ですが、そのおかげで不幸になるのは、あなた
個人や会社です。

最後に


ちなみに、このネタは先日開催された「Androidセキュリティハッカソン」でやってきた
ネタです。

もっと早くに思いつけば、アドベントカレンダーのネタになったのに・・・