-
-
[原创]编译内核(Pixel 2)
-
发表于:
2019-11-27 10:00
16300
-
这是我在学习编译Pixel2手机内核时所记录的笔记,内容没有亮点只是记录了我编译Pixel2 手机内核时的步骤。 区别于网上其他大佬说的方法我这里没有修改编译工具的源码,只是添加了编译时所需要的工具,刷入编译好的内核到手机中没有出现触摸屏失灵可以正常使用。
编译内核配置项:
内核分支为:remotes/origin/android-msm-wahoo-4.4-pie-r2 pixel2手机 android9.1版本
编译内核:
#: mkdir ~/bin
#: PATH=~/bin:$PATH
# curl 9f8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6r3!0J5j5h3N6W2i4K6u0W2k6$3!0G2k6$3I4W2j5i4m8A6M7#2)9J5k6h3y4G2L8g2)9J5c8X3N6A6N6q4)9J5k6s2u0W2M7r3!0Q4x3X3c8V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6J5k6i4m8G2i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3N6@1i4K6y4n7i4K6t1$3L8X3u0K6M7q4)9K6b7Y4u0W2M7r3)9`.
# 如果不行可以使用下面的:
# curl -sSL '3b1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6u0r3i4K6u0n7i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3M7X3g2H3L8#2)9K6c8X3k6G2M7X3#2S2N6q4)9K6c8q4c8q4h3q4c8Q4x3U0N6Q4x3U0k6F1j5Y4y4H3i4K6y4n7i4K6N6o6j5X3q4K6k6e0j5@1i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5k6r3c8Q4x3U0k6F1j5Y4y4H3i4K6y4n7i4K6t1$3k6%4c8Q4x3@1u0Q4x3U0k6F1j5Y4y4H3i4K6y4n7M7X3g2H3L8H3`.`.
# chmod a+x ~/bin/repo
#: mkdir ~/bin
#: PATH=~/bin:$PATH
# curl 9f8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6r3!0J5j5h3N6W2i4K6u0W2k6$3!0G2k6$3I4W2j5i4m8A6M7#2)9J5k6h3y4G2L8g2)9J5c8X3N6A6N6q4)9J5k6s2u0W2M7r3!0Q4x3X3c8V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6J5k6i4m8G2i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3N6@1i4K6y4n7i4K6t1$3L8X3u0K6M7q4)9K6b7Y4u0W2M7r3)9`.
# 如果不行可以使用下面的:
# curl -sSL '3b1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6u0r3i4K6u0n7i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3M7X3g2H3L8#2)9K6c8X3k6G2M7X3#2S2N6q4)9K6c8q4c8q4h3q4c8Q4x3U0N6Q4x3U0k6F1j5Y4y4H3i4K6y4n7i4K6N6o6j5X3q4K6k6e0j5@1i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5k6r3c8Q4x3U0k6F1j5Y4y4H3i4K6y4n7i4K6t1$3k6%4c8Q4x3@1u0Q4x3U0k6F1j5Y4y4H3i4K6y4n7M7X3g2H3L8H3`.`.
# chmod a+x ~/bin/repo
选择分支:
# repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
// 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
// REPO_URL = 'e01K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6t1%4
// 如果需要指定版本
// N2G48C android-9.0.0_r3
# repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-9.0.0_r3
# repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
// 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
// REPO_URL = 'e01K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6t1%4
// 如果需要指定版本
// N2G48C android-9.0.0_r3
# repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-9.0.0_r3
同步源码:
kernel下载
创建空目录存放内核文件:
# mkdir WORKING_DIRECTORY
# cd WORKING_DIRECTORY
# mkdir WORKING_DIRECTORY
# cd WORKING_DIRECTORY
git下载:
// 清华
# git clone 670K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8%4y4H3i4K6u0W2N6s2g2F1j5g2)9J5k6i4c8K6K9h3&6Y4K9s2g2S2i4K6u0W2k6h3c8#2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0i4K6u0W2k6$3W2@1
// 谷歌
# git clone cc1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0i4K6u0W2k6$3W2@1
# cd msm //进入msm工程目录
// 清华
# git clone 670K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8%4y4H3i4K6u0W2N6s2g2F1j5g2)9J5k6i4c8K6K9h3&6Y4K9s2g2S2i4K6u0W2k6h3c8#2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0i4K6u0W2k6$3W2@1
// 谷歌
# git clone cc1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0i4K6u0W2k6$3W2@1
# cd msm //进入msm工程目录
各个芯片版本:
exynos 项目包含适用于 Nexus 10 的内核源代码,可用作在 Samsung Exynos 芯片组上开展相关工作的着手点。
git clone 6e8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3k6i4S2&6L8X3!0K6
goldfish 项目包含适用于模拟平台的内核源代码。
git clone f86K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3k6$3!0D9k6r3k6A6M7$3R3`.
hikey-linaro 项目用于 HiKey 参考板,可用作在 HiSilicon 620 芯片组上开展相关工作的着手点。
git clone 5b7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3K9r3W2C8k6i4W2Q4x3X3c8D9K9h3&6S2M7X3)9`.
msm 项目包含适用于 ADP1、ADP2、Nexus One、Nexus 4、Nexus 5、Nexus 6、Nexus 5X、Nexus 6P、Nexus 7 (2013)、Pixel 和 Pixel XL 的源代码,可用作在 Qualcomm MSM 芯片组上开展相关工作的着手点。
git clone e0cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0
omap 项目用于 PandaBoard 和 Galaxy Nexus,可用作在 TI OMAP 芯片组上开展相关工作的着手点。
git clone f3aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8$3#2S2M7l9`.`.
samsung 项目用于 Nexus S,可用作在 Samsung Hummingbird 芯片组上开展相关工作的着手点。
git clone 9fdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3M7$3q4E0M7%4g2F1k6H3`.`.
tegra 项目用于 Xoom、Nexus 7 (2012)、Nexus 9,可用作在 NVIDIA Tegra 芯片组上开展相关工作的着手点。
git clone 730K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3N6r3g2Y4M7X3p5`.
x86_64 项目包含适用于 Nexus Player 的内核源代码,可用作在 Intel x86_64 芯片组上开展相关工作的着手点。
git clone a3bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3P5o6R3$3i4K6g2X3y4U0b7`.
exynos 项目包含适用于 Nexus 10 的内核源代码,可用作在 Samsung Exynos 芯片组上开展相关工作的着手点。
git clone 6e8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3k6i4S2&6L8X3!0K6
goldfish 项目包含适用于模拟平台的内核源代码。
git clone f86K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3k6$3!0D9k6r3k6A6M7$3R3`.
hikey-linaro 项目用于 HiKey 参考板,可用作在 HiSilicon 620 芯片组上开展相关工作的着手点。
git clone 5b7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3K9r3W2C8k6i4W2Q4x3X3c8D9K9h3&6S2M7X3)9`.
msm 项目包含适用于 ADP1、ADP2、Nexus One、Nexus 4、Nexus 5、Nexus 6、Nexus 5X、Nexus 6P、Nexus 7 (2013)、Pixel 和 Pixel XL 的源代码,可用作在 Qualcomm MSM 芯片组上开展相关工作的着手点。
git clone e0cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0
omap 项目用于 PandaBoard 和 Galaxy Nexus,可用作在 TI OMAP 芯片组上开展相关工作的着手点。
git clone f3aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8$3#2S2M7l9`.`.
samsung 项目用于 Nexus S,可用作在 Samsung Hummingbird 芯片组上开展相关工作的着手点。
git clone 9fdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3M7$3q4E0M7%4g2F1k6H3`.`.
tegra 项目用于 Xoom、Nexus 7 (2012)、Nexus 9,可用作在 NVIDIA Tegra 芯片组上开展相关工作的着手点。
git clone 730K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3N6r3g2Y4M7X3p5`.
x86_64 项目包含适用于 Nexus Player 的内核源代码,可用作在 Intel x86_64 芯片组上开展相关工作的着手点。
git clone a3bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3P5o6R3$3i4K6g2X3y4U0b7`.
git同步分支:
# git checkout 4.4.4-xxxxxxx (在手机中查看/proc/version获取)
// 也可以选择这个版本 同步分支
# git checkout -b android-msm-wahoo-4.4-pie-r2 /origin/android-msm-wahoo-4.4-pie-r2 (依据手机信息在 branch中自行寻找)
# git checkout 4.4.4-xxxxxxx (在手机中查看/proc/version获取)
// 也可以选择这个版本 同步分支
# git checkout -b android-msm-wahoo-4.4-pie-r2 /origin/android-msm-wahoo-4.4-pie-r2 (依据手机信息在 branch中自行寻找)
编译内核配置项:
设备 | 二进制文件路径 | 源码路径 | 编译配置 |
taimen | device/google/wahoo-kernel | kernel/msm | wahoo_defconfig |
walleye | device/google/wahoo-kernel | kernel/msm | wahoo_defconfig |
angler | device/huawei/angler-kernel | kernel/msm | angler_defconfig |
marlin | device/google/marlin-kernel | kernel/msm | marlin_defconfig |
... | ... | ... | ... |
[培训]科锐逆向工程师培训第53期2025年7月8日开班!