- 新增 docs/ESP32_Luotianyi/: * 收拢原根目录的 ESP32踩坑经验文档.md(之前散放在项目根) * 迁入原 docs/ESP32/ESP32-S3-SCH-V1.4.pdf * 整个 docs/ESP32/ 目录更名为 docs/ESP32_Luotianyi/,产品线命名更明确 - 新增 docs/Radxa_CM5/: * 从 docs/OrangePi_CM5/ 分离 Android底层开发 _ Radxa Docs.html * Radxa 和 OrangePi 是不同厂商板子,文档分目录存放避免混淆 - 根目录不再散落文档,所有硬件参考资料统一在 docs/ 下按产品分组
82 lines
60 KiB
HTML
82 lines
60 KiB
HTML
<!doctype html><html lang=zh-CN dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-som/cm/cm5/android/low-level-dev" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>底层开发 | Radxa Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.radxa.com/som/cm/cm5/android/low-level-dev><meta data-rh=true property=og:locale content=zh_CN><meta data-rh=true property=og:locale:alternate content=en_US><meta data-rh=true name=docusaurus_locale content=zh><meta data-rh=true name=docsearch:language content=zh><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="底层开发 | Radxa Docs"><meta data-rh=true name=description content="主要介绍 uboot, kernel, aosp 编译打包等内容"><meta data-rh=true property=og:description content="主要介绍 uboot, kernel, aosp 编译打包等内容"><link data-rh=true rel=icon href=/img/favicon.ico><link data-rh=true rel=canonical href=https://docs.radxa.com/som/cm/cm5/android/low-level-dev><link data-rh=true rel=alternate href=https://docs.radxa.com/en/som/cm/cm5/android/low-level-dev hreflang=en-US><link data-rh=true rel=alternate href=https://docs.radxa.com/som/cm/cm5/android/low-level-dev hreflang=zh-CN><link data-rh=true rel=alternate href=https://docs.radxa.com/som/cm/cm5/android/low-level-dev hreflang=x-default><link data-rh=true rel=preconnect href=https://KB2V2SQ6N9-dsn.algolia.net crossorigin=anonymous><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.radxa.com/som/cm/","name":"CM 系列","position":1},{"@type":"ListItem","item":"https://docs.radxa.com/som/cm/cm5/","name":"瑞莎 CM5","position":2},{"@type":"ListItem","item":"https://docs.radxa.com/som/cm/cm5/android/","name":"Android 系统","position":3},{"@type":"ListItem","item":"https://docs.radxa.com/som/cm/cm5/android/low-level-dev","name":"底层开发","position":4}]}</script><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-2V3W91WFXP"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-2V3W91WFXP",{anonymize_ip:!0})</script><script async src=https://hm.baidu.com/hm.js?b95e7f9830b48df01fcb1c3267e7d73b></script><script>window._hmt=window._hmt||[],function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?b95e7f9830b48df01fcb1c3267e7d73b";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><link rel=stylesheet href=/assets/css/styles.3fad7f3b.css><script src=/assets/js/runtime~main.a65a8a44.js defer></script><script src=/assets/js/main.ea07db7f.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
|
||
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
|
||
</defs></svg>
|
||
<script>!function(){var t="light",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id=__docusaurus><link rel=preload as=image href=/page/radxa-docs.svg><div role=region aria-label=跳到主要内容><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>跳到主要内容</a></div><div class="theme-announcement-bar announcementBar_mb4j" style=background-color:#2b2b2b;color:#fff role=banner><div class="content_knG7 announcementBarContent_xLdY"><div id=bulletin><a target=_blank rel="noopener noreferrer" href=https://radxa.com>Home</a><a target=_blank rel="noopener noreferrer" href=https://radxa.com/products>Products</a><a target=_blank rel="noopener noreferrer" href=https://radxa.com/news>News</a><a target=_blank rel="noopener noreferrer" href=https://radxa.com/services>Services</a><a target=_blank rel="noopener noreferrer" href=https://radxa.com/support>Support</a><a target=_blank rel="noopener noreferrer" href=https://radxa.com/about>About</a></div></div></div><nav aria-label=主导航 class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/page/radxa-docs.svg alt=Radxa class="themedComponent_mlkZ themedComponent--light_NVdE"><img src=/page/radxa-docs.svg alt=Radxa class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate"></b></a><a class="navbar__item navbar__link" target=_self href=/welcome>所有文档</a><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>单板计算机</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/rock2>ROCK 2 系列</a><ul class=dropdown_item2_dhIT><li><a href=/rock2/rock2a>→ ROCK 2A</a><li><a href=/rock2/rock2f>→ ROCK 2F</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/rock3>ROCK 3 系列</a><ul class=dropdown_item2_dhIT><li><a href=/rock3/rock3a>→ ROCK 3A</a><li><a href=/rock3/rock3b>→ ROCK 3B/3B+</a><li><a href=/rock3/rock3c>→ ROCK 3C</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/rock4>ROCK 4 系列</a><ul class=dropdown_item2_dhIT><li><a href=/rock4/rock4ab-se>→ ROCK 4A/4B/4A+/4B+/4SE</a><li><a href=/rock4/rock4c+>→ ROCK 4C+</a><li><a href=/rock4/rock4d>→ ROCK 4D</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/rock5>ROCK 5 系列</a><ul class=dropdown_item2_dhIT><li><a href=/rock5/rock5a>→ ROCK 5A</a><li><a href=/rock5/rock5b>→ ROCK 5B/5B+</a><li><a href=/rock5/rock5c>→ ROCK 5C</a><li><a href=/rock5/rock5t>→ ROCK 5T</a><li><a href=/rock5/rock5itx>→ ROCK 5 ITX</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/rockpi>ROCK Pi 系列</a><ul class=dropdown_item2_dhIT><li><a href=/rockpi/rockpis>→ ROCK Pi S</a><li><a href=/rockpi/rockpie>→ ROCK Pi E</a><li><a href=/rockpi/rockpis0>→ ROCK Pi S0</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/zero>ZERO 系列</a><ul class=dropdown_item2_dhIT><li><a href=/zero/zero>ZERO</a><li><a href=/zero/zero2pro>ZERO 2 Pro</a><li><a href=/zero/zero3>ZERO 3W/3E</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/x>X 系列</a><ul class=dropdown_item2_dhIT><li><a href=/x/x2l>X2L</a><li><a href=/x/x4>X4</a><li><a href=/x/x5>X5</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/nio>NIO 系列</a><ul class=dropdown_item2_dhIT><li><a href=/nio/12l>NIO 12L</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/sirider>SiRider 系列</a><ul class=dropdown_item2_dhIT><li><a href=/sirider/s1>SiRider S1</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/orion>Orion 系列</a><ul class=dropdown_item2_dhIT><li><a href=/orion/o6>Orion O6</a><li><a href=/orion/o6n>Orion O6N</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/cubie>Cubie 系列</a><ul class=dropdown_item2_dhIT><li><a href=/cubie/a5e>Cubie A5E</a><li><a href=/cubie/a7a>Cubie A7A</a><li><a href=/cubie/a7z>Cubie A7Z</a><li><a href=/cubie/a7s>Cubie A7S</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/dragon>Dragon 系列</a><ul class=dropdown_item2_dhIT><li><a href=/dragon/q6a>Dragon Q6A</a></ul></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>核心模组</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a aria-current=page class="dropdown__link dropdown__link--active" href=/som/cm>CM 系列</a><ul class=dropdown_item2_dhIT><li><a href=/som/cm/cm3>CM3</a><li><a href=/som/cm/cm3i>CM3I</a><li><a href=/som/cm/cm3j>CM3J</a><li><a href=/som/cm/cm4>CM4</a><li><a aria-current=page class=active href=/som/cm/cm5>CM5</a></ul><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/som/nx>NX 系列</a><ul class=dropdown_item2_dhIT><li><a href=/som/nx/nx4>NX4</a><li><a href=/som/nx/nx5>NX5</a><li><a href=/som/nx/orin-nx>Orin NX</a></ul></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>网络计算</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/e/e20c>E20C</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/e/e24c>E24C</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/e/e52c>E52C</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/e/e54c>E54C</a></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>边缘计算</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/fogwise/airbox>Airbox</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/fogwise/airbox-q900>AIRbox Q900</a></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>智核系列</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/aicore/ax-m1>AX-M1</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/aicore/dx-m1>DX-M1 / DX-M1M</a><li class=menu2_li_hover_y2p4><a class=dropdown__link href=/aicore/sg2300x>SG2300X</a></ul></div></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link><svg viewBox="0 0 24 24" width=20 height=20 aria-hidden=true class=iconLanguage_DSK9><path fill=currentColor d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>中文</a><ul class=dropdown__menu><li class=menu2_li_hover_y2p4><a href=/en/som/cm/cm5/android/low-level-dev target=_self rel="noopener noreferrer" class=dropdown__link lang=en-US>English</a><li class=menu2_li_hover_y2p4><a href=/som/cm/cm5/android/low-level-dev target=_self rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=zh-CN>中文</a></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="切换浅色/暗黑模式(当前为system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><button type=button class="DocSearch DocSearch-Button" aria-label="搜索 (Command+K)"><span class=DocSearch-Button-Container><svg width=20 height=20 class=DocSearch-Search-Icon viewBox="0 0 20 20" aria-hidden=true><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke=currentColor fill=none fill-rule=evenodd stroke-linecap=round stroke-linejoin=round /></svg><span class=DocSearch-Button-Placeholder>搜索</span></span><span class=DocSearch-Button-Keys></span></button></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label=回到顶部 class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label=文档侧边栏 class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/som>核心模组产品线</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/som/cm>CM 系列</a><button aria-label="折叠侧边栏分类 'CM 系列'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm3j>瑞莎 CM3J</a><button aria-label="展开侧边栏分类 '瑞莎 CM3J'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm4>瑞莎 CM4</a><button aria-label="展开侧边栏分类 '瑞莎 CM4'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" tabindex=0 href=/som/cm/cm5>瑞莎 CM5</a><button aria-label="折叠侧边栏分类 '瑞莎 CM5'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/getting-started>快速上手</a><button aria-label="展开侧边栏分类 '快速上手'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/radxa-os>瑞莎系统</a><button aria-label="展开侧边栏分类 '瑞莎系统'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" tabindex=0 href=/som/cm/cm5/android>Android 系统</a><button aria-label="折叠侧边栏分类 'Android 系统'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/android/install-os>系统安装</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/android/app-dev>应用开发</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/android/remote-login>远程登录</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/android/system-config>系统配置</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/som/cm/cm5/android/low-level-dev>底层开发</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/low-dev>底层开发</a><button aria-label="展开侧边栏分类 '底层开发'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/other-os>其他系统</a><button aria-label="展开侧边栏分类 '其他系统'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/accessories>配件</a><button aria-label="展开侧边栏分类 '配件'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm5/hardware>硬件信息</a><button aria-label="展开侧边栏分类 '硬件信息'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/faq>FAQ</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/som/cm/cm5/download>资源下载汇总</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm3>瑞莎 CM3</a><button aria-label="展开侧边栏分类 '瑞莎 CM3'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" tabindex=0 href=/som/cm/cm3i>瑞莎 CM3I</a><button aria-label="展开侧边栏分类 '瑞莎 CM3I'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/som/nx>NX 系列</a><button aria-label="展开侧边栏分类 'NX 系列'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul></nav><button type=button title=收起侧边栏 aria-label=收起侧边栏 class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width=20 height=20 aria-hidden=true class=collapseSidebarButtonIcon_kv0_><g fill=#7a7a7a><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"/><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"/></g></svg></button></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_z5aJ"><div class=docItemContainer_c0TR><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=页面路径><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label=主页面 class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/som/cm><span>CM 系列</span></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/som/cm/cm5><span>瑞莎 CM5</span></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/som/cm/cm5/android><span>Android 系统</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>底层开发</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_bxCs"><button type=button class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>底层开发</h1></header>
|
||
<p>主要介绍 uboot, kernel, aosp 编译打包等内容</p>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=环境配置>环境配置<a href=#环境配置 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h2>
|
||
<p>为了规避 Android 编译过程中因为环境配置出问题,提高开发效率,我们引入了Docker这一工具。</p>
|
||
<p>Docker 是一个开源的应用容器引擎,可以帮助开发者更有效地构建、部署和管理应用程序。</p>
|
||
<p>Dockerfile 是一个构建 Docker 镜像的文本文件,可以根据以下内容构建编译 Android12 所需环境。</p>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">FROM ubuntu:20.04</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN rm /etc/apt/sources.list</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" | tee /etc/apt/sources.list</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">ENV DEBIAN_FRONTEND noninteractive</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get update -y && apt-get install -y software-properties-common apt-utils</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN add-apt-repository -y ppa:deadsnakes/ppa</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get update -y && apt-get install -y python3.8</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get install -y python3-pip && pip install pycrypto</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> libncurses5 libncurses-dev x11proto-core-dev libx11-dev lib32z-dev ccache \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> chmod +x /usr/local/bin/repo && \</span><br></span><span class=token-line style=color:#393A34><span class="token plain"> which repo</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'</span><br></span><span class=token-line style=color:#393A34><span class="token plain">ENV PS1="\[\033[01;37m\]\u@build\[\033[00m\]:\[\033[01;32m\]\w\[\033[00m\]:$ "</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get install -y lzop swig</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get update -y && apt-get install -y tzdata</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN mkdir /opt/toolchains</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-aarch64-none-elf-4.8-2013.11_linux /opt/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-aarch64-none-elf-4.8-2013.11_linux /opt/toolchains/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-arm-none-eabi-6-2017-q2-update /opt/toolchains/gcc-arm-none-eabi-6-2017-q2-update</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf /opt/toolchains/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu /opt/toolchains/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu</span><br></span><span class=token-line style=color:#393A34><span class="token plain">COPY ./gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf /opt/toolchains/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN apt-get install -y net-tools gcc-arm-linux-gnueabihf gcc-arm-none-eabi</span><br></span><span class=token-line style=color:#393A34><span class="token plain">ENV TZ=Asia/Shanghai</span><br></span><span class=token-line style=color:#393A34><span class="token plain">RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span></code></pre></div></div>
|
||
<h4 class="anchor anchorWithStickyNavbar_LWe7" id=构建-docker-镜像>构建 Docker 镜像<a href=#构建-docker-镜像 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h4>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token function" style=color:#d73a49>docker</span><span class="token plain"> build </span><span class="token parameter variable" style=color:#36acaa>-t</span><span class="token plain"> android-builder:12.x --build-arg </span><span class="token assign-left variable" style=color:#36acaa>USER_ID</span><span class="token operator" style=color:#393A34>=</span><span class="token variable" style=color:#36acaa>`</span><span class="token variable function" style=color:#d73a49>id</span><span class="token variable" style=color:#36acaa> </span><span class="token variable parameter variable" style=color:#36acaa>-u</span><span class="token variable" style=color:#36acaa>`</span><span class="token plain"> --build-arg </span><span class="token assign-left variable" style=color:#36acaa>GROUP_ID</span><span class="token operator" style=color:#393A34>=</span><span class="token variable" style=color:#36acaa>`</span><span class="token variable function" style=color:#d73a49>id</span><span class="token variable" style=color:#36acaa> </span><span class="token variable parameter variable" style=color:#36acaa>-g</span><span class="token variable" style=color:#36acaa>`</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>$(</span><span class="token variable" style=color:#36acaa>which-dir-dockerfile-in</span><span class="token variable" style=color:#36acaa>)</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span></code></pre></div></div>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=下载-radxa-android-sdk>下载 Radxa Android SDK<a href=#下载-radxa-android-sdk class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h2>
|
||
<p>Radxa Android SDK 包含数百个 Git 仓库,如果不用 repo 逐个下载会非常繁琐。</p>
|
||
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=repo>Repo<a href=#repo class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h3>
|
||
<p>Repo 是 Android 开发中用于管理多个 Git 仓库的工具,它是一个Python脚本,方便开发者对多个 Git 库进行版本控制和管理。</p>
|
||
<h4 class="anchor anchorWithStickyNavbar_LWe7" id=下载-repo>下载 Repo<a href=#下载-repo class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h4>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'"</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>>></span><span class="token plain"> ~/.bashrc</span><br></span><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token builtin class-name">source</span><span class="token plain"> ~/.bashrc</span><br></span><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token function" style=color:#d73a49>curl</span><span class="token plain"> https://mirrors.tuna.tsinghua.edu.cn/git/git-repo </span><span class="token parameter variable" style=color:#36acaa>-o</span><span class="token plain"> /tmp/repo</span><br></span><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token function" style=color:#d73a49>sudo</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>cp</span><span class="token plain"> /tmp/repo /usr/local/bin/repo</span><br></span><span class=token-line style=color:#393A34><span class="token plain">$ </span><span class="token function" style=color:#d73a49>sudo</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>chmod</span><span class="token plain"> +x /usr/local/bin/repo</span><br></span></code></pre></div></div>
|
||
<h4 class="anchor anchorWithStickyNavbar_LWe7" id=代码下载>代码下载<a href=#代码下载 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h4>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">$ repo init </span><span class="token parameter variable" style=color:#36acaa>-u</span><span class="token plain"> https://github.com/radxa/manifests.git </span><span class="token parameter variable" style=color:#36acaa>-b</span><span class="token plain"> Android12_Radxa_rk14 </span><span class="token parameter variable" style=color:#36acaa>-m</span><span class="token plain"> rockchip-s-release.xml</span><br></span><span class=token-line style=color:#393A34><span class="token plain">$ repo </span><span class="token function" style=color:#d73a49>sync</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-d</span><span class="token plain"> --no-tags </span><span class="token parameter variable" style=color:#36acaa>-j4</span><br></span></code></pre></div></div>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=镜像编译>镜像编译<a href=#镜像编译 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h2>
|
||
<p>镜像编译可以使用两种方法</p>
|
||
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=方法一-推荐>方法一 (<strong>推荐</strong>)<a href=#方法一-推荐 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h3>
|
||
<p>使用 SDK 编译脚本方式编译</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">source</span><span class="token plain"> build/envsetup.sh</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ lunch RadxaCM5-userdebug</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ ./build.sh </span><span class="token parameter variable" style=color:#36acaa>-AUCKup</span><br></span></code></pre></div></div>
|
||
<p>等待编译完成就可以在 IMAGE 目录找到镜像</p>
|
||
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=方法二>方法二<a href=#方法二 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h3>
|
||
<p>可以根据这个方法一步一步编译镜像</p>
|
||
<ol>
|
||
<li>设置编译项目的环境</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>PRODUCT_NAME</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"RadxaCM5"</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>PRODUCT_UBOOT_CONFIG</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"rk3588"</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>PRODUCT_KERNEL_CONFIG</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"rockchip_defconfig android-11.config RadxaCM5.config"</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>PRODUCT_KERNEL_DTS</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"rk3588s-radxa-cm5-io"</span><br></span></code></pre></div></div>
|
||
<ol start=2>
|
||
<li>编译 U-boot</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">cd</span><span class="token plain"> u-boot</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/u-boot $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> clean</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/u-boot $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> mrproper</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/u-boot $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> distclean</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/u-boot $ ./make.sh </span><span class="token variable" style=color:#36acaa>${PRODUCT_UBOOT_CONFIG}</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">cd</span><span class="token plain"> -</span><br></span></code></pre></div></div>
|
||
<ol start=3>
|
||
<li>编译内核</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">cd</span><span class="token plain"> kernel</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/kernel $ </span><span class="token assign-left variable" style=color:#36acaa>ADDON_ARGS</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/kernel $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> clean</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/kernel $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>$ADDON_ARGS</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>ARCH</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">arm64 </span><span class="token variable" style=color:#36acaa>${PRODUCT_KERNEL_CONFIG}</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/kernel $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>$ADDON_ARGS</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#36acaa>ARCH</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">arm64 </span><span class="token variable" style=color:#36acaa>${PRODUCT_KERNEL_DTS}</span><span class="token plain">.img -j</span><span class="token variable" style=color:#36acaa>$(</span><span class="token variable" style=color:#36acaa>nproc</span><span class="token variable" style=color:#36acaa>)</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">cd</span><span class="token plain"> -</span><br></span></code></pre></div></div>
|
||
<ol start=4>
|
||
<li>编译AOSP</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">source</span><span class="token plain"> build/envsetup.sh</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ lunch </span><span class="token variable" style=color:#36acaa>${PRODUCT_NAME}</span><span class="token plain">-userdebug</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token function" style=color:#d73a49>make</span><span class="token plain"> -j</span><span class="token variable" style=color:#36acaa>$(</span><span class="token variable" style=color:#36acaa>nproc</span><span class="token variable" style=color:#36acaa>)</span><br></span></code></pre></div></div>
|
||
<ol start=5>
|
||
<li>制作 Images</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token function" style=color:#d73a49>rm</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-rf</span><span class="token plain"> rockdev</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token function" style=color:#d73a49>ln</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-s</span><span class="token plain"> RKTools/linux/Linux_Pack_Firmware/rockdev </span><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12 $ ./mkimage.sh</span><br></span></code></pre></div></div>
|
||
<ol start=6>
|
||
<li>打包 Image</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><span class=token-line style=color:#393A34><span class="token plain">android12 $ </span><span class="token builtin class-name">cd</span><span class="token plain"> rockdev</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/rockdev $ </span><span class="token function" style=color:#d73a49>rm</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-rf</span><span class="token plain"> Image</span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/rockdev $ </span><span class="token function" style=color:#d73a49>ln</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-s</span><span class="token plain"> Image-</span><span class="token variable" style=color:#36acaa>${PRODUCT_NAME}</span><span class="token plain"> Image</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># 打包成 RK update 格式镜像</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/rockdev $ ./mkupdate_rk356x.sh</span><br></span><span class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># 打包成 GPT 格式镜像</span><span class="token plain"></span><br></span><span class=token-line style=color:#393A34><span class="token plain">android12/rockdev $ ./android-gpt.sh</span><br></span></code></pre></div></div>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=常见问题>常见问题<a href=#常见问题 class=hash-link aria-label=标题的直接链接 title=标题的直接链接></a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class=issues_center_hgDx><a href="https://github.com/radxa-docs/docs/issues/new?title=Issue%20from%20som%2Fcm%2Fcm5%2Fandroid%2Flow-level-dev&body=URL%3A%20%5Bhttps%3A%2F%2Fdocs.radxa.com%2Fsom%2Fcm%2Fcm5%2Fandroid%2Flow-level-dev%5D(https%3A%2F%2Fdocs.radxa.com%2Fsom%2Fcm%2Fcm5%2Fandroid%2Flow-level-dev)%0A%0ATime%3A%204%2F14%2F2026%2C%2011%3A30%3A17%20AM" target=_blank rel="noopener noreferrer"><svg t=1727244518678 class=icon viewBox="0 0 1024 1024" version=1.1 xmlns=http://www.w3.org/2000/svg p-id=6366 xlink=http://www.w3.org/1999/xlink width=20 height=20><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" p-id=6367 fill=#2e8555 /><path d="M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z" p-id=6368 fill=#2e8555 /></svg>报告问题</a></div><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/radxa-docs/docs/edit/main/docs/som/cm/cm5/android/low-level-dev.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>编辑此页</a></div><div class="col lastUpdated_JAkA"></div></div></footer><ul class=dedicateUl_vnqO></ul></article><nav class=pagination-nav aria-label=文档分页导航><a class="pagination-nav__link pagination-nav__link--prev" href=/som/cm/cm5/android/system-config><div class=pagination-nav__sublabel>上一页</div><div class=pagination-nav__label>系统配置</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/som/cm/cm5/low-dev><div class=pagination-nav__sublabel>下一页</div><div class=pagination-nav__label>底层开发</div></a></nav></div><div style="margin-top:2rem;padding-top:2rem;border-top:1px solid #000" class=giscus-container><p style=font-size:.8rem;color:#74bc1f;text-align:center>您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。</div><p style=text-align:center;margin-top:2rem;margin-bottom:0><a href=https://docs.radxa.com>Radxa-docs</a> © 2026 by <a href=/license> Radxa Computer (Shenzhen) Co.,Ltd.</a> is licensed under <a href=https://creativecommons.org/licenses/by/4.0/> CC BY 4.0</a></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#环境配置 class="table-of-contents__link toc-highlight">环境配置</a><li><a href=#下载-radxa-android-sdk class="table-of-contents__link toc-highlight">下载 Radxa Android SDK</a><ul><li><a href=#repo class="table-of-contents__link toc-highlight">Repo</a></ul><li><a href=#镜像编译 class="table-of-contents__link toc-highlight">镜像编译</a><ul><li><a href=#方法一-推荐 class="table-of-contents__link toc-highlight">方法一 (<strong>推荐</strong>)</a><li><a href=#方法二 class="table-of-contents__link toc-highlight">方法二</a></ul><li><a href=#常见问题 class="table-of-contents__link toc-highlight">常见问题</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>瑞莎</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://radxa.com/ target=_self rel="noopener noreferrer" class=footer__link-item>主页</a><li class=footer__item><a href=https://radxa.com/product target=_self rel="noopener noreferrer" class=footer__link-item>产品</a><li class=footer__item><a href=https://radxa.com/news target=_self rel="noopener noreferrer" class=footer__link-item>新闻</a><li class=footer__item><a href=https://radxa.com/services target=_self rel="noopener noreferrer" class=footer__link-item>服务</a><li class=footer__item><a href=https://radxa.com/community target=_self rel="noopener noreferrer" class=footer__link-item>社区</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>支持</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://docs.radxa.com/ target=_blank rel="noopener noreferrer" class=footer__link-item>帮助文档<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://forum.radxa.com/ target=_blank rel="noopener noreferrer" class=footer__link-item>支持论坛<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/radxa target=_blank rel="noopener noreferrer" class=footer__link-item>开源仓库<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>关于</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://radxa.com/about target=_blank rel="noopener noreferrer" class=footer__link-item>关于瑞莎</a><li class=footer__item><a href=https://radxa.com/about?#contact target=_blank rel="noopener noreferrer" class=footer__link-item>联系瑞莎</a><li class=footer__item><a href=https://radxa.com/about#distributors target=_blank rel="noopener noreferrer" class=footer__link-item>瑞莎分销商</a><li class=footer__item>
|
||
<div class=footer_box>
|
||
<div class=footer_center>
|
||
<div class=log></div>
|
||
<div class=iconBox>
|
||
<div class=men>Follow us</div>
|
||
<ul>
|
||
<li>
|
||
<a class="a_on1 iconpg" href=https://github.com/radxa></a>
|
||
</li>
|
||
<li>
|
||
<a class="a_on2 iconpg" href=https://discord.com/invite/mn73YNWdHY></a>
|
||
</li>
|
||
<li>
|
||
<a class="a_on3 iconpg" href=https://t.me/rockpi4></a>
|
||
</li>
|
||
<li class=a_on4_li>
|
||
<div class="a_on4 iconpg"></div>
|
||
<div class=vxMa></div>
|
||
</li>
|
||
<li class=a_on5_li>
|
||
<div class="a_on5 iconpg"></div>
|
||
<div class=qqMa></div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</ul></div></div></div></footer></div><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9ec90476edbd2f57',t:'MTc3NjIzNTg0MQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"47fce5d503594c12ac6e88b3a177c883","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
|