[[Software/Virtual Platform/Android]]
[[Software/Virtual Platform/Android]]~
こちらはubuntu8.04での作業になります。~
* userlandの変更点 [#z46365a7]

** Android ソースファイルの修正 [#m4b5ebb5]
- ソースファイルの取得 ~
Androidのソースファイルの取得は下記のURLを参照してください。~
http://source.android.com/download ~
今回はandroid 1.5r2ブランチを使用しましたので、repo initの際は下記のコマンドを実行しました。~
 repo init -u git://android.git.kernel.org/platform/manifest.git -b android-1.5r2
また、Android ソースファイルは2009年5月26日時点のものを使用しています~
- system/core/init/devices.cの修正~
pmemを使用している箇所を無効にします。~
@@ -109,9 +109,9 @@
      { "/dev/eac",           0660,   AID_ROOT,       AID_AUDIO,      0 },
      { "/dev/cam",           0660,   AID_ROOT,       AID_CAMERA,     0 },
      { "/dev/pmem",          0660,   AID_SYSTEM,     AID_GRAPHICS,   0 },
 -    { "/dev/pmem_gpu",      0660,   AID_SYSTEM,     AID_GRAPHICS,   1 },
 -    { "/dev/pmem_adsp",     0660,   AID_SYSTEM,     AID_AUDIO,      1 },
 -    { "/dev/pmem_camera",   0660,   AID_SYSTEM,     AID_CAMERA,     1 },
 +    { "/dev/pmem_gpu",      0660,   AID_SYSTEM,     AID_GRAPHICS,   0 },
 +    { "/dev/pmem_adsp",     0660,   AID_SYSTEM,     AID_AUDIO,      0 },
 +    { "/dev/pmem_camera",   0660,   AID_SYSTEM,     AID_CAMERA,     0 },
      { "/dev/oncrpc/",       0660,   AID_ROOT,       AID_SYSTEM,     1 },
      { "/dev/adsp/",         0660,   AID_SYSTEM,     AID_AUDIO,      1 },
      { "/dev/mt9t013",       0660,   AID_SYSTEM,     AID_SYSTEM,     0 },

- frameworks/base/services/java/com/android/server/KeyInputQueue.javaの修正~
キー入力送信を待つ thread 内のチェックを外し必ず入力を拾うように修正します。~
(電源管理との関係で入力が拾えなくなるのを防ぐためです。)~
@@ -247,7 +247,7 @@
 if (!send) {
           -    continue;
           + // continue;
 }


- frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.javaの修正~
HOMEボタンを押下したときにHOME画面にもどらないので
以下の箇所をコメントアウトしkeyguardを無効にすることでHOMEボタンが効くようにします。
@@ -942,7 +942,7 @@
   /**
     * A home key -> launch home action was detected.  Take the appropriate  action
     * given the situation with the keyguard.
     */
    void launchHomeFromHotKey() {
       // if (mKeyguardMediator.isShowing()) {
            // don't launch home if keyguard showing
       // } else if (mKeyguardMediator.isInputRestricted()) {
            // when in keyguard restricted mode, must first verify unlock
            // before launching home
        //    mKeyguardMediator.verifyUnlock(new OnKeyguardExitResult() {
        //        public void onKeyguardExitResult(boolean success) {
         //           if (success) {
         //               mContext.startActivity(mHomeIntent);
         //               sendCloseSystemWindows();
         //           }
         //       }
         //   });
       // } else {
            // no keyguard stuff to worry about, just launch home!
            mContext.startActivity(mHomeIntent);
            sendCloseSystemWindows();
       // }
    }
 
    public void getContentInsetHintLw(WindowManager.LayoutParams attrs, Rect contentInset) {
       final int fl = attrs.flags; 

android-1.5r2で起動時にバッテリーが無く終了の動作に入るという問題があります。~
http://androidzaurus.seesaa.net/article/116995835.html ~
上記サイトにあるPATCHを適用することでバッテリーの状態をフルにに見せています。~

以上の作業後、makeでビルドを行います。~

** userland [#bca505e7]
ビルド完了後、生成されたファイルを1つのディレクトリにまとめます。~
 $cd ~/android_build/out/target/product/generic
 $mkdir ~/Android_rfs
 $cp -a root/* ~/Android_rfs
 $cp -a data/* ~/Android_rfs/data/
 (dataの中身がない場合は省略)
 $cp -a system/* ~/ Android_rfs/system/

作成したディレクトリに入り、以下の作業を行います。~
 $cd Android_rfs/

- init.rcの修正~
userlandをAndroidのものと置き換えた際、init.rcにyaffs2でのmountがありますが、~
移植版ではyaffs2を使用していませんので、その箇所をコメントアウトします。


         @@ -24,7 +24,7 @@ loglevel 3
              mkdir /sqlite_stmt_journals 01777 root root
              mount tmpfs tmpfs /sqlite_stmt_journals size=4m
          
         -    mount rootfs rootfs / ro remount
         +    #mount rootfs rootfs / ro remount
          
              write /proc/sys/kernel/panic_on_oops 1
              write /proc/sys/kernel/hung_task_timeout_secs 0
         @@ -34,16 +34,16 @@ loglevel 3
          
          # mount mtd partitions
              # Mount /system rw first to give the filesystem a chance to save a  checkpoint
         -    mount yaffs2 mtd@system /system 
         -    mount yaffs2 mtd@system /system ro remount
         +   #mount yaffs2 mtd@system /system 
         +   # mount yaffs2 mtd@system /system ro remount
          
              # We chown/chmod /data again so because mount is run as root + defaults
         -    mount yaffs2 mtd@userdata /data nosuid nodev
         +   # mount yaffs2 mtd@userdata /data nosuid nodev
              chown system system /data
              chmod 0771 /data
          
              # Same reason as /data above
         -    mount yaffs2 mtd@cache /cache nosuid nodev
         +    #mount yaffs2 mtd@cache /cache nosuid nodev
              chown system cache /cache
              chmod 0770 /cache
          
         @@ -231,5 +231,5 @@ service hsag /system/bin/sdptool add --c
          service installd /system/bin/installd
              socket installd stream 600 system system
          
         -service flash_recovery /system/bin/flash_image recovery /system/recovery.img
         -    oneshot
         +#service flash_recovery /system/bin/flash_image recovery /system/recovery.img
         +#    oneshot


-system/usr/keylayout/qwerty.klの設定~
キーボード配列の設定をします。~
F1:Menu ~
F6:Back ~
F12:Home ~
と設定します。

         key 399   GRAVE
         key 2     1
         key 3     2
         key 4     3
         key 5     4
         key 6     5
         key 7     6
         key 8     7
         key 9     8
         key 10    9
         key 11    0
         key 64    BACK              WAKE
         key 230   SOFT_RIGHT        WAKE
         key 60    SOFT_RIGHT        WAKE
         key 68    ENDCALL           WAKE
         key 62    ENDCALL           WAKE_DROPPED
         key 229   MENU              WAKE_DROPPED
         key 139   MENU              WAKE_DROPPED
         key 59    MENU              WAKE
         key 127   SEARCH            WAKE_DROPPED
         key 217   SEARCH            WAKE_DROPPED
         key 228   POUND
         key 227   STAR
         key 231   CALL              WAKE_DROPPED
         key 61    CALL              WAKE_DROPPED
         key 232   DPAD_CENTER       WAKE_DROPPED
         key 80    DPAD_DOWN         WAKE
         key 72    DPAD_UP           WAKE
         key 88    HOME              WAKE
         key 75    DPAD_LEFT         WAKE_DROPPED
         key 77    DPAD_RIGHT        WAKE_DROPPED
         key 115   VOLUME_UP
         key 114   VOLUME_DOWN
         key 116   POWER             WAKE
         key 212   CAMERA

- default prop ~
default propに以下のdnsを加えることでグローバルなネットワークに接続していると ~
ブラウザでWEBページが表示できます。~
        net.eth0.dns1=208.66.222.222
        net.dns1=208.67.222.222

- ユーザ権限の変更 ~
Androidは安全のためシステムのユーザー権限が細かく設定されていますが、 ~
移植に際しては動作することを優先します。~
 chown -R root:root *
 chmod -R 777 data/
 chmod -R 777 system/

作業後、ディレクトリ(ここではAndroid_RFS)をCentOS 4のマシンへコピーします。~
以上で、userlandの変更点は終了です。~

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS