2013-03-18

MediaPad(S7-301u)にカスタムROMを入れる

古い方のMediaPad

HUAWEIの7インチタブレットMediaPadは2011年に発売されて、当時の7インチタブレットとしては多分初めての1280x800解像度とAndroid3.2を搭載して発売されました。

結局日本の認証機関を通っているものの国内で発売はされずという悲しい結末を迎えることがほぼ間違いありません。

発売後ほどなくしてS7-301uを購入(輸入)したのですが、月日が流れ、その後提供されたICSをもってしても最新ではないので徐々に何とかしたい欲が生まれてくるものです。(外にも持ち歩いているのですが出番はあまりないイメージ。図書館で動画見る時に使ったりはしましたが)

ちなみに.、ファームウェアは英語と中国語(簡体字)で提供されています。中身はそれぞれ違うので要注意。
英語(Softwareの中) http://www.huaweidevice.com/worldwide/technicaIndex.do?method=gotoProductSupport&productId=3779
中国語(軟件下載の中) http://www.huaweidevice.com/cn/technicaIndex.do?method=gotoProductSupport&productId=3807

カスタムROMの種類(Android4.2ベース)

このエントリ記載時点の情報として、2つのカスタムROMを記載します。
AOKP for MediaPad Unofficial Nightlies(4.2.2)
http://forum.xda-developers.com/showthread.php?t=2131218

CM10.1 for Huawei Mediapad(4.2.2)
http://forum.xda-developers.com/showthread.php?t=2045808

どちらもBluetoothが動かないという点があります。他にHDMI周りとUSBストレージ(マウントポイントが特殊だから?)とWi-Fiテザリングができないという点もあるようなので導入するつもりの方はご確認を。自己責任です。

CM10.1を入れる

ということでCM10.1の方を入れてみることにします。記載されている主な手順は以下。

  1. HUAWEIのストックROM(4.0.3)を入れておく
  2. TWRPかCWMのインストールが必要。自動インストーラのZIPをPCにダウンロードして、展開。install_recovery.cmdを実行して表示される指示に従う(WindowsのPCが必要ですね・・・)
  3. CyanogenMod 10 for Huawei MediapadとGoogle appsをダウンロードして、内蔵又は外付けSDに配置。
  4. TWRPかCWMを起動して、バックアップに同意します(これでストックROMのフルバックアップが取れます)
  5. もし以前のCM10又はParanoidAndroidをflashしたい場合はこのパートをスキップ、もしストックROMかAOKPから来た場合は、Wipeを選んでFactory Resetを選んで操作に同意。
  6. backを押してインストールを選択、ダウンロードしたROMのzipを見つけたら選んで操作に同意
  7. backを押してインストールを選択、ダウンロードしたGappsのzipを選んで操作に同意
  8. システムを再起動してCM10.1を楽しんでね
注意点
  • TWRP/CWMリカバリーはcm10/pa/aokpと同じように使える。HUAWEIのストックROMの内蔵メモリはデータと共有でマウントされている。でもカスタムROMリカバリはデータとメディアだけでマウントするオプションがある。だからストックROMにはこれらのリカバリーで内蔵ROMでバックアップしてFactory Resetでワイプする。でもそれらはcm10/paみたいなカスタムROMではしないことなんだ。
Gappsはリンクが張られていたものよりも新しいものがあったので、以下からダウンロードして保存。
http://goo.im/gapps/gapps-jb-20130301-signed.zip


Windows用USBドライバーをインストール

http://www.huaweidevice.com/worldwide/downloadCenter.do?method=toDownloadFile&flay=software&softid=Mzk1MzA=


これであってるかわからないけど他に該当するのがなさそうなので・・・
ドライバーと一緒にHiSuiteというユーティリティもインストールされます。使う機会あるかな・・・

自動実行リカバリインストーラを実行
USBドライバ(ユーティリティ)をインストールしたら、自動実行インストーラを実行します。


前々からTWRPの評判がいいみたいなので今回使ってみることに。



キーを押すとMediaPadが再起動します。再起動したら電源を落としてTWRPに入ります。

TWRPで操作(スクショなし)

TWRPを起動する為に電源を落とすんですが、このときに「高速ブート」が有効になっていると何をしてもリカバリーに入れないので、電源を落とす前に設定から高速ブートをOFFにしておきます。

TWRPに入る時は以下の手順。

  1. タブレットの電源を切る(高速ブートは切っておく)
  2. 音量下ボタン(音量ボタンの電源ボタンから遠いほう)を押しながら電源ボタン長押しで電源投入
  3. 「ブルッ」と振動するので、電源ボタンだけ離す(音量下ボタンは押しっぱなし)
  4. 「HUAWEI MediaPad」が表示
  5. 一瞬ブラックアウト
  6. もう一度「HUAWEI MediaPad」が表示
  7. もう一回ブラックアウト
  8. 「TEAMWIN」ロゴが表示されたら音量下ボタンを離す
  9. しばらく待つとTWRP起動
で、バックアップを取得、再起動。もう一回TWRPでフルワイプ、Factory Reset、再起動。
CM10.1とGappsをInstallから選んでインストール(TWRPは2つ同時に入れられますね)、再起動。

ようこそで完了。



2013-03-08

使ってないperlの関連パッケージを削除する

Perlプログラマーの方、お元気でしょうか。
普段プログラマーをしておりますが、新人の時にテストツールをシェルで作ってと言われ、テスト結果のログ解析をする必要があったので急ごしらえでperlでログ解析部分を書いて依頼、まったくPerlとは縁のない日々を過ごして参りました。

そんな前段はさておき、プライベートでもPerlのコードを書くことはないし、これからもないだろうなとは思ったものの、今動いているものから完全にPerlを削除をするのは難しかろう点も事実ですので、ディスクの節約の為にPerlで作られてる部分の必要ないところをじゃんじゃん消し抵抗と思います。Debianです。

現状把握。

それではいったいどの程度のPerlで作られているパッケージがインストールされているのか、面倒なのでlibほにゃららperlというパッケージの数を調べてみましょう。

$ dpkg -l | grep -E  lib.*perl | wc -l
 結果
78
うーん。 多い。実際にはdpkgの結果は1パッケージで2行表示されるので39パッケージがインストールされるという事ですが、それでも多い。perl書かへんのに・・・

削除。

全部いっぺんに削除しようとしたらlinux-imageとか削除されそうになったので1つ1つ消していきます。(apt-get remove --purge libほにゃららperlで)
gnome2は使ってない事が前提。

消せたもの

libalgorithm-diff-perl
libalgorithm-diff-xs-perl
libalgorithm-merge-perl
libanyevent-perl
libapt-pkg-perl
libauthen-ntlm-perl
libcairo-perl
libclass-accessor-perl
libconfig-file-perl
libdigest-hmac-perl
libevent-execflow-perl
libevent-perl
libevent-rpc-perl
libfile-fcntllock-perl
libfont-afm-perl
libglib-perl
libgnome2-canvas-perl
libgnome2-perl
libgnome2-vfs-perl
libgtk2-perl
libhtml-form-perl
libhtml-format-perl
libhtml-template-perl
libhttp-daemon-perl
libintl-perl
libio-socket-inet6-perl
libio-string-perl
liblist-moreutils-perl
libmailtools-perl
libmusicbrainz-discid-perl
libpango-perl

libparse-debianchangelog-perl

libperl5.14
libpod-plainer-perl
libregexp-assemble-perl
libsocket6-perl
libsub-name-perl
libtext-charwidth-perl
libtext-unidecode-perl
libtext-wrapi18n-perl
libtie-ixhash-perl
libwebservice-musicbrainz-perl
libxml-libxml-perl
libxml-namespacesupport-perl
libxml-sax-base-perl
libxml-sax-expat-perl
libxml-sax-perl
libxml-simple-perl

libyaml-tiny-perl

消せなかったもの

libclass-isa-perl
libdpkg-perl
libencode-locale-perl
liberror-perl
libfile-copy-recursive-perl
libfile-listing-perl
libhtml-parser-perl
libhtml-tagset-perl
libhtml-tree-perl
libhttp-cookies-perl
libhttp-date-perl
libhttp-message-perl
libhttp-negotiate-perl
libio-socket-ssl-perl
liblocale-gettext-perl
liblwp-mediatypes-perl
liblwp-protocol-https-perl
libnet-dbus-perl
libnet-http-perl
libnet-ssleay-perl
libswitch-perl
libtext-iconv-perl
libtimedate-perl
liburi-perl
libuuid-perl
libwww-perl
libwww-robotrules-perl
libxml-parser-perl
libxml-twig-perl