まずはkbcにあるレポジトリから、カーネルソースとRamdiskを落とします
- コード: 全て選択
git clone https://github.com/kbc-developers/android_kernel_samsung_msm8660 -b cm-11.0
- コード: 全て選択
git clone git@github.com:kbc-developers/sc03d_boot_ramdisk.git -b kk-aosp
はい、いきなり変な事やっています。
あ~~ん?普通AndroidSouceをrepo sync してsetupしてからmake bootimageだろ?
と思われるかも知れません(知ってる人は)
理由があります。
一昔前のandroid kernelはboot.imgの/lib/modulesにモジュールが内包されており
そこからモジュール呼び出す仕様になっていました。
しかし、ある時点から、モジュールの配置場所が/system/lib/modulesになってしまったため
versionmagicがあっていないモジュールは走らなくなってしまったのです。
なので、最近はAOSP用の単体カスタムカーネルってほとんど無いと思います。(ROMとワンセットですよね?)
だけど、海外のROMは海外用のものばかりでいちいち色々なROMビルドするのめんどくさいってことで一撃が生まれた訳なんですが
そのためにはboot,imgにモジュールを内包し、起動時に展開する手法を(KBCは)とりました。
https://github.com/kbc-developers/sc03d ... get.rc#L37ここを参照してください。
一度、/system/lib/modulesにあるモジュールをtmpfsという特殊なファイルシステム(RAMDISKみたいにメモリ上に存在する)に落とし込んで
再度、/lib/modulesから/system/lib/modulesにリンクを張りなおし、versionmagicのあったモジュールを読み込ませるようにしています。
しかし、qcomは頻繁にramdiskの仕様が変わるため、時々ramdiskをメンテしなおさなければならないというデメリットがありますが
一撃のためには仕方なしということです。