apktoolでアプリのパッケージ名を変更する
たとえば、「com.noshufou.android.su」というパッケージ名のアプリがあったとします。
何かこのパッケージ名では都合が悪い事象が発生した場合にちょっと名前を変えたいなーでもソースがないから変更できないなーというお思いの諸兄!
なんとかして apk ファイルを取得して、なんとかして apktool d Superuser.apk してばらせたと仮定します。
新しいバージョンだと新しい framework-res.apk が必要になるかもしれません。Android 3.2とか?
そんで、手段は問いませんがばらしたディレクトリ内すべての*.smaliと*.xmlの「com.noshufou」を「c0m.noshufou」に置換、「com/noshufou」を「c0m/noshufou」に置換します。まあ名前はどうでもいいんですが諸事情により文字数は変わらないほうが良いと思います。
個人的には YokkaSoft さんの NoEditor に付属の YokkaGrep を使ってますけど、使いやすい方法でいいと思います。
合わせて smali ディレクトリ内の「com」ディレクトリを「c0m」にリネームします。
その後 apktool b Superuser でビルドして dist ディレクトリ内にできた apk ファイルを適宜署名すれば完成です。
簡単でしょ?
[電話] Skype for Android がビデオチャットに対応したりしなかったりさせたり
Microsoft に買収されることでおなじみの Skype さんですが、Android 版も待望のビデオチャット対応です。
※ただし特定の機種に限る
- Google Nexus S
- HTC Desire S
- Sony Ericsson Xperia neo
- Sony Ericsson Xperia pro
4機種だけかよ。
Galaxy SII 対応してないよ!!!
ご承知のとおり、Galaxy SII はフロントカメラが200万画素で今まで類を見ないまともなフロントカメラがあるのにビデオチャット対応してないとはどういう事だ!
よろしい、ならば改造だ。
[電話] Galaxy SII GT-I9100でフォント切り替え
最近体調悪くて日本語がまとまらないのでご了承ください。
rootとか関係なく元々の機能としてフォントを変更できるんですよ。
そうそう。FlipFontっていうんでしたっけ?
基本的には DroidSans.ttf を差し替えるみたいですね。なので基本的に英語フォントしかマーケットで売ってません。Samsung絡みなのでハングルのフォントも売ってますけど…
で、グローバル版は日本語フォントであるところの DroidSansJapanese.ttf が入ってないので DroidSansFallback.ttf の統合漢字にやられちまって↓のようになります。
んで、自作のフォントアプリをインストールした状態が↓
なんでかATOKは変換候補のフォントが機嫌悪い。IS05でも DroidSansJapanese.ttf を読みやがっていらついた記憶が戻ってきた。
もともと入ってる /system/app/Choco.apk みたいなフォントが入ったファイルを弄るんですが、単純にフォントを差し替えればいいって話じゃなくて、そのフォントのファイルに署名が必要ってことがポイントです。なので、Font Creatorみたいなツールで中身を差し替えたりします。
あとは apktool でバラして元々の名前とアプリの名前(com.monotype.android.font.ほげほげ)が被らないように変更してビルドして署名すれば普通にインストールして使えるようになりましたとさ。
ちょっと体調が悪くて参考にしたメージが見つからないので、くろぺんさんまとめてくれるのを期待しましょう。
おやすみなさい。
[電話] LG Optimus 2X dexoptをなんとかしてパフォーマンス改善
正直なにがどうしてパフォーマンス改善されるのかよく理解していませんが
Paul 曰く
LG screwed up – bad – here’s why your UI is jerky! – Android @ MoDaCo
LGの罠のおかげで常時エンジニアリングビルド状態で処理されていて、デバグには良いけど通常使うにはオーバーヘッドが大きいですよとのこと。
[FIX] 6 Apr V10a/b/c: dexopt fix for Stock ROMs – xda-developers
上記で改修済みの services.jar を配布しているんですが、うちのは ro.build.date.utc=1300176817 なので対応バージョンがないよ!
しょうがないので、参考にしつつ /system/framework/services.jar を apktool でバラして PackageManagerService.smali を弄りましょう。
具体的には
.line 733 const/4 v5, 0x1
これを
.line 733 const-string v5, "eng" const-string v6, "ro.build.type" invoke-static {v6}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String; move-result-object v6 invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v5
こうして
apktool b services でできた classes.dex を元の services.jar に戻すみたいないつもの感じです。
そのうち Paul が対応バージョンを出してくれると思うので、よくわかっている人以外はそちらをお待ちください。
services.jar は重要なファイルですから無思慮にほいほい書き換えたら起動しなくなるよ!
※ const/4 v5, 0x0 でええやん?みたいな気もします。
さて、ちょっと使ってみた感じでは引っ掛かりのようなものがなくなったプラセボ気分。
元々ものすごく速いので、そんなに気にならないというかなんというか…
あ、ベンチは変わりません。4300が5000になったりはしてないのであしからず。
[電話] Huawei IDEOS U8150のFMラジオを日本周波数対応にできるといいな→駄目でした
日本周波数シリーズの新作です。
過去にはXPERIA X10 mini proとGalaxy S GT-I9000を日本周波数対応にしたことがありんす
実機がないため動くかどうかわかりかねますので予めご了承ください。
端末内にあるFMRadio.apkを頑張って探してください。持ってないので分かりませんが、/data/cust/app/FMRadio.apk にあるのかな?
例によって apktool で分解
今回のキーワードは87.5MHzなので、そこら辺の想像力を働かせて smali 以下を8750を16進数にした「0x222e」で検索するとずらずら出てくる。
「isFreqValid()」なんていかにもな関数の中で if-ge で 0x222e より大きいか判定してたりするのでこいつが下限の周波数だと分かる。
なので、「0x222e」を76MHz→7600→「0x1db0」で全部置換して apktool でビルドするとよか。
署名とかそこら辺の話は頑張って解決してくださいまし。
さて、これからちょっとビックカメラ行ってくるのでひょんな事で実機で検証するかもしれませんよー
買ってきたんですが結果としては駄目でした。
手入力判定部分(isInvalidFreq)も書き換えて数字は通るようにしたんですがもっと下の方でエラーが出てるようです。
難しいなコレは…