さていよいよカーネルのコンパイルを行います。
何度も書きます。
自己責任において行動してください。私は一切責任を持ちません。動かなくなった場合メーカー保障もきかなくなります。またこれら文章を読んでいてわからない言葉があるのなら絶対にお勧めしません。やる前に十分な勉強をするべきです。それをご理解のうえでお進み下さい。
まず必要なファイルを一箇所に集めます。

MediaFire
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single pla...
から
Patchset-Android-5.0.zip
をダウンロードして下さい。
また

Factory Images for Nexus and Pixel Devices | Google Play services | Google for Developers
から
nakasi-lrx22g-factory-2291c36b.tgz
をダウンロードしておいて下さい。
次にスクリプトを書いた物をUPしておきますのでこれもダウンロードしておいて下さい。
それらをWinSCPなどで仮想環境のユーザーnexusのホームフォルダに転送しておきます。
その後Puttyなどで仮想環境にログインして作業を進めます。
具体的な手続きは以下の通り
sudo apt-get install build-essential sudo apt-get install git sudo apt-get install unzip sudo apt-get install ncurses-dev unzip 5_0_2.zip unzip Patchset-Android-5.0.zip rm -fr Patchset-Android-5.0.zip tar xzvf nakasi-lrx22g-factory-2291c36b.tgz cd nakasi-lrx22g unzip image-nakasi-lrx22g.zip mkdir ~/boot mv boot.img ~/boot cd ~/ rm -fr nakasi-lrx22g* git clone https://android.googlesource.com/platform/system/core bootimg-tools cd bootimg-tools/libmincrypt/ gcc -c *.c -I../include ar rcs libmincrypt.a *.o cd ../mkbootimg gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a sudo cp mkbootimg /usr/local/bin/ wget https://raw.github.com/pbatard/bootimg-tools/master/mkbootimg/unmkbootimg.c gcc -o unmkbootimg unmkbootimg.c sudo cp unmkbootimg /usr/local/bin/ cd ../cpio gcc mkbootfs.c -o mkbootfs -I../include sudo cp mkbootfs /usr/local/bin/ cd ~/boot unmkbootimg -i boot.img mkdir ramdisk cd ramdisk gunzip -c ../ramdisk.cpio.gz | cpio -iu patch -p1 < ../../Patchset-Android-5.0/initrc-vorcers.diff init.rc cp -R ../../Patchset-Android-5.0/ramdisk/tmp-vorcers . find . | cpio -o -H newc | gzip > ../myramdisk.cpio.gz git clone https://android.googlesource.com/platform/prebuilt git clone https://android.googlesource.com/kernel/tegra.git kernel/grouper cd ~/kernel/grouper git checkout android-5.0.2_r0.1 scripts/extract-ikconfig ~/boot/boot.img > arch/arm/configs/n7_defconfig source ~/buildset make n7_defconfig patch -p1 < ../../Patchset-Android-5.0/n7_hardboot.diff patch -p1 < ../../Patchset-Android-5.0/kernel.diff patch -p1 < ../../Patchset-Android-5.0/vorcers-config.patch .config patch -p1 < ~/setlocalversion.diff make menuconfig make -j4 cd ~/boot cp ~/kernel/grouper/arch/arm/boot/zImage . mkbootimg --base 0 --pagesize 2048 --kernel_offset 0x10008000 --ramdisk_offset 0x11000000 --second_offset 0x10f00000 --tags_offset 0x10000100 --kernel zImage --ramdisk myramdisk.cpio.gz -o myboot.img
ここで行っていることが理解できないのであれば今すぐ止めてください!
※1(2015/01/20-16:29)
49行目は次投稿で補足を入れました。
うまくいけば~/boot/myboot.imgが作成されます。これをホストに転送してNexusRootToolなどboot.imgを書き換えられる物でカーネルを変更します。
うまく起動できればcifsが使用できる環境になります。
なお5.02ではSELinuxがEnableになっていますので
setenforce 0 getenforce
としてpermissiveと返事が返ってくれば成功です。
これをしないとどんなboot.imgを作ってもSELinuxで拒否されますので通常ユーザーでは接続できません。
私はこれでLinuxSambaの共有及びWindows7の共有を見ることに成功しています。
コメント