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

再度ファームウェア更新した

そこそこの環境になってたけど、いくつか修正したい点があったので、
再度 ONDA v719 3G 四核 のファーム更新した。

今回の目的は、
  1. /system が読み込み専用でマウントされる。(リマウントも無理)
  2. 前回最後adbでroot権限が使えない状態だったが、やっぱroot要る。
  3. ext4のSDを自動マウント。
  4. ext4のSD上にswapファイル。
  5. appとかdataをext4のSDに移せるようにする。
前回は/systemをrwにできなかったが、/init.rcでのroリマウントの箇所を修正すれば解決するんじゃないかと。
adbでのroot権限には、/default.propの修正以外に、/system/xbin(パスが通ってればどこでも良いのか?)にsuを置く必要があるようなんだが、
前回の最後に、それの確認のためにsuは入れなかった。
/systemの書き換えができないならroot権限不要かと思ったが、今回は/systemを書き換えできるようにするつもりだし、やっぱ欲しい。

ext4のSDについては、SDをext4のみでフォーマットしてしまうと、androidで破損したSDと警告がでてしまう。
それで前回は諦めてたんだが、SDを複数パーティションにして1つ目をfat32でフォーマットしておけば、一部ext4のSDが利用できる事がわかった。
というわけで、諦めていた、appとdataのSDへの移動と、SD上にswap領域の作成を!

って感じ。

結果を書くと、/systemの書き込みに関してはダメだった・・・
他は全部うまく行ったぽい。
SDへのアプリ移動もroot権限必要だし、一応adbでroot使える意味はあるかな。



boot.img の修正


boot.img のアンパック
$ ./unpack-MTK.pl boot.img
boot.img-ramdiskにramdisk、boot.img-kernel.imgにカーネルが展開される。
boot.img-ramdiskの方はファイルシステムに展開された状態になるので、そのまま編集できる。
unpack-MTK.plは公式ぽいところから拾ってきた。


/init.rc の修正
「mount different fs start」のセクションで/systemのmount処理をしていて、ファイルシステム別に書かれている。
mount ext4 /emmc@android /system wait commit=1,noauto_da_alloc
とマウントして変更を加えた後に、
mount ext4 /emmc@android /system noatime ro remount wait
とroでリマウントしている。
ので、リマウントの行をコメントアウト。
にしようと思ったんだが、EXT4のりマウントはnoatimeオプション付きでリマウントしているんで、そのほうが良さそうだからroをrwに変更にした。
EXT4のみの変更で良さそうだが、他のファイルシステム用と思われる記述はリマウントをコメントアウトした。

同じようにrootfsもrwでマウントして変更をした後にroでリマウントされているので、リマウントの行をコメントアウト。

結果的に、この方法で /system の書き換えは無理だった・・・


/default.prop の修正
ro.secure=1
を、
ro.secure=0
前回は、
ro.allow.mock.location=0
ro.debuggable=0
の行も1に変更したが、ro.secureを変えれば最初からroot権限になると思うのでro.secure以外は変えなかった。


SDカード上にswapファイルの作成
SDのパーティションを3分割してswapパーティションを作ることも考えたが、
swapファイルの有無で判別してswaponするのにファイルのほうが良いと思った。
というわけで、16GBのSDを1番目を4GBのfat32、残り全部をext4、ext4の最上位に1GBのswapファイル。
とした。
SDの準備は母艦でやった。

# dd if=/dev/zero of=swap bs=1048576 count=1024
# mkswap swap
# chmod 0600 swap
1GBのswapファイル作成。
パーミッションが初期状態の644だとswapon時に警告が出るようなので600に変更した。


/enableswap.sh の編集
前回は /system/bin/preinstall.sh を修正して起動時に swapon していたが、
/enableswap.sh も/init.rcから実行されてて、名前的にswapはこっちだし、起動時に一度しか実行されないようなのでこっちに書くことにした。
このスクリプトでext4のマウントも行う。

#!/bin/sh
echo 0 > /sys/block/zram0/disksize
/system/bin/tiny_mkswap /dev/block/zram0
/system/bin/tiny_swapon /dev/block/zram0
となっているが、
#!/bin/sh
/system/bin/busybox sysctl -w vm.swappiness=60

echo 268435456 > /sys/block/zram0/disksize
#/system/bin/tiny_mkswap /dev/block/zram0
#/system/bin/tiny_swapon /dev/block/zram0
/system/bin/busybox mkswap /dev/block/zram0
/system/bin/busybox swapon -p 100 /dev/block/zram0

if [ -e /dev/block/mmcblk1p2 ];then
    mkdir /storage/ext4sd
    mount -t ext4 -o noatime,noauto_da_alloc /dev/block/mmcblk1p2 /storage/ext4sd
fi

if [ -e /storage/ext4sd/swap ];then
    /system/bin/busybox swapon -p 10 /storage/ext4sd/swap
fi
に修正した。
tiny_mkswapとtiny_swaponの使い方がわからないので、busyboxのコマンドを使うように変更した。
swappinessが100になってるんで、sysctlで60に変更。60がlinuxの初期値らしい。
「echo 0」だとzramが0byteになりそうな気がするんだが、初期状態だと512MBほどzramになっているようだったんで、256MB(268435456byte)にした。
swapon時に-pオプションでPriority(優先度)を設定。(zram優先)
/dev/block/mmcblk1p2 がSDカードの第2パーティションだが、通常SDカードをパーティション分割することはないと思うので、第2パーティションがあれば /storage/ext4sd にext4でマウント。
マウントしたSDのext4にswapファイルがあればswapon。


boot.img のリパック
$ ./repack-MTK.pl -boot boot.img-kernel.img boot.img-ramdisk boot.img.new
で修正したboot.imgがboot.img.newに出来上がるので、元のboot.imgと交換してFlashToolで更新できる。
repack-MTK.plはunpack-MTK.plと一緒に拾ってきた。



system.img の修正


system.img のアンパック
$ simg2img system.img system.img.tmp
でsystem.img.tmpに普通のext4ディスクイメージが出てくる。
simg2imgはArch AURのext4_utilsパッケージでインストールした。
ext4_utilsパッケージはPKGBUILDがARM専用になってるんでx86_64に修正する必要があった。


system のマウント
$mkdir system
# mount -o loop system.img.tmp system
で普通にマウントできる。
root権限でマウントしたら修正はrootで。


/system/build.prop の修正
ro.product.locale.language=ja
ro.product.locale.region=JP
persist.sys.timezone=Asia/Tokyo
言語とタイムゾーンの3箇所


不要アプリの削除
前回は以下のアプリを削除していたが、
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

以下のアプリはPlayStoreからインストールできるGoogleアプリと思うので追加で削除。
Maps.apk
Talkback.apk
QuickSearchBox2.apk
VoiceSearchStub.apk
GoogleTTS.apk
GoogleEars.apk

以下のアプリは代替品がPlayStoreからインストールできると思うので削除
Calendar.apk
Calendar.odex
CalendarImporter.apk
CalendarImporter.odex
CalendarProvider.apk
CalendarProvider.odex
Email.apk
Email.odex
Exchange2.apk
Exchange2.odex
Browser.apk
Browser.odex
ChromeBookmarksSyncAdapter.apk
とした。
Browser.apkとか削除したらダメな気もしたが、無事起動できた。

まだ削除を試したいアプリがあるが、それら次に機会があれば試す。


su のインストール
# cp su system/xbin/su
# chmod 0755 system/xbin/su
前回入れないで試したが、やっぱsuがないとadbでroot権限が使えない。
/default.prop の修正と合わせてsuを入れるとadbでroot権限が使えるようになる。


system.img のリパック
make_ext4fs -l 652900440 system.img.new system
これもext4_utilsパッケージで入るコマンド。
-lオプションでイメージサイズを指定だが、元のsystem.imgと同じサイズにした。




で、修正したboot.imgとsystem.imgでファーム更新したわけだが、
先に書いたように/systemの書き込みは無理だった。
  • adbでのroot権限
  • ext4のSDを自動マウント
  • SD上のswapファイルでswapの自動有効化
はうまく行ったぽい。

起動後はアプリのSDカードへの移動を試したが、ext4のSDが/storage/ext4sdにマウントされるんで、
mkdir /storage/ext4sd/app
mkdir /storage/ext4sd/data
chmod 0755 /storage/ext4sd/data /storage/ext4sd/app
chown system:system /storage/ext4sd/data /storage/ext4sd/app
で領域を作成。

前は/data/appと/data/dataをまるごとリンクにしようとして失敗したが、今回はアプリ単位での移動にすることにした。
試しに2chmateをPlayStoreからインストールして、
cp -a /data/data/jp.co.airfront.android.a2chMate /storage/ext4sd/data/jp.co.airfront.android.a2chMate
rm -rf /data/data/jp.co.airfront.android.a2chMate
ln -s /storage/ext4sd/data/jp.co.airfront.android.a2chMate /data/data/jp.co.airfront.android.a2chMate

cp -a /data/app/jp.co.airfront.android.a2chMate-1.apk /storage/ext4sd/app/jp.co.airfront.android.a2chMate-1.apk
rm /data/app/jp.co.airfront.android.a2chMate-1.apk
ln -s /storage/ext4sd/app/jp.co.airfront.android.a2chMate-1.apk /data/app/jp.co.airfront.android.a2chMate-1.apk
で、SDに移動して起動できたぽい。
端末再起動しても平気だった。
シンボリックリンクの所有者がrootになっちゃうが、
標準のchownには-hオプションがなくリンクの所有者変更ができず、busyboxのchownでも「unknown user/group」言われて無理だったが、rootのままで平気ぽい。


/systemの書き込みができないのを解決したいが、他に問題無さそうなら当面はこれで。

あと、今回はいじってないが、やはりdhcpでのIPアドレス自動取得が無理で静的にしないとネットが使えない。
ネットワーク上にdhcpdが2つあるとかはないんで端末側の問題なはずだが、解決方法がわからない。

FMラジオの日本周波数への変更も今回はいじってないが、解決方法がわかれば・・・

またv719のファーム更新したい・・・

先ほどAndroidの自ビルド試したのは、
またv719 3G 四核のファーム更新したいと思って、その前にAndroidを別バージョンにできないかと思ってのことなんだが、
まあ、自ビルドはめんどすぎたんで諦める。


今のファームでとりあえずは安定してるんだが、

/system/xbin/su を入れなかったんで、adbでroot権限が使えない状況なんでいじれない。
ので、次回はまたsu入れる。

root権限が使えたところで、/system のroを解除できないんでいじれないんだが、
/init.rc で/system をmountしてる箇所でrwにすれば書き換えできないか?
っての試してみたい。

それと、SDカードをext4にしちゃうと破損SDと言われちゃうからfat32にしたが、
SDにパーティションを複数作れば回避できるぽい事を知った。
それができるなら、断念してたSDにswapも再度やりたい。
アプリのSDへの移動もできるようにしておかないと、いずれ容量尽きるだろうし、この辺を対応させたい。

ONDA DesktopとかChromeとか、中華アプリでも必須な気がしたのは削除しなかったが、
その辺を削除して起動できるかも試してみたいんだが、何度も更新してるとnandに悪い気がして・・・


とまあ、そんな感じでやりたいとは思うんだが、
OS初期化後の初期設定も面倒だし、容量も今のところは不足してないから、
当面今のままでいいかなとも思う・・・
満足の行くシステムができちゃうなら早いとこやりたい気もするが、メーカーから新しいファームがきたりとかあるかもしれんし。

Androidのビルドをしようとしたんだが・・・

Androidのビルドをしようとしたんだが、
ソースのダウンロードに必要な容量がでかすぎた・・・

ビルド前のダウンロードでやたら大量に落としてて時間がかかるから容量確認はしていたんだが、
256GBのSSDで残り30GBのところで表示では13%空き容量が残っていたがディスク満タンでダウンロード失敗した。

で、諦めて削除しようとしたんだが、rmしようとしたらKDEが死んだ。
コンソールがまだ入力可能だったんでrebootしたが、ディスク満タンで起動できなくなった。
fallbackで起動できたんで、ダウンロードしてたAndroidのソースを削除したら、無事に起動できるようになった。


もうAndroidのビルドは諦めようと思うんだが、
いろいろインストールしてめんどかったし、入れた物の数が多くて削除も難しいからシステム汚れちゃったな・・・

しかし、表示だと空き容量が30GBもある状況でディスク満タンとか怖いな・・・

電源からコイル鳴きと思ってたんだが・・・

前にATX電源を交換してからコイル鳴きがひどかったんで、電源のコイルが鳴いてるのかと思ったが、
コイルをホットボンドで固定しようとして確認したが、
どうも電源ではなくマザーボードのUSB周りから音が出てるぽい。
マウス動かした時が特にひどい。

んで、マザーボードのコイルは全部箱に入ったやつなんでホットボンドで固定できない。
ATX電源を交換してか発生するようになったんで、ATX電源の5Vが安定しなくてマザーのコイルが鳴く感じだと思うが、
マザーのネジが2箇所止めてない箇所があったんで止めてみた。
まあ、変わらなかった・・・

電源自体は静かぽいんだが、
電圧が安定しないとマザーの方が鳴くってこともありえるんだね。
マザーと電源の両方が悪い感じだと思うが、組み合わせるまでわからないな・・・

異音が収まらないなら電源の買い替えも考えてたが、
マザーはいずれ買うから、それで良い物つかめば解決しそうだな。

セリアでグルーガン買ってきた

前に買ったKEIANの80PLUSのATX電源なんだが、コイル鳴きがひどい・・・
日々騒音に悩まされていたんだが、コイル鳴きは振動源のコイルをホットボンドで固めてしまえば鳴らなくなる。
というわけで、ホットボンドを購入しようかと思ってたんだが、
「グルーガン」という名称でセリアに100円で売ってるとの情報を入手!
100円ショップのセリアには、度々100円で売ってることに驚かされる商品が見つかるが、本当に100円で売ってた!

工具ではなく手芸用品のコーナーに置いてて、ボンドは別売りだが20本で100円なので安い。
延長コード必須なほどコードが短いと聞いてたので、延長コードも購入。

あと、お茶っ葉入れる容器を購入しようと思ってたので、それも購入と、
12段階角度調節のできるタブレット・スタンドが売ってたんでそれも購入。
タブレットやスマホのスタンドは種類がいくつもあった。
以前購入した100円スタンドよりも良い感じ。

他に、先日、防寒コーナーでスマホ対応手袋を購入したが、
防寒コーナーでなくて工具売り場にスマホ対応軍手が売ってた。
以前購入したスマホ手袋がいまいちだったんで、軍手の購入を検討したが、軍手もダメだろうからやめた。
使ってると劣化して感度が悪くなっちゃうと思う。

ほうじ茶吸ってみた

すぎな茶に続いて、ほうじ茶も試してみた。

荒く裁断された状態だったが、この前吸った緑茶と同じように硬かった。
巻きにくそうだったから、たばこミキサーで砕いたが、粉っぽくなった。
で、たばこミキサーじゃ砕けない分が出てくるから、緑茶と同じく硬くて巻きにくかった。

燃え方は良い感じ。
巻紙はスーパーファインで良さそう。

味は緑茶と違って苦くなくて良い感じ。


お値段は、200gで345円と安い。
問題は巻難さだね。
ブレンドして巻きやすくするか、加湿して巻きやすくなる?か・・・

購入したお茶は、あと烏龍茶があった。
また今度試す。

すぎな茶吸ってみた

先日買ったお茶が、すぎな茶とほうじ茶は閉じれない袋に入っていたので試してなかったが、
すぎな茶の方開けちゃった。

棒状に細く千切りにされてたんで巻きにくいかと思ったが、簡単に巻けた。
以前緑茶巻いた時は同じように細い棒状で巻きにくかったが、形状よりも硬さが問題なのかも。

最初火をつけた時に煙がよく出てツーンときたんだが、よく燃えたのは先端だけで、火が消えやすい感じ。
今回も燃焼の弱いスーパーファインの巻紙だが、レギュラー燃焼の巻紙のほうが良さそう。
まあ、そこらは葉っぱの形状と巻き方にもよるのかもしれない。

味の方はスギナも無味。
今まで試した中では、一番癖がなくて良さ気かも。
今のところ、緑茶以外は無味で不味くはない感じ。
たばこも本来無味だと思うが、なにか味付けしたほうが美味しいかもね。

スギナはタバコ以外でニコチン含有の植物らしいが、ニコチンは喫煙者に必要ではないと思う。
煙が出て吸えれば、ニコチン無しでも満足感は得られる。


お値段は、200gで777円。
200gだと1カートン分くらいだね。

柿の葉茶吸ってみた

よもぎ茶に続いて、柿の葉茶吸ってみた。

店によるだろうけど、かなり大きく裁断された状態なんで、
たばこミキサーで砕かないと巻けない状態だった。

かなり燃焼しやすい感じ。
本たばこよりもよく燃えるかも。
あと、先端から火が落ちやすいぽいんで、火事とかやけど注意かも。

これも味は無味に近いが、落ち葉っぽい?雰囲気があるかも。


お値段は、100gで345円。
よもぎ茶よりは安い。

よもぎ茶吸ってみた

何種類かお茶買ってみたんで、まずよもぎ茶吸ってみた。

以前吸ってみた緑茶は、細く尖った状態で裁断されていて、硬さもあるのでローラーで巻きにくかったが、
店によるかもだが、今回のよもぎ茶はタバコに近い感じで裁断されていて、ミキサーも使わずそのまま巻きやすい感じだった。

今回も弱燃焼のスーパーファインのペーパーで巻いたが、十分吸える程度には燃焼する。
レギュラー燃焼のペーパーのほうが良いかもではある。

味の方はほぼ無味。
緑茶のように苦くはないので、不味くはない。
発酵させずに乾燥されていると思うが、加湿で美味しくならないかな?


って感じ。
巻きやすく、十分燃焼するので、本タバコとのブレンドにも良いかも。

今回は100g購入だが、561円するので結構高い。
タバコの半分から1/4程度の値段かね。

よもぎ以外に、柿の葉茶、ほうじ茶、ウ-ロン茶、スギナ茶も購入してある。
柿の葉が閉じれるパックなんで次に試してみようと思う。

「浮遊時計」ってアプリ入れた

新タブにして、Androidのステータスバーが上表示で、ゲームやる時に消されて時間がわからず困るので、
「Smart Statusbar+」というフルスクリーン時でも上部のステータスバーを表示できる有料アプリを購入したが、
時計が隠れるのが問題なので、「浮遊時計」って時計だけを常時表示にできるアプリのほうが良い感じかも。

似たようなアプリはいくつかある様で、電池残量の表示もできるのとかもある。
「Smart Statusbar+」だと、上部がステータスバー用の領域になって、フルスクリーン中のアプリの操作に問題がある感じ。