热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用5个简单的步骤编译我们自己的安卓内核

用5个简单的步骤编译我们自己的安卓内核原文:https://

用 5 个简单的步骤编译我们自己的安卓内核

原文:https://www . geeksforgeeks . org/编译-我们自己的-安卓-5 步内核-简单/

安卓内核帮助应用程序与设备的硬件组件进行通信。

比如:


  1. Most of us are familiar with game mode . Its function is to instruct the processor and graphics processing unit to run at the maximum frequency.

  2. Another example is power saving mode . It instructs the processor and graphics processing unit to run at their minimum frequency.

需要编译我们自己的内核: 编译我们自己的内核可能会非常有用,因为:


  • Use our own kernel.

  • The user experience can be further optimized as needed, which is also helpful for open source development .

编译我们自己的内核的步骤:


  1. Prerequisites: The following are prerequisites for compiling our own Android kernel:


    • Ubuntu or any other Linux-based OS

    • Familiar with basic Linux command

    • 阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金·阿金 Github

    • Equipment [Source code [T2】 T30 Open the terminal and paste it as follows:

      java
      sudo apt-get install
           git ccache automake flex lzop bison \
           gperf build-essential zip curl
               zlib1g-dev zlib1g-dev:i386 \
           g++-multilib python-networkx 
               libxml2-utils bzip2 libbz2-dev \
           libbz2-1.0 libghc-bzlib-dev 
               squashfs-tools pngcrush \
           schedtool dpkg-dev liblz4-tool 
               make optipng maven libssl-dev \
           pwgen libswitch-perl policycoreutils 
               minicom libxml-sax-base-perl \
           libxml-simple-perl bc
               libc6-dev-i386 lib32ncurses5-dev \
           x11proto-core-dev libx11-dev 
               lib32z-dev libgl1-mesa-dev xsltproc unzip
      ](https://www.geeksforgeeks.org/language-processors-assembler-compiler-and-interpreter/)
      * Download required documents:
      * Clone the device source on the local disk:

      ```java
      mkdir mykernel
        git clone {link to your device kernel source}
      ```



      • Download a compatible GCC tool chain. In this paper, GCC of AOSP is used.

        java
        cd mykernel
           git clone https://android.googlesource.com/platform/
                     prebuilts/gcc/linux-x86/aarch64/
                     aarch64-linux-android-4.9
           toolchain


      • Download a compatible CLANG tool chain. This paper uses Clang of AOSP.


      • Move the downloaded file to the mykernel folder , and then use the following command to extract it:

        java
        tar vxzf linux-x86-android-9.0.0_r48-clang-4691093.tar.gz




    • 编译内核:

      ```java
      cd mykernel
      rm -rf out
      mkdir out
      export ARCH=arm64
      export SUBARCH=arm64
      export DTC_EXT=dtc

      make O=out ARCH=arm64 {device defconfig}

      PATH="${PWD}/bin:${PWD}/toolchain/bin:${PATH}" \
      make -j$(nproc --all) O=out \
                            ARCH=arm64 \
                            CC=clang \
                            CLANG_TRIPLE=aarch64-linux-gnu- \
                            CROSS_COMPILE=aarch64-linux-android-
                            | tee kernel.log
      ```

      在这里,将{device defconfig}替换为您的配置文件的名称。您可以在/arch/arm64/configs 文件夹中找到它。


    • Boot the compiled kernel:


      • Browse to /out/arch/ARM64/boot , find image-DTB file (compiled zImage) and copy it.

      • Download Android mirror kitchen and decompile your stock boot image. Once you decompile it, you will find the stock code in the decompiled folder. Replace it with the previously copied one and recompile the boot image.

      • Flash Fast boot uses the following commands:

        java
        fastboot flash boot mykernel.img




    • Error encountered in processing: A kernel.log file will be generated in mykernel folder. Find the wrong line and find a solution. Also, please don't forget to attach the log file when posting for help in the forum.




这将是基本的内核,一旦它成功启动,可以添加更多的功能。


推荐阅读
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
author-avatar
爱你一辈子2502860605
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有