ジャンル不定の日記です。

有料アプリ買ってしまった

新タブレット、だいたい良い感じになってきたんだが、
最近のAndroidは通知とか時計とかが表示されるバーが上にあって、ホームとかボタン系は下のバーにあるのね。
縦長画面なら良いのかもしれないが、ただでさえモバイルで画面小さいのにバーが2つも表示されちゃうんじゃ、横長画面だと非合理だね。

それだけならまあ許容範囲なんだが、
ゲームやる時に時計が表示されなくて致命的に困るわ。


というわけで、本当は前みたいにバーは下1本がいいんで、
設定等で以前のUIに戻したり、Androidのダウングレードを調べたが、わからなかった。

で、そういうことができるアプリないか探したが、
フルスクリーンアプリの上部がバーの分隠れてしまうが、
Smart Statusbar
StatusBar in FullScreen
ってアプリを見っけた。

まず Smart Statusbar の方を使ったが、
フルスクリーンでバーが消えてる時に、画面上部の本来バーがあるべき場所を触って下に引っ張ると一時的に出てくる。
自動的に消える。
良い感じではあるが、常時表示が良い・・・

StatusBar in FullScreen の方は、アプリ起動すると常時表示になって、
もう一度起動すると非表示になる。
どっちかって言うと、こっちのほうが良いかな。

ってな感じだったんだが、
Smart Statusbarの方は有料版の「Smart Statusbar+」ってのがあって、
有料版だと自動じゃなくて手動で消すようになる機能があるらしい。
というわけで有料版を見たが、147円と安かったから買っちゃった。
フルスクリーン中に引っ張って表示すると、通知のところに消すボタンが出てきて、それ押すまでバー出たまま。
ただ、通知の一括削除しちゃうとボタンが消えて、再起動しないと閉じれなくなっちゃうみたいw

前みたいにバーが下だけのUIなら一番いいんだが、とりあえずSmart Statusbar+で行く。


あと、新タブにしてから、「Nova Launcher」ってアプリ入れた。ホーム画面のアプリ。
元々「Onda launcher」ってのが入ってたが、「Top Apps」ってのとカレンダーのアイコンがホーム画面から消せなかったんで。
使い勝手もNovaの方が良い感じ。

1.0.1でカスタムした

1.0.1でファームウェアのカスタマイズした。
無事にメモリ1GBで中華アプリ消した状態で初期化できた。

他に無線LAN接続の際にDHCPでIPアドレスが取得できない問題があったが、
そちらの方は同じで静的でしか繋がらなかった。


今回のファームカスタマイズは、
メモリ増えたことだしスワップ有効化はとりあえず無しにした。
頻繁にアプリ落ちるようならまた更新することにする。
元からzramってのでswapもどきが作られてるが、実メモリをスワップ化って意味あるのか?

あと、/default.propの変更だけでadbでroot権限使えるか試すために、
/system/xbin/su 入れずに作った。
やっぱroot権限使えない。
root権限使うには、/default.propの修正+/system/xbin/suが必要ぽい。
こっちも必要なら作りなおす。

メモリ増えたー

ONDA v719 3G 四核で、リビジョンがV3版なんだが、
公式の V719_3G_Core4_v1.0.4_v3.zip をベースにでファームウェアをカスタマイズしてて、
気づいたらメモリが半分程度になっていることに気づいて、カスタマイズしない状態で入れなおしても復活しなかった。

ONDAのサイトにはV3版のファームは1.0.4しかないんだが、
リンク先の配信サイトで「v719」で検索したら、 V719_3G_Core4_v1.0.1_v3.zip が存在した。
こっちが出荷時のファームぽい。

で、今カスタムせずに1.0.1のファームで初期化したらメモリ1GBになったわ。

V719_3G_Core4_v1.0.4_v3.zip でfree(total)
Mem:        474060

V719_3G_Core4_v1.0.1_v3.zip でfree(total)
Mem:        993732


メモリ1GBの端末のはずが512MBぽい量しか無くてパニクったわw

ちなみに、V719_3G_Core4_v1.0.1_v3.zipだと、OS上ではv2になってる。
1.0.4は表示安定性を高めたとのことだが、そのためにメモリ半減は痛すぎるわw

内部ストレージにスワップ作ることにした

v719 3G 四核が、最初は物理メモリ1GBぽかったんだが、
どういうわけか気づいたら物理メモリが512MBぽい量しか認識してないんで、
やっぱ追加でスワップ作ることにした。

当初の計画ではスワップをSDカード上に作ろうと思ってたが、SDカードをext4で使うのは問題ありな感じなんで、
/storage/sdcard0
上に作ることにした。

起動時に
/system/bin/preinstall.sh
が実行されるんで、
if [ -e /storage/sdcard0/swap ];then
    /system/bin/busybox swapon /storage/sdcard0/swap
fi
と書き足して、
/storage/sdcard0/swap
が存在する場合はswapon

ってな感じで、
/systemのりマウントもできないので、
system.imgを修正して再度ファーム更新。

端末起動してから
adb shell dd if=/dev/zero of=/storage/sdcard0/swap bs=500000 count=1024
adb shell busybox mkswap /storage/sdcard0/swap
として、スワップファイルを作成。

再起動して、起動時にswaponできた。

メモリ容量がおかしい・・・

v719 3G 四核 のアクティビティがすぐ落ちるんで、freeコマンドでメモリ確認してみたんだが、
Mem:        474060
あれ・・・
端末届いてすぐ確認した時は1GB搭載ぽい数値が出てたんだが、512MBしかなくね?

ファームいじってて壊れたのかと思ってまっさらな公式ファームで書き直したが、変わらない・・・
最初に確認した際は公式ファームじゃなくて、ショップのファームだった。
v719 3G 四核は1GBメモリで4コアなんだが、
CPUの方も/proc/cpuinfoでMT8382(4コアCPU)なんだが、2コアしかないような・・・
スワップ足せば1GBぽい数値になるし、偽装スペック?


あと、今までファーム更新に、同梱のFlashToolが説明書と違って使い方がわからないんで別途用意した説明書と同じバージョン使ってたが、
ファームに同梱のFlashToolを使って焼いた。
同梱のFlashToolは初期状態で中国語だが、メニューバーの左から2番目のとこから設定ができて英語に変えられる。
セレクトボックスで、「Firmware Upgrade」にして「Scatter-loading」で「MT6582_Android_scatter.txt」を選択。
「Download」を押して、USBケーブルに端末をつなぐと書き込みが始まる。
母艦用のUSBドライバは同梱されていないので「Mediatek USB VCOM」のドライバを別途用意する必要がある。

/systemがremountできない・・・

ONDS v719 3G 四核 でFMラジオ使ってみようと思ったんだが、聞けない。

で、
/system/etc/fmr/mt6627_fm_cust.cfg
が設定ファイルぽいんで調べたが、
FMR_BAND_FREQ_L = 875
FMR_BAND_FREQ_H = 1080
と設定している外人を見っけた。

875と1080ってのは、恐らく87.5MHzから108.0MHzの設定。
海外じゃFMの範囲はその範囲らしく、FMラジオアプリでもその範囲にしか合わせられない感じ。
FMラジオが聞けないのは、周波数の範囲が日本にあってなくて合わせることができないからじゃないかと思った。

だから、日本に合わせて、
FMR_BAND_FREQ_L = 760
FMR_BAND_FREQ_H = 900
とすれば聞けそうな気が!


なんだが、今修正しようとしたら、
いつも通り /system が読み込み専用で書き換えができなかったんだが、
remountができない・・・

ちょっと前は公式ファームからツール使ってsuとか入れていつの間にか#できるようになった時はremountして修正できたんだが、
たぶん、今の自力でroot権限使えるようにした状況では/systemいじってないな。
どこいじればremountできるようになるんだろうか・・・

わかんなそうだから、またファーム更新かなあ・・・
system.imgだけの更新ってのも試してみようかな。

Google 2段階認証のアプリケーション固有のパスワード

さっきGoogleの2段階認証設定したんだが、
設定したらKmailが接続できなくなったようで再ログインのダイアログが出てきた。

で、2段階認証するとHTTP以外での接続だとGoogleのサービスが使えないわけで、
そういう時のために「アプリケーション固有のパスワード」というものが設定できる。

が、これ凄く危ないだろw
ログイン用のID(メールアドレス)と、アプリケーション固有のパスワードとやらの組み合わせで、
普通にGoogleにフルアクセスできるらしい。
パスワードはランダム生成で16桁と、普通の強度しかない。
これ一個でも設定しちゃったら2段階認証の意味がないどころか、
パスワードが増えちゃって2段階認証使わないよりも危ないだろw

というわけで、KmailでGmail使うのは諦めて無効にした。
んだが、なんか無効にしたのに受信できてるぞwww
いつ無効になるの・・・

無線LANにつながらない・・・

初期設定も終わった感じだし、そろそろPlayStoreに・・・

と思ったら、ルータに無線接続しようとしたら、
「IPアドレスを取得中」
で止まって繋がらない・・・
ルーターの方ではDHCPでリースされてる。

ググったらどうもAndroidで同じようにDHCPで繋がらない人が多いようで、静的アドレスで解決してる人が多かった。
端末側の問題だと、この方法だと外出中に使おうと思ったら困るけど、とりあえず固定IP設定した。
繋がった。

SDカードにリンク張るのダメだった

SDカードにリンク張るのダメだった。
ext4のSD上に /data/app 同じ状態でコピーしてリンク張ってみたが、再起動したらアプリが消えてた。

というわけで、ext4のSDだと破損しているとか言われちゃうし、SDカードを内部ストレージにするのは諦めた。
あと、端末届いた状態ではswapは存在しなかったんだが、公式ファームだと最初から400Mほどswapが有効だった。
/enableswap.sh ってスクリプトがやってるのかな?
ファームの容量変わるとサイズ変動するような気がするから、空き領域がswapになるのかな?
リアルメモリも1GBあるわけだし、swapが400MBあれば問題無さそう。
SDをFATにすれば普通に使えるし、SDをext4で使うのはやめるわ。


後、いつの間にかadbが普通に#になってたんだが、
SDのリンク作業でアプリ消えちゃったから再度ファーム作りなおして更新したが、
その際に、ツールで入ったと思われる、
/system/xbin/su
/system/xbin/sugote
を最初から入れといたんだが、
そうしたらツール使わない状況で最初から#になったわ。

怪しいツール使わずroot化出来てだいぶ良い感じになったが、
/system/app に入ってるアプリがほぼ消せないぽいんで、/data/app に入れたら消せないかな?
というわけで、再度ファームのカスタマイズ。
なんだが、/system/appには、.apkだけのと.odexが存在するのがあった。
とりあえず、.apkだけのは移動して平気と思ったんで全部移動。
したら、端末起動しなかったw
移動させたのがまずいのか、userdata.imgのりパックに問題があったのかはわからない。

再度ファーム更新が必要になったが、
今度は、/system/app内にある中華アプリと思われるものをrmして作った。
そしたら中華アプリ無しで起動した。
この方法でいいわ。
/data/appの方は端末上で普通に消せるんで、userdata.imgは公式ファームのものに戻した。

だが、この回のファームカスタマイズの際に、
/system/xbin/su
/system/xbin/sugote
を入れずにやったからだと思うんだが、
adbが$になっちゃった・・・
adbってsuで起動するん?

というわけで、再度更新。
まあ、良い感じになってきたんで、手順書いとく。



boot.imgのカスタマイズ。
公式ファームのboot.imgは、unpack-MTK.plというスクリプトでアンパック、repack-MTK.plでリパックができた。
たぶんここが公式。

./unpack-MTK.pl boot.img
でアンパック。
カーネルが boot.img-kernel.img に出力され、
ファイルシステムが boot.img-ramdisk に展開される。

/default.prop の変更は、
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
の3箇所。
変更目的はadbを#にすることだが、この変更意味ないかも・・・

