2011年11月15日

CFW作成スクリプトについてのメモ

novo7 basic 用 CFW を出したわけだが、これはもともとスクリプトで組んでいる。
手動でやっていると、新しい ファームウェア が出た時に面倒になったり、なにか入れ忘れたりするから、スクリプトに覚えさせて 何度でも再現できるようにしているわけだ。

このスクリプトを 新たに作りなおして公開することにした。

  • http://nmj.sumomo.ne.jp/my_cfw/mkcfw-n7b-2.1.zip (最新)

      主な変更点:

    • Dalvik Turbo VM -- Fruit Slice などが動かないため、デフォルトから外した。
    • YouTube.apk , Vending.apk -- osakanataro 氏 CFW 10/18 日版を ベースに。(sys_app に置いた)
    • mips 版 su(3.0.1) + Tasselhof-RootScript版 Superuser.apk (一応動く模様)
    • nicoWnnG の更新方法を変更。
    • osakanataro 氏版 busybox を とりあえず xbin/unzip として置いた。
    • VpnService.apk など不要そう システムアプリをアンインストール (/system/app-removed に移動)

  • http://nmj.sumomo.ne.jp/my_cfw/mkcfw-n7b-2.0.zip
  • 下記の mount の問題に対応したスクリプト : mkcfw-2.0a.sh

    ものはこれ。Linux マシンを誰もが持っているわけではないので、今回 実機でも動かせるように作りなおした。そのかわり Linux でやる場合には busybox のインストールが必要になる。

    実機での動作確認はまだなのだが、近い環境ではテストした。たぶん動くはず。

    これを使って、10/29 版の ファームウェアから CFW を作ると osakanataro 氏の nicoWnnG と RootKit が入り、入れ忘れた TurboFly3D も入る。あと heapsize も 40m になる。また、想定外の変更は入らないことも確認した。

    11/08 版に対しても、同じ変更内容の CFW は生成できた。(動作確認はまだ)

    使い方は、(動くのならば) CFW を入れた 実機の方が簡単。

      SDカードに解凍して、そこに オリジナルの system.img を置く
      adb で 解凍したディレクトリ にある スクリプトを実行する。

    これだけで、system-out.img/userdata-out.img というファイルが出来あがる。新しい ファームウェアだと 添付されている boot.img と合わせて ファームウェアを書き込めば OK 。( recovery.cpio.img を取り出し忘れたのだが、古いので代用できる )

    たとえ(CFW の生成が)動かないとしても、所詮はスクリプトなので、多少の知識がある人ならば自分で直せるだろう。

    env というファイルに いくつかの設定があるので、いくつかのパターンで CFW が作れる。これでより多くの人に試してもらって、次の CFW を仕上げたいと思う。興味がある人は是非試して欲しい。

    README も入れておいたので、読んでおいて欲しい。

    追記: ようやく実機で試せたのだが、

    mount: cannot setup loop device: No such file or directory
    cannot mount

    というエラーが出た。これは、/dev/loop0 とかがないため。しかも umount しても自動では 開放してくれないので、次々と loop デバイスを使ってくれる。

    mknod /dev/loop0 b 7 0
    mknod /dev/loop1 b 7 1
    mknod /dev/loop2 b 7 2
    mknod /dev/loop3 b 7 3
    mknod /dev/loop4 b 7 4
    mknod /dev/loop5 b 7 5
    mknod /dev/loop6 b 7 6

    こうやって作らないとダメだった。

    losetup -d /dev/loop0
    losetup -d /dev/loop1
    losetup -d /dev/loop2
    losetup -d /dev/loop3
    losetup -d /dev/loop4
    losetup -d /dev/loop5
    losetup -d /dev/loop6

    終わったら、とりあえずこれやって開放しないとダメ。(busy でエラーになるのが出るかも、でも他のアプリなので気にしない。)

    あと REDME.txt にも書いたが、busybox sh で起動する。

    以上の対策で作れることは確認。で、次 ...

    11/08 版で試したが、一応立ち上がって来た。言語の設定を直したので、端から日本語になっている。(とは言え多言語対応ではなかった。一回 英語にしたら MoreLocale2 のお世話になることに。)
    とりあえず、動かないらしい TurboFly3D を試したが、やっぱりダメ。ただ 強制終了ではなく、突然終了している。メモリは関係なさそう。heap 40m にしても レポートと変わらない感じ。

    カメラの collor effect というのを試したが問題なさそうな気が。

    Superuser はよく分からない。使えるアプリもいまのところ持ってないし。

    とりあえず、対策は必要なものの、実機だけで動くものは作れることは確認できた。

スクリプトについてのメモ

    実行環境

    このスクリプトは、実機 / Linux マシン / qemu-user 環境 の 3 つで動かすことができる。

    ただし、環境の差異は env という設定ファイルで行っている。これについて

    REPLACE_DIR=/system # for self environment
    REPLACE_DIR=`pwd`/../system #
    #BASE_DAT_FILE=$REPLACE_DIR/userdata.img
    BASE_DAT_FILE=`pwd`/userdata-v65-20111111.img

    IN_NIB_FILE=`pwd`/RK43A_60BWFRT_RAMOSV65_20110817_1.bin
    IN_SYS_FILE=`pwd`/system.img
    IN_DAT_FILE= # extract automatically from system.img
    OUT_SYS_FILE=`pwd`/system-out.img
    OUT_DAT_FILE=`pwd`/userdata-out.img

    これは、一番最後に作った V65Pro 用の設定の例

    • REPLACE_DIR

      CFW 11/11 版の system.img を mount または展開したディレクトリ。実機なら /system だが、Linux マシンの場合 は、mkcfw-xx を展開したディレクトリの横に system を 展開していることを想定している。

      CFW では、フォントやら システムアプリやらいろいろコピーしているので、ここからまずコピーする。

    • BASE_DAT_FILE

      CFW の userdata.img の指定。novo7basic 用なら userdata.img をコピーしているので、$REPLACE_DIR/userdata.img で良いのだが、v65pro 用だとコピーしてなかったので、別途指定が必要。

      これ自体がベースで、ベースファームウェアからいくつかのファイルをコピーするような動作になっている。、

    • IN_NIB_FILE

      ベースファームウェアの指定で、A3 / V65Pro 用のみにある。ここから専用のコマンド split_nib を使って system.img を取り出している。

      $IN_NIB_FILE が存在しないと system.img を使おうとする。

    • IN_SYS_FILE

      ベースファームウェアの指定(2) 。

    • IN_DAT_FILE

      これはベースファームウェアの userdata.img の指定なのだが、system.img から取り出すようにしているので、無指定にする。

    • OUT_SYS_FILE, OUT_DAT_FILE

      生成する CFW のファイル名の指定。変更してもかまわない

    • PATH=/system/bin:/system/xbin:$PATH

      上の例に出さないが PATH を変更しているところもある。これは、後述の qemu-user 環境用。他の環境でも効いてしまうが、影響がないことを期待している。

    qemu-user 環境

      これは何かというと ... 実機と同じ ファイル・ツリーを Linux マシンに構築して、それを chroot して動かすという エミュレーションの環境。

    • ファイル・ツリー の構築。

      たぶん CFW の system.img を TOP/system にマウントするだけで良いと思うのだが、boot.img から 取り出した ramdisk を TOP に展開している。

      ramdisk のイメージは、 src に置いた split_bootimg.c を使って 取り出し、

      # zcat boot.img-ramdisk.gz | cpio -id

      で展開。

      その上で、qemu-user-for-x86_64.tgz を展開する

    • chroot

      # chroot /system/bin/busybox sh

      こんな感じで、その環境に入る。

    設定について

    APPLY_TURBO_VM=yes
    APPLY_LARGE_HEAP=no
    APPLY_EXTERNAL_BROWSER=yes
    APPLY_ROOTKIT=yes
    CLEANUP=yes

    これは、最後に作った V65Pro 用の設定。

    • APPLY_TURBO_VM
    • APPLY_LARGE_HEAP
    • APPLY_EXTERNAL_BROWSER
    • APPLY_ROOTKIT
    • CLEANUP


