ザウルスをアンドロイドにしてあげる
本館 Android Zaurus
2010-10-15
Android起動時に自動起動するアプリで例外→リブートを繰り返す![Add Star Add Star](data:image/gif;base64,R0lGODlhEAAQAIABALrJ9f///yH5BAEAAAEALAAAAAAQABAAAAIojI+pm+APYQCIMlfZtLOvSEkexhmchXkjaHYlGpLpqrZNqbngnvd+AQA7)
![rgfx](data:image/gif;base64,R0lGODlhCwAKAPIHAPi5Sv3FVvjHZv7NafazK/i2Nv///wAAACH5BAEAAAYALAAAAAALAAoAAAMiaKqwvuQ5EJo0YYRZChkg0VlgCT5AaTlF0BaPJxiCyMZKAgA7)
![cha-cha-ki](data:image/gif;base64,R0lGODlhCwAKAPIHAPi5Sv3FVvjHZv7NafazK/i2Nv///wAAACH5BAEAAAYALAAAAAALAAoAAAMiaKqwvuQ5EJo0YYRZChkg0VlgCT5AaTlF0BaPJxiCyMZKAgA7)
![kinneko](data:image/gif;base64,R0lGODlhCwAKAPIHAPi5Sv3FVvjHZv7NafazK/i2Nv///wAAACH5BAEAAAYALAAAAAALAAoAAAMiaKqwvuQ5EJo0YYRZChkg0VlgCT5AaTlF0BaPJxiCyMZKAgA7)
| Android起動時にBOOT_COMPLETED*1を受信して自動起動するアプリがExceptionを吐いて死んでしまうと、システムが再起動を延々と繰り替えしてしまうケースがあるようだ。
fastbootを使って/dataを初期化*2してしまえばいいのだが、それも乱暴過ぎるという場合のバッドノウハウ。
サンプルのHomeアプリ*3などのホーム置き換えアプリのパッケージを起動時にインストールして、BOOT_COMPLETEDが流れる前にホーム選択ダイアログを出させてしまうという手段を使う。
$ adb wait-for-device && adb push home.apk /data/app/home.apk
この状態で例外を吐くアプリのパッケージを/data/appから消してしまえばいい。なお、samplesのHomeはまともに動かないので、デフォルトアプリには絶対にしていけない。
トラックバック - http://d.hatena.ne.jp/androidzaurus/20101015/1287118601
「fastboot」とか「adb push /data/app」とかいう環境ならHOMEアプリなんていらない。