boot.img の変更は以上なのでリパック。
./repack-MTK.pl -boot boot.img-kernel.img boot.img-ramdisk boot.img.new
とすれば、カスタムイメージがboot.img.newに出来上がる。
オリジナルがあった場所に置いて、MTKのFlashToolで書き込める。


system.imgのカスタマイズ。
今度は simg2img でアンパック、 make_ext4fs でリパックできた。
この2つは ext4_utils ってパッケージみたいなんだが、母艦がArchでAURにあったからそれ使った。
だが、AURにあるやつはPKGBUILDがARM専用になってるんで、PKGBUILDを、
arch=("x86_64")
に修正する必要があった。

simg2img system.img system.img.tmp
で、普通にマウントできるext4のイメージが system.img.tmp に出力される。
mount -o loop system.img.tmp mnt
って感じでディレクトリにマウントできる。

マウントポイントが/systemになるわけだが、build.propを、
ro.product.locale.language=ja
ro.product.locale.region=JP
persist.sys.timezone=Asia/Tokyo
の3箇所を修正した。
これで起動時に最初から日本語で日本時間になる。

system.img内のappディレクトリは、ほぼ端末上で消せないアプリなんで、rmで消す。
中華アプリと思われる以下のapkを消した。
ONDA_AnZhi_V5_1_20140124.apk
ONDA_QQ_IME_v42.apk
ONDA_Tudou_v3.1_1223.apk
ONDA_WpsOffice_v59.apk
ONDA_iReader_V2720_20140106.apk
OndaHelp_20140415.apk
UCBrowser_V3.0.0.apk
game.apk
acount.apk
OperaService.apk
userdata.img内にあるapkは端末上で普通に消せるので、それと合わせて不要な中華アプリはほぼ消せたが、まだ若干ありそう・・・
まあ、残りは端末上で無効にするだけにしておく。

system.imgの修正は、他に、
xbinにsuとsugoteを入れた。
adbが#なのか$なのかは、/default.propではなく、suかsugoteの存在な気がする。
いまいち条件がわからないんだが、このバイナリがないと$になっちゃっうぽかった。
この2つのバイナリは怪しいroot化ツール使ったらいつの間にか入ってたんでバックアップしといたやつ。
使ったら入ってたツールは、「SuperOneClick」ってやつじゃないかと思う。

以上でsystem.imgの修正は終わり。
make_ext4fs -l 734003200 system.img.new mnt
って感じで、system.img.new にカスタマイズした system.img が出力される。
-l オプションは出力されるイメージのバイト数だが、小さすぎても大きすぎてもダメだと思う。
simg2imgで出力される生イメージと同じ程度にしとけば良さそう。


ファーム更新ができたら、端末上で普通に消せる中華アプリの駆除。

build.propの編集

先ほどやってた adb uninstall でのアプリ駆除だが、やっぱダメらしい。
消せるとこにあるのだけが消せるぽい。
adb root が一番使いたいなあ・・・
シェルから一発で消す方法もあるのかな?

最初からいたかわからないが、Clean Master ってアプリが入ってて、
これはSU対応みたいなんでユーザー権限の adb uninstall よりは消せるの多そう。


で、時刻がズレまくりだったんで、タイムゾーンの設定とかで /system/build.prop を編集することにした。
ro.product.locale.language=ja
ro.product.locale.region=JP
persist.sys.timezone=Asia/Tokyo
とりあえず変更はここだけかな?

adb pull /system/build.prop
母艦で編集
adb push build.prop /sdcard/build.prop
adb shell
/system/xbin/su
mount -o rw,remount /system
rm /system/build.prop
cp /sdcard/build.prop /system/build.prop
chmod 0644 /system/build.prop
reboot
以前のvi10の時に経験あるが、build.propはパーミッションが644じゃないと起動しなくなるかも。


ファームウェアの方でapk削除してからインストールするのを考えてたが、
adb root する方法もわからないし、既にかなりファーム更新やってるんで、apk駆除し忘れとかで更新回数増やしたくない。
当面今のままで調整していくかな・・・