mkcfw-a3-2.1.zip のテスト (Ronzi A3)

  • 2011/11/11 版 の CFW をインストール
  • SDCARD に mkcfw を展開
  • そこに、zImage_rz_60_a3_20110511.bin と userdata-a3-20111111.img をコピー
  • system-init.img.gz を 11/11 版 を作ったときのものに差し替え

    別途作った CFW が動かなかったので、入れ替えてみた。が、どうも関係なさそう。

  • env の REPLACE_DIR 書き換え
  • mkcfw に cd して busybox sh mkcfw.sh で実行
    実行結果:

      # busybox sh mkcfw.sh
      busybox sh mkcfw.sh
      ========= modes
      SELF=yes (ARCH=mips)
      APPLY_TURBO_VM=yes
      APPLY_LARGE_HEAP=no
      APPLY_EXTERNAL_BROWSER=yes
      APPLY_ROOTKIT=yes
      ========= files testing and mounting
      REPLACE_DIR=/systemis OK
      BASE_DAT_FILE=/mnt/sdcard1/mkcfw-a3-2.1/userdata-a3-20111111.img-- existant
      Original Firmware : /mnt/sdcard1/mkcfw-a3-2.1/zImage_rz_60_a3_20110511.bin-- extracting
      writing mbr-xboot.bin 842 KBytes
      writing boot.img 2678 KBytes
      writing recovery.img 2984 KBytes
      writing system.img 210905 KBytes
      writing userdata.img 67312 KBytes
      writing cache.bin 30724 KBytes
      writing vfat.bin 8 KBytes
      ro.build.version.incremental=eng.android.20110503.162254
      using large system.img -- mount OK -- copying -- done
      ===== building /mnt/sdcard1/mkcfw-a3-2.1/userdata-out.img
      replacing out/lib/mips/*.so
      removing nicoWnnG
      appending nicoWnnG-2011.1115.1-mips.apk
      == appling rootkit (apps)
      copying rootcheck
      copying rootexplorer
      == done rootkit
      filling zero
      == done userdata
      ===== building /mnt/sdcard1/mkcfw-a3-2.1/system-out.img
      changing build.prop
      #ro.sf.lcd_density=240
      dalvik.vm.heapsize=24m
      copying framework and some libs
      removing PinyinIME
      removing Provision
      removing Phone
      removing VpnServices
      replacing AppWidgetPicker
      replacing Gmail
      replacing GoogleBackupTransport
      replacing GoogleCalendarSyncAdapter
      replacing GoogleContactsSyncAdapter
      replacing GoogleFeedback
      replacing GooglePartnerSetup
      replacing Maps
      replacing MarketUpdater
      replacing NetworkLocation
      replacing OneTimeInitializer
      replacing QuickSearchBox
      replacing Talk
      replacing YouTube
      replacing kickback
      replacing soundback
      replacing GoogleServicesFramework
      replacing Vending
      replacing IngenicScreenCalibration
      replacing Launcher2
      replacing SeeJoPlayer
      replacing Browser
      replacing HTMLViewer
      replacing LatinIME
      replacing SpareParts
      replacing DroidSansJapanese.ttf
      == appling turbo vm
      copying libdvm.so-turbo
      replacing libdvm.so
      == done turbo vm
      copying new userdata.img
      == appling rootkit
      copying su
      copying Superuser.apk
      == done rootkit
      filling zero
      done
      #

    動作確認:

    • Superuser.apk

       Root Check
       - Superuser 2.3.6.3 -- OK
       - /system/bin/su がない が OK
       - user/group 0.0 の確認 OK
       - busybox v1.15.2 -- OK

       Root Explorer
       - /system の remount できず。(n7b は何故か最初から rw)

       Screen Shot It
       - rootの権限は許可したが 、動かない。
        rootの権限がないと言われる。


mkcfw-v65-2.1.zip のテスト (Ramos V65pro)

  • V65Pro は、adb が動かないみたいなので、Ronzi A3 で代用

  • SDCARD に mkcfw を展開
  • そこに、RK43A_60BWFRT_RAMOSV65_20110817_1.bin と system-v65-20111111.img,userdata-v65-20111111.img をコピー
  • SDCARD に system ディレクトリを作成し system-v65-20111111.img を mount 。

    mknod /dev/loop0 b 7 0
    mknod /dev/loop1 b 7 1
    mknod /dev/loop2 b 7 2
    mknod /dev/loop3 b 7 3
    mknod /dev/loop4 b 7 4
    mknod /dev/loop5 b 7 5
    mknod /dev/loop6 b 7 6
    mount -t ext4 -o loop mkcfw-v65-2.1/system-v65-20111111.img system

  • env の REPLACE_DIR は無変更
  • mkcfw に cd して busybox sh mkcfw.sh で実行
  • 終わったら umount /mnt/sdcard1/system を必ずする。
    動作確認:

    • Superuser.apk

       Root Check
       - Superuser 2.3.6.3
       - /system/bin/su がない -- NG?
       - busybox v1.15.2 -- OK
       -

      -rwsr-sr-x root root 25976 2011-11-23 23:45 su
      -rwsr-sr-x root root 113920 2011-08-09 13:29 su-bak

      Ronzi A3 と同じにしているのに、何故動作が違うのだろう?
      あと adb が動かないのも不便。なんとかしたいものだが ...

       Root Explorer
       -

       Screen Shot It
       -

    • Media Player

      実は、ライブラリとか 2組み入っている。jz4760b と jz4760 の 2 つのディレクトリがあるものは、jz4760 を削除。system/lib の libomx*.so と libopencore* は、jz4760b にもあるので削除。
      こうやって inode 数を稼いでいる。

      で、動作確認してみたら 予想どおり動いた。


以下設計メモ(初期)

スクリプトを書くにしても、どういうコマンドがどういうオプションで使えるかについては、Android 実機 の環境はけっこうクセがある。busybox 自体、標準的とは言えないし、Android の toolbox はさらに簡略化されている。

ls など 両方にあるものもあり、busybox ls としなければ困る場合もある。

さらに、この CFW ではスクリプトを書きやすいように busybox からのリンクを作っている。

というわけで コマンドなどについて整理が必要。

あと、もともと この CFW は Linux 上のスクリプトで作っているが、busybox にもないものがある。また、付け足しなどしていて、けっこうひどくなっている。再設計しないと まずいことになりそうだ。

まずは、どうやって作っているかについて整理しよう。

  • system.img

    もともとは、

    # dd if=/dev/zero of=system-out.img bs=1024k count=256
    # losetup /dev/loop6 system-out.img
    # mkfs.ext4 -N 1024 -b 1024 /dev/loop6
    # losetup -d /dev/loop6


    こんな感じで手動で作ったのだった。

    で、出来たものを

    custom_files/system-init.img.gz 

    gzip で圧縮しておいて、

    # gzip -d < custom_files/system-init.img.gz > system-out.img
    # mount system-out.img out_sys -o loop
    # tar -C n7b_sys -cf - . | \
    # tar -C out_sys -xpf -

    こんな風にしていたのだった。

    ここで最初の問題

    • busybox tar を使わないといけないにしても -p オプションがない。
    • cpio に変えるか。-- cpio はリンクしているからそのまま使える。にしても -p 相当をちゃんとやってくれるのか? 要確認
    • mount も 2 つある。これは、使われているという点で、toolbox の方が良いかも。

      # mount -o loop -t ext4 system-out.img out_sys

      mount もこんな風にしなければならないし、カレントディレクトリ で問題ないか要チェック。

  • userdata.img
    実をいうと、userdata.img は、V65Pro の userdata.img を持ってきて、中味を全部 delete して使っている。

    やはり、とりあえず全コピー。これで 準備しておいて、次の段階に移る。

      今回はどうするか ... というと サイズが大きくなった userdata.img が /system にあるので、それを使う。とにかく mkfs できないのだ。... となると、どこからか取ってこないといけない。

    こうやって、元の system.img / userdata.img と system-out.img / userdata-out.img の 4 つを mount する。

  • userdata-out.img の作成

    まずは、app 以下を全部削除。AngryBirds をシステムからコピーして、

      custom_files/lib/local.prop

    を -p オプション付きで コピー。cp は busybox の cp がリンクされている。

    次に osakanataro 氏の /data.data を tar ファイルで 持っていたものを解凍

    さて、今回はどうするか。userdata.img をコピーし、削除しないなら ファイルは残っている。新たに外から持ち込むこともできるし、動いているマシンのデータを取り出すこともできる。... いったいどれが良いのか?

    次、コピーすべきアプリは、custom_files/app に置いておいたものをコピーしている。
    これも もともと あるものだ。

    ... 結局 コピーした userdata.img をまず使い、それをモディファイしていく やりかたの方が良さそう。

    あと、turbofly3d は、オリジナルの userdata.img にあるはずだから 忘れずにコピーしないと。

  • system-out.img

    ちょっと端折る。

    • 基本は、custom_files/sys_app にあるものを app にコピー。
    • その上で tar ファイルで持っている 10/24 版の システム アプリを解凍
    • あと、いくつかの app の ファイルを削除
    • custom_files/lib/libdvm.so を -p 付きでコピー
    • custom_files/fonts にあるファイルを fonts にコピー
    • custom_files/sys_patch/*.patch を patch コマンドで当てる。
    • xbin/ に busybox へのリンクを作成

      BUSYBOX_LINKS="awk basename bunzip2 bzcat bzip2 chroot cp cpio diff \
      dirname du echo ed egrep expr getopt gunzip head hexdump hostname \
      less losetup mknod od patch printf pwd script sed sort swapoff \
      swapon tail tar touch uname unzip vi wc"

    今回はすでに /system/app などに入っている。そのかわり何をコピーするのかの リストを作らないといけない。

    パッチは、元ファイルがない。これは外から持ち込まないと。

  • 最後に dd コマンドを使って、/dev/zero から フルになるまで書き、削除。

    これは、圧縮が効くようにするため。

以下ただのメモ

    環境変数

    /init.rc で設定されているもの

    init.rc: export PATH /sbin:/system/sbin:/system/bin:/system/xbin
    init.rc: export ANDROID_ROOT /system
    init.rc: export ANDROID_ASSETS /system/app
    init.rc: export ANDROID_DATA /data
    init.rc: export EXTERNAL_STORAGE /mnt/flash
    init.rc: export EXTERNAL_FLASH_STORAGE /mnt/sdcard
    init.rc: export EXTERNAL_UDISK_STORAGE /mnt/udisk

    mount の仕方
    init.rc: mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
    init.rc: mount rootfs rootfs / ro remount
    init.rc: mount tmpfs none /mnt/tmpfs nosuid nodev size=1m
    init.rc: mount ext4 /dev/block/mmcblk0p1 /system
    init.rc: mount ext4 /dev/block/mmcblk0p1 /system ro remount
    init.rc: mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev
    init.rc: mount ext4 /dev/block/mmcblk0p3 /cache nosuid nodev

    mount の仕方2
    disk_preparing.sh:/system/bin/mount -t ext4 /dev/block/mmcblk0p2 /data
    disk_preparing.sh:/system/bin/mount -o loop -t ext4 /system/userdata.img /sdcard
    disk_preparing.sh:/system/bin/umount /data
    disk_preparing.sh:/system/bin/umount /sdcard

    Options:
    -a Same as -dpR
    -d,-P Preserve links
    -H,-L Dereference all symlinks (default)
    -p Preserve file attributes if possible
    -f Force overwrite
    -i Prompt before overwrite
    -R,-r Recurse directories
    -l,-s Create (sym)links

    # tar
    BusyBox v1.15.2 (2009-10-22 17:27:43 CST) multi-call binary

    Usage: tar -[czjaZxtvO] [-X FILE] [-f TARFILE] [-C DIR] [FILE(s)]...

    Create, extract, or list files from a tar file

    Options:
    c Create
    x Extract
    t List
    Archive format selection:
    z Filter the archive through gzip
    j Filter the archive through bzip2
    a Filter the archive through lzma
    Z Filter the archive through compress
    File selection:
    f Name of TARFILE or "-" for stdin
    O Extract to stdout
    exclude File to exclude
    X File with names to exclude
    C Change to directory DIR before operation
    v Verbose

    dirname `pwd`
    basename `pwd`
    # chown root.root boot.img
    # chown 1000.1000 boot.img

    # rm
    rm [-rR]
    # type rm
    rm is a tracked alias for /system/bin/rm
    # busybox rm
    BusyBox v1.15.2 (2009-10-22 17:27:43 CST) multi-call binary

    Usage: rm [OPTIONS] FILE...

    Remove (unlink) the FILE(s). Use '--' to
    indicate that all following arguments are non-options.

    Options:
    -i Always prompt before removing
    -f Never prompt
    -r,-R Remove directories recursively

    #
    # cpio
    BusyBox v1.15.2 (2009-10-22 17:27:43 CST) multi-call binary

    Usage: cpio -[tiopdmvu] [-F FILE] [-H newc]

    Extract or list files from a cpio archive, or create a cpio archive
    Main operation mode:
    -t List
    -i Extract
    -o Create
    -p Passthrough
    Options:
    -d Make leading directories
    -m Preserve mtime
    -v Verbose
    -u Overwrite
    -F Input file
    -H Define format

    mount -r -o loop -t ext4 /system/userdata.img /mnt/out_dat
posted by すz at 20:54| Comment(16) | TrackBack(0) | android
この記事へのコメント
配布の問題のうち、ファイルサイズが大きくなる、という点に関しては、あまり気にしなくていいかと・・・
というのは、HTCやXperiaなどのAndroid携帯のカスタマイズのあたりの動向を見ると、初期段階では、こういったスクリプトものが多いのですが、それがうまく実行できない向きが多く出てきたりするので、結局はイメージ全体配布が主流となる、といった感じで・・・

自サーバの容量圧迫については、 http://www.multiupload.com/ などを使って外部に出しちゃえば、あまり気にしなくてもすみます。

ユーザ登録すれば、ダウンロード回数の確認とかもできます。
それによると、ronziA3_20111024.zipは40回、Novo7Basic_android2.2_20111029.7zは68回ダウンロードされたようです。
Posted by osakanataro at 2011年11月16日 00:28
配布のサイズはともかく、ちょっと誤解があるかも。
CFWをビルドするマシンとして、だれもがもっているコイツ(novo7) を使おうという話なのです。
今の環境をカスタマイズするわけではありません。まぁLinux で作るのが普通でそれもできるようにはしますが。
Posted by すz at 2011年11月16日 07:44
スクリプトで、nicoWnnG.apkから/dataにおくlibファイルが抽出できるようにapkファイルの解凍にも対応したbusyboxを作りました。
http://blog.osakana.net/archives/1347
Posted by osakanataro at 2011年11月17日 18:00
これで、.so の非互換を気にしなくてすみますね。次のスクリプトで変更します。

ところで、A3/V65Pro 用のも作っておこうと思いますが、1つになっているファームウェアを指定できるようにしたいと思っています。

というわけで、split_nib のバイナリもお願いできませんでしょうか。

あと、こちらからも

http://nmj.sumomo.ne.jp/my_cfw/

ここに Linux x86_64 用の qemu-user 環境のバイナリを置いておきます。boot.img からの / + system.img を展開したところに これを展開すると chroot できるようになります。
(最初に binfmt_misc の初期設定が必要ですが、スクリプトも入れてあります。)

確認用に使ってみてください。
Posted by すz at 2011年11月17日 22:45
Posted by osakanataro at 2011年11月18日 10:03
折角置いて頂いたのですが動かないです。
su,busybox は動きますが。
あと FAT だと実行権を付けられないようです。
実行している環境を変えるのは嫌なので、tmpfs で mount されている /dev/bin に置いて PATH を通すことにしました。

Posted by すz at 2011年11月19日 19:27
su は、Tasselhof-RootScript の Superuser.apk との組み合わせで rootexplorer , rootcheck が動きました。
ただ、busybox を置き換えたら busybox のチェックが OK だったのが、NG になります。関係ないですが。
Posted by すz at 2011年11月19日 20:36
失礼しました
うっかりstaticし忘れてました。
URL同じで再アップしました。

busyboxについては、まぁ、元々入っているのとコンパイルオプションが違うはずなので、そこらへんの違いなんでしょうね
バージョンチェックでも入れてるのかな
Posted by osakanataro at 2011年11月19日 23:36
Ronzi A3 の生成スクリプトを
http://nmj.sumomo.ne.jp/my_cfw/mkcfw-a3-2.1.zip
におきました >> osakanataro 氏

一応 予定どおりに生成できているかは、11/11 版と diff -ru して確認しています。

あと、この中の src に 新版の split_nib.c と 新規作成した split_bootimg.c を置いてあります。

元の split_nib.c は、メモリの消費がひどく実機ではまず動かないことに気がついたので修正。split_bootimg.c は、簡易なものですが 実機で perl は動かないので ついでに作っています。

ちなみに、バイナリも一応。これは NDK ではなく、作成中の開発環境で作ったもの。static リンクなら これでも動くようです。(確認は qemu-user 環境)
Posted by すz at 2011年11月23日 01:32
staticなバイナリについては、NDKでもmipsにある普通のコンパイラでもどっちでも問題なく動作するようですね

昨日、dalvik turboの新revが出ました。
dalvik_turbo_mips_froyo_205583_20111110.zip
具体的に何が変わったのか明記されていないのが難点ですが・・・

Posted by osakanataro at 2011年11月25日 16:48
前のは、novo7 basic ではまともに動かないみたいなので、直っていると良いのですが...

あと、Jz4760B ですが Set Top box 見つけました。いくつか前の記事に追記しています。
Posted by すz at 2011年11月25日 20:55
こんにちは。Telechipsタブレットの時にお邪魔した者です。
いくつかの中華pad向けにCyanogenModを作って遊んでいたのですが、novo7 basicあげるから遊んでみない?と言われてしまいました。
あまり暇はないのですが ;) 本当に届くなら遊んでみようかと思います。その時はまたお邪魔するかと思います。
失礼しました。
Posted by fun at 2011年11月30日 13:26
昨年はお世話になりました。novo7 basic はいじり甲斐があって、良いですよ。末永く遊んでやってください。ではまた。
Posted by すz at 2011年11月30日 20:32
novo7 basicのおそらく開発中firmwareの動作画像が公開されてました。
http://v.youku.com/v_show/id_XMzI3ODAwMDgw.html
Posted by osakanataro at 2011年12月02日 15:42
http://forum.xda-developers.com/showthread.php?t=1394308
ClockworkMod作ってみました。

標準のリカバリ用のupdate.zipが作れないかも試したのですが、invalid signatureとかなんとかでダメでした。

CWMならそんな問題はないので、ROMのカスタマイズにも役に立つのではと思います。
Posted by fun at 2011年12月16日 10:45
上記CWMはNOVO7 Basic用ですが、他のJZ47xx搭載Androidタブレットでも、カーネル入れ替えて、(必要なら)キーアサインとかパーティションとか直せば使えるんじゃないかと思います。

ご入用でしたら、ご相談ください。
Posted by fun at 2011年12月16日 10:49
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/50462701
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック