仙石浩明の日記

2010 : December

2010年12月31日

香港の深水埗で華為 IDEOS U8150-B (EMOBILE S31HW) を買ってみた hatena_b

年末に香港へ行って電脳街を巡るのが毎年の恒例行事になってきた。 香港の電脳街は、 すでに秋葉原を追い越した感じがする。 近頃の秋葉は面白いモノをあまり見かけなくなり、 たまに見かけても、 大抵は香港などで流行ってるモノを単に持ち込んだだけで、 しかも値段は香港の倍以上だったりする。 デフレと言われて久しい日本だが、 PC にしろケータイにしろ値段が高すぎる。 これから発展していくアジアと、 これから衰退していくだけの日本ということなのか。

いつものように深水埗の高登電腦中心を巡回していたら、 大一(香港)有限公司IDEOS U8150-B を HK$1380 で売っているのを見つけた。 U8150-B といえば来年1月中旬にイー・モバイルから発売される予定の Pocket WiFi S (S31HW) の同型機。 ただし、 ファーウェイによれば、 グローバル展開されている 「IDEOS」 と日本向け S31HW は別の製品、 ということらしい。 なぜ日本は 「グローバル展開」 の対象ではないのだろう?

「Pocket WiFi S」は、 音声通話機能とAndroid™ 2.2を搭載したWi-Fiルーターです。 Android™ 2.2搭載端末としては国内最安※1となる端末価格19,800円(税込)での提供と、 国内最軽量※2の重さ約105gサイズを実現しました。

「国内最安」 「国内最軽量」 つまり世界基準では安くもなければ軽くもないということ。 本来 Android は 2.2 froyo 以降からデフォルトで 「ポータブルWi-Fiアクセスポイント」 として使えるのに、 わざわざ 「Wi-Fiルーター」 と呼んでいるあたりにも、 いかに日本が世界標準からずれてきてしまっているかを感じる。

とはいえ、 日本では 19,800円でしか買えない端末が HK$1380 (約 14,500円) で買えるのなら悪くない。 思わず衝動買いしてしまった。 画面が QVGA (2.8" 320x240) だったり、 内蔵カメラが貧弱 (一応 320万画素なのだが...) だったり、 CPU が MSM7225 528MHz だったりと、 Android 端末としては見劣りするものの W-CDMA I/II/V/IX (2100/1900/850/1700MHz) に対応したスマートフォンが 15,000円弱で買えるとなると、 一気に普及が進むヨカン。 ちょうど 2年前、 ここ香港で 4バンド GSM 機を HK$899 (約 10,000円) で買ったのが遠い昔のことのようだ。

中華 Android 端末なんて 「安かろう悪かろう」 だろうなどと思ってはいけない。 カスタマイズしすぎて Android とは別物になりつつある国産スマートフォンより、 よほど素直で使いやすい (そして圧倒的に安い)。 買った当初は値段相応の期待しか持っていなくて、 メイン端末が壊れたときなどの非常用端末くらいの感覚だったのだが、 高解像度の画面 (およびマルチタッチ) を必要としないアプリのほとんどがそのまま動いてしまった。 これなら非常用としてだけでなく、 大きな端末を持ち歩きたくない時とかにも使えそう。 Android 2.2 へアップデートできない一部の国産 Android 端末だと、 動かないアプリが沢山でてきてしまう。

ただし、 多くのアプリ開発者が QVGA などという尋常でない低解像度を想定していないためか、 Android マーケットでダウンロードできないアプリが少なからずある。 そういうアプリも別の Android 端末でダウンロードして得た apk ファイルを、 「adb install」 コマンドなどで IDEOS へインストールしてみると、 ほとんどが特に問題無く使えるようだ。

購入時のファームウェアは、

Androidバージョン2.2
ベースバンドバージョン2210
カーネルバージョン2.6.32.9-perf
huawei@product #1
ビルド番号U8150V100R001C127B818SP05

だったが、 この 「ビルド番号」 だと、 日本の一部(?)のキャリアの SIM でデータ通信できないという問題がある (音声通話は可能)。 例えば、 ドコモの SIM で mopera U を使う場合は 3G 通信可能だが、 ソフトバンクの銀SIM/黒SIM や、 WILLCOM CORE 3G の SIM では接続できなかった。

Huawei のページで U8150 のファームウェアを検索してみると、

ProductSoftware NameRelease Date
U8150U8150 V100R001C02B82 7SP02(Italy Vodafone ) 2010-12-15

が見つかった。 Italy Vodafone と書いてあるあたりが気になるが、 google で検索してみると、 このファームウェアを書込んだら 3G 通信できるようになった、 という旨のページを見つけた:

huaweidevice.comのサイトから、 「U8150 V100R001C02B82 7SP02(Italy Vodafone ) Host Software」 をダウンロードして解凍し、 出てきたファイルをmicroSDにコピーして、 ボリューム上と終話ボタンを押しながら電源を入れればファームアップが始まります。 一度目最後に失敗したら一度電池を抜いてもう一度同じ操作をすれば、ファームアップが正常に完了です。
ファームアップ後は、 まっさらに初期化されるため、 最初から設定しなおしです。 とはいえ、Andorid2.2とマーケットアプリのおかげで、 Googleアカウントを入れれば、 アプリも全部自動で勝手にマーケットからダウンロードして復活してくれるので楽です。 ファームアップ後のrooted も可能です。

さらに、 元のファームウェア V100R001C127B818SP05 も Huawei サイトからダウンロードできるようなので、 最悪の事態になっても元に戻せるだろうと思い、 上記ファームウェアを IDEOS に書込んでみた。 ファームウェアに同梱されている 「U8150 Software Upgrade Guideline」 に書込み方法の説明がある (英語版とイタリア語版の説明書が同梱)。

こばこのひみつ」 に書かれている通り、 書き込みの最後で 「失敗」 するのだが、 いったん電池を抜いて再起動すると正常に起動した。 また RageAgainstTheCage exploit を利用して root 権限を再取得できた。

更新後のバージョンは以下の通り:

Androidバージョン2.2
ベースバンドバージョン22201003
カーネルバージョン2.6.32.9-perf
huawei@product #1
ビルド番号U8150V100R001C02B827SP01

ダウンロードしたファームウェアのファイル名は末尾が 「...7SP02」 だったのに、 ビルド番号が 「...7SP01」 なのが気になるが、 ソフトバンクの銀SIM や WILLCOM CORE 3G SIM で試してみたところ、 正常に 3G 通信できている。

Filed under: Android,香港 — hiroaki_sengoku @ 01:11
2010年12月15日

“自分に向いたこと” を見つけ、自分にしか生み出せない価値を持て hatena_b

今年 8月に、 株式会社ドリームキャリアさんのインタビューを受けました。 ドリームキャリアさんは、 理系学生のための就職情報サイト 「理系ナビ」 を運営している会社です。 いま、 一部の大学で配布中の小冊子 「理系ナビ 10冬号」 の巻頭の 「トップインタビュー」 に掲載されました。 2012年卒 (に限りませんが) の学生さんの就職活動の参考になれば幸いです。

ドリームキャリアさんの許可を得て、 記事全文を転載します:

- o -

“自分に向いたこと” を見つけ、
自分にしか生み出せない価値を持て

KLab株式会社 取締役 CTO 仙石 浩明

会員数 500万人を超えるソーシャルアプリ 「恋してキャバ嬢」 を開発・運営するなど、 ソーシャル、クラウドをキーワードに事業展開を図る KLab株式会社。 その最高技術責任者 (CTO) である仙石浩明氏は、 専門誌でサーバ構築に関する連載を持ったことがあるなど、 業界でも名の知れた人物だ。 自身も IT業界でキャリアを積み、 KLab の取締役として数多くの新卒・中途採用の面接を重ね、 そして入社してきた相当数のエンジニアの仕事ぶりを見つめてきた仙石氏に、 就職先を選ぶ際に気を付けるべきポイントについて話を聞いた。

考える前にやってみる。
そして見つけた自分に向いた仕事

「世の中には、 仕事を楽しんでいない人が多いように感じますね。 どんな仕事をしても良いのですが、 楽しんでほしい。 楽しめないような職業は選んでほしくないのです。 楽しめなければ成長できるはずがない」

これから就職活動を迎える学生に、 このようなメッセージを送るのは KLab株式会社最高技術責任者 (CTO) の仙石浩明氏。 「朝、コンピューターに向かったら熱中してしまい、 気が付いたら夜だった」 というほどのめり込めることを仕事にする仙石氏は、 コンピューターとは中学時代に出会ったという。

ただ、コンピューターばかりにのめり込んでいたわけではない。 高校の時は数学好きで特殊相対性理論にも興味を持った。 哲学にもはまり、 大学で哲学を専攻しようかと真剣に悩んだこともあったが、 最終的には哲学よりも好きだった情報工学を学ぶことに決め、 京都大学工学部に進んだ。

そのまま大学院に進み、 就職活動を迎えた仙石氏は、 日立製作所への入社を選ぶ。 当時、 情報系の研究をするなら NTT の研究所が一番人気。 仙石氏は NEC のインターンシップにも参加していたが、 あまのじゃくな気質を発揮して 「それ以外から選ぼう」 という判断をしたそうだ。

日立に入社した後は、 遺伝的アルゴリズムやネットワーク基盤技術の研究を進める。 だが入社してから、 会社での仕事以上に熱中したのはテニス。 定時であがって、 日没までテニスを続けるような日々だった。

ただ、 そのテニスは半年間しか続けなかった。 「私の場合、 『向いているんだろうか』 と考える前にやってみます。 やってみて向いてないと思えば止めてしまう。 コンピューターの道だけを選んで成功したと人には思われているようですが、 物理、数学、哲学、テニスと試してみて、 止めたものも数限りなくあるのです」 と仙石氏は自身がテニスを止めた理由を説明する。

中途半端に好きな状態で居るのではなく、 興味を持ったのなら、 全力で取り組んでみる。 自分の能力がどれくらいのものかと、 把握できるまでやってみる。 そして向いてない、 止めると決めたらそれ以上は手を出さない。 それを繰り返すことで、 本当に自分が好きなもの、 人並み以上の価値を生み出せるものを見つけ出し、 それを仕事にしていったのが仙石氏のキャリアなのだ。

ほかの人にもできる仕事は最小限に
自分しかやれない仕事にフォーカス

元々、 定年まで働くつもりはなかったというが、 大手企業で働くうちに仙石氏は会社に違和感を覚えるようになる。 上司から指示される仕事は、 ほかの人にでもできるような仕事。 「ほかの人ができることをやっていても差が付かない」 と考えた仙石氏は、 必要最小限で済ませるようになり、 上司から指示されていない自分にしかできない研究に取り組んでいった。

しかし、 そうした働き方が評価されるわけではなく、 仙石氏の給与は年功序列でほかの社員と横一線。 会社から与えられる仕事は、 相変わらず代わり映えしなかった。

そんな時に、 仙石氏のところに1本の電話が掛かってくる。 外資系ヘッドハンティング会社の転職代理人からの転職を勧める電話だったが、 「転職という手段もあるのか」 とその時に初めて意識することになる。

そして転職代理人から薦められたモバイルコンテンツ開発会社に面接へ行ってみたところ、 「新しく研究開発の会社を立ち上げます」 という話を聞く。 当時の仙石氏はベンチャーに興味があったわけではなく、 携帯電話すら持っていないような状況だったが、 「面白いかもしれない。 やったことがないからやってみよう」 と転職を決意する。

そんな経緯で入社したのが KLab の前身となるケイ・ラボラトリー。 CTO に就任した仙石氏は、 世界初の携帯電話向け Javaアプリの開発、 携帯電話端末の技術仕様策定等、 モバイル技術開発会社として業界内で存在感を示す KLab を、 技術面でリードしていくことになる。

“自分にしかできないこと” を
評価してくれる会社の見分け方

仙石氏は自身の経験を踏まえ、 エンジニアが就職先を選ぶのなら、 “自分にしかできないこと” を評価してくれる会社にすべきだと訴える。

「会社は 『この仕事をやってほしい』 と考えて、 誰にでもできる仕事を任せるために人を採用している面もあります。 ですが、 そんな仕事ばかりでは人は成長できません」

自分に向いていること、 やっていて楽しいことを評価してくれる会社。 そんな会社かどうかを見抜くには、 「自分はこんなことを考えている」 と面接で伝えれば良いと仙石氏は助言する。 面接官が興味を持ってくれるのなら、 その会社には見込みがある。 だが、 興味すら示してくれないのなら、 社員一人一人の関心・適性に会社としての興味はないということ。 適材適所ではなく、 会社の都合で仕事が割り当てられると思った方が良いのだとか。

「私なんかは、 大学での研究について話を聞くのが好きですね。 教授に言われてやっている研究ではなく、 自分がやりたいと思って取り組んでいる研究。 その人が今までに熱中したことについて延々とでも話を聞くことで、 ほかの人と違うことをやることに価値を見出せる人かどうか、 簡単に分かります」 (仙石氏)

“自分に向いていること” を
見つけるために設けたどぶろく制度

自分だけにしかできない仕事。 そのための時間を取ってもらうために KLab では 「どぶろく制度」 を設け、 標準労働時間の 10% までなら、 好きなように使えるようにしている。 ただ、 どぶろく制度の目的はそれだけではない。 仙石氏は片っ端から興味を持ったことにチャレンジして “自分に向いていること” を見つけたが、 すべての人がそれを見つけられているわけではない。 「今やっている仕事内容とは違うことに仕事時間を使うことで、 “自分に向いていること” を見つけてほしい。 向いているかどうかを確かめるためには、 転がり込んできたチャンスにチャレンジすることが必要。 『時間がないから』 という理由で動かない人が多いので、 それを言い訳にさせないためにつくったのがどぶろく制度なのです」 と仙石氏は制度の狙いを明かす。

また、 KLab では “自分に向いていること” を突き詰めて “自分にしかできないこと” を身に付けているエンジニアを正当に評価するため、 ダイナミックな人事評価制度を導入している。 基本的に年に一度、 成果と能力に基づいて給与を改定するが、 新卒入社の社員には、 入社から 3年間は半年に一度見直しをかける。 能力のある社員なら、 給与テーブルのグレードを一足飛びで駆け上がっていくため、 入社して数年の間に数百万円の年収差が生まれることもざらにあるのだとか。

質問すること、チャレンジすることで
伸びる 「考える力」

もちろん、 “自分に向いていること” が見つかったからといって、 “自分にしかできないこと” がすぐにできるようになるわけではない。 そのためには自分自身の成長が必要になる。

成長のためには、 「考える力」 が重要だと仙石氏は言う。 例えば、 多くのエンジニアはある程度仕事を覚えると、 あとは惰性で仕事をするようになる。 仕事で分からないところが出てきても、 検索エンジンを使って調べれば、 だいたいの答えが出てきてしまう。 チャレンジが無くなることで、 そのエンジニアの成長はそこで止まってしまうのだ。

そんな仕事スタイルのエンジニアこそ、 誰にでもできる仕事しかできなくなると仙石氏は批判。 「考える力」 とは抽象的な概念なので説明しづらいが、 知りたいことに憶さず質問して興味を持ったことを深掘りしていくこと、 そしてチャレンジすることを通して育つ力だと説明する。

ちなみに KLab では、 自分の興味・関心のあるテーマについて大勢のエンジニア相手に発表させる勉強会を開くことで、 エンジニアとしての成長を促している。 自分が深めたいと考えているテーマを自分の力で考えて発表させることで、 あるいはそれを聞いて質問する力を伸ばさせることで、 社員の成長を促しているのだとか。

格差が進む 20年後のために
自分だけの価値を生めるように

しかし、 なぜそこまで “自分に向いていること” “自分にしかできないこと” にこだわらなくてはいけないのだろうか。 仙石氏はその理由について次のように語る。

「これから就職する学生が迎える将来の社会について、 私はかなり悲観的な見方をしています。 格差社会と言われていますが、 今から 20年後には格差がもっと進むのではないでしょうか。 日本の会社は、 まだまだ昔ながらの年功序列に支えられています。 成果主義が広まっているとは言うものの、 仕事のできる人とできない人とで、 そんなに差は付いていません。 これから就職する学生の皆さんが 40〜50歳になっているころには、 それこそ年収が1ケタ違うのも当たり前にあり得るのではないでしょうか」

実際に 20年前と今とを比べると、 誰にでもできる単純作業のうち、 かなりの部分が技術の進歩によって一掃されてしまった。 現在、 誰にでもできる仕事でお金をもらっている人は、 20年後にどうなってしまうのか。 そう考えていくと、 他人には生み出せない自分だけの価値を持つことが必要なのだと仙石氏は話している。

20年後のあなたは “自分に向いていること” を見つけて、 “自分にしかできないこと” を習得できているだろうか。 本当に成長したいのなら、 「当社が一番適した会社かどうかは分かりませんが、 技術者が会社に依存せず、 自分の価値を築ける一番の会社にしようと、 少なくとも私は本気で考えています」 という仙石氏の居る KLab も、 就職先の選択肢に含めてみてはどうだろうか。

Filed under: 元CTO の日記,自己啓発 — hiroaki_sengoku @ 15:19
2010年12月4日

Android 端末 IS01 のカーネルを入れ替えてみた 〜 さよならデッカード LSM tweets

先週末 IS01 で root 権限が必要なアプリが使えるようになったばかりなのに、 そのわずか 4日後、 スマートフォン@2ch掲示板に以下の書き込みがあり、 カーネル空間への侵入口が明らかにされてしまった。 一番乗りを果たした goroh_kun さんに敬意を表しつつも、 IS01 のプロテクトがこの程度だったことが残念でもある。 「root を取られても大丈夫な作りになっている」 と開発者が豪語し、 しかも IS01 の発売から 5ヶ月間も破られなかったのだから、 さぞかし鉄壁の守りなのだろうと思っていたのに、 こんな分かりやすい穴があったとわ... (負け惜しみ ^^;)。

【ROM焼き】au IS01 root2 〜わたくし達も未来へ〜

...

317 :goroh_kun:2010/12/01(水) 03:14:21 ID:LGLTLBmZ

自動起動仕込むところを大体見つけました。
どなたか協力お願いします。

/data/の直下にlocal.propを置く
ここで、内容をoverrideできます。
サービス起動時のおダイナミックライブラリがある
サービスプログラムを探す。

getpropしてみると、

rild.libpathが/system/lib/libril-qc-1.soといかにも起動時に使っていそう。
rildaemonから使われているプラグインと思われます。

そこで、
local.propの中身を
rild.libpath=/data/lib/libril-wrapper.so
rild.wrapper.cmd=/data/rootkit.boot.sh
rild.libpath2=/system/lib/libril-qc-1.so

で、このプラグインを/data配下から読み出されるようにして、
libril-wrapper.soにて、ダイナミックロード時に
自動実行したいプログラムを指定できるようにします。
で、自動実行したいプログラムをlibril-wrapper.soで実行後
本来のrild用のプラグインをロードして、rildに引き渡すようにします。

これでいけるのではないかと思っているのですが、やるよって方は
いらっしゃいますか?

rild.libpath プロパティは、 RIL (Radio Interface Layer) デーモン rild が参照している。 rild は rild.libpath の値をダイナミックライブラリのパス名として dlopen(3) に渡し、 dlsym(3) でライブラリ内の関数 RIL_Init 呼び出す。 つまり、 rild が起動される前に rild.libpath の値を書き換えておけば、 rild に任意のプログラムを起動時に実行させることが可能になる。

したがって守る側 (つまり開発者の立場) から考えると、 (1) rild.libpath が書き換えられないようにするか (2) 任意のプログラムの実行が脅威にならないよう、 rild 起動前に防御を固めてしまえばよい。

プロパティは、 以下の 4 つのファイルで設定できる。 どれか一つでも改変可能であれば、 (1) の方法は使えない。

  • /default.prop
  • /system/build.prop
  • /system/default.prop
  • /data/local.prop

IS01 の場合、 (たとえ root が奪取されても) /system ディレクトリ下は改変できないようになっている。 また、 /default.prop は initramfs 内のファイルなので、 改変しても再起動すれば揮発してしまう。 だから上記 4ファイルのうち /data/local.prop 以外は改変不可能。

Android では /system ディレクトリ下は read only でも構わないが、 /data ディレクトリ下は Android 動作中に書き換えることが前提となっている。 もちろん /data/local.prop だけは書き換え不可能にするとか、 あるいは再起動時に自動的に /data/local.prop を書き戻す、 という方法も考えられなくもないが、 そもそも論で言えば /data/local.prop は、 システムのプロパティをオーバーライドするための設定ファイルであって、 その本来の趣旨からいえば書き換え不可能にすることは望ましくない。

したがって守るなら (2) の方法が自然。 というか、 /data/local.prop で rild.libpath の値を変更されても、 rild はユーザ空間で動くデーモンなのだから、 本来は 「任意のプログラムの実行」 が可能でも脅威にはならないはず。

ところが IS01 の開発チームは致命的なミスを犯した。

More...
Filed under: Android — hiroaki_sengoku @ 12:59