<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.radxa.com/mw/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.radxa.com/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ahren</id>
		<title>Radxa Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.radxa.com/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ahren"/>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Special:Contributions/Ahren"/>
		<updated>2026-06-13T13:40:48Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.3</generator>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/downloads</id>
		<title>Rockpi4/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/downloads"/>
				<updated>2020-09-27T10:53:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: /*  Android 10 (HDMI 4K)(RKUpdate) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi  BaiduPan]''' or '''[https://github.com/radxa/rock-pi-images-released/releases Radxa Github Release]'''.&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model A&amp;amp;B&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;  [[File:Android-tv-logo.jpg | 200px |link=https://rock.sh/rockpi-android9-tv-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-tv-download Android 7 TV(Deprecated)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-tv-gpt-download Android 9 TV]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Box Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv Install Wiki,]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Pre-installed opengapps 7.1.2, TV Google Play, Google LeanbackLauncher, YouTube.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-dsi-download Android &amp;amp;ensp;7 (DSI 480P)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-download Android &amp;amp;ensp;7 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-gpt-download Android &amp;amp;ensp;9 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi4b-android10-gpt-download  Android 10 (HDMI 4K)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====[https://rock.sh/rockpi4c-android10-gpt-download Android 10  (HDMI 4K,DP 2K)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android7 Install Wiki]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
DSI 480P: Canvas size 480*800&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official 7&amp;quot; Display&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official IMX219 camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz Ubuntu Server 18.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4c_ubuntu_focal_minimal_arm64_20200820_1207-gpt.img.gz Ubuntu Server 20.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c_debian_stretch_desktop_arm64_20200716_0647-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2020-07-16&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Third Party Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- armbian --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Armbian-logo.png | link=https://www.armbian.com/rock-pi-4/ ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.armbian.com/rock-pi-4/ Armbian minimal, CLI or desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://docs.armbian.com/User-Guide_Getting-Started/ Getting started] | [https://github.com/armbian/build Build from sources?]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Buster / Bullseye / Bionic / Focal &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Updated: February, May, August, November.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- manjaro --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Logo.png ]]&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/minimal/19.06/Manjaro-ARM-minimal-rockpi4-19.06.img.xz Manjaro Minimal]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.xtom.com.hk/osdn//storage/g/m/ma/manjaro-arm/rockpi4/lxqt/19.06/Manjaro-ARM-lxqt-rockpi4-19.06.img.xz Manjaro LXQT]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/kde/19.06/Manjaro-ARM-kde-rockpi4-19.06.img.xz Manjaro KDE]=====&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Manjaro Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.manjaro.org/ Install Wiki]&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Manjaro.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- recalbox --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Recalbox-logo.png | link=https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz Recalbox (Pre-Release of Recalbox v6 DragonBlaze)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Recalbox Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.recalbox.com/diyrecalbox/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Recalbox Beta. [https://github.com/mrfixit2001/recalbox-rockchip/releases Release notes.]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- libreelec --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Libreelec-logo.jpg | link=http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz  LibreELEC (Leia 9.2.1)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;LibreELEC Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://libreelec.wiki/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;LibreELEC [https://libreelec.tv/2020/03/libreelec-leia-9-2-1/ Leia 9.2.1 Release notes]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- DietPi --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Dietpi_logo.png | link=https://dietpi.com/downloads/testing/DietPi_ROCKPi4-ARMv8-Buster.7z]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/downloads/images/DietPi_ROCKPi4-ARMv8-Buster.7z  DietPi]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;DietPi Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/phpbb/viewtopic.php?p=9#p9 Getting started]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;DietPi Buster&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Slackware --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Slackware-logo.png | link=http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM Base]=====&lt;br /&gt;
&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-xfce-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM XFCE]===== &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
Build 2020-07-18&lt;br /&gt;
&lt;br /&gt;
======[http://dl.fail.pp.ua/slackware/images/rock_pi_4/README.TXT README.TXT]======&lt;br /&gt;
&lt;br /&gt;
======[https://forum.radxa.com/t/slarm64-aarch64-unofficial-slackware/419/4 Forum discussion]======&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FreeBSD --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Freebsd_logo.png | link=https://www.freebsd.org/platforms/arm.html ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-CURRENT-Rock-Pi-4-20200707.img.xz FreeBSD 13 Minimal ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-DESKTOP-Rock-Pi-4-20200715.img.xz FreeBSD 13 Desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build: 2020-07-07&lt;br /&gt;
&lt;br /&gt;
[https://forum.radxa.com/t/freebsd-13-current-on-rock-pi4/2071/4 Forum Discussion Thread]&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community Built Images&amp;lt;/span&amp;gt;==== &lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Community-logo.png | link=https://wiki.radxa.com/Rockpi4/downloads/community_built_images]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images Community Image]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Image built by Community members(Update 2019-09-11)&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images New ROM AndroidTV Pie Custom firmware by mo123]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/downloads</id>
		<title>Rockpi4/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/downloads"/>
				<updated>2020-09-27T10:52:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi  BaiduPan]''' or '''[https://github.com/radxa/rock-pi-images-released/releases Radxa Github Release]'''.&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model A&amp;amp;B&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;  [[File:Android-tv-logo.jpg | 200px |link=https://rock.sh/rockpi-android9-tv-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-tv-download Android 7 TV(Deprecated)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-tv-gpt-download Android 9 TV]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Box Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv Install Wiki,]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Pre-installed opengapps 7.1.2, TV Google Play, Google LeanbackLauncher, YouTube.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-dsi-download Android &amp;amp;ensp;7 (DSI 480P)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-download Android &amp;amp;ensp;7 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-gpt-download Android &amp;amp;ensp;9 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi4b-android10-download  Android 10 (HDMI 4K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi4c-android10-gpt-download Android 10  (HDMI 4K,DP 2K)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android7 Install Wiki]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
DSI 480P: Canvas size 480*800&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official 7&amp;quot; Display&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official IMX219 camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz Ubuntu Server 18.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4c_ubuntu_focal_minimal_arm64_20200820_1207-gpt.img.gz Ubuntu Server 20.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c_debian_stretch_desktop_arm64_20200716_0647-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2020-07-16&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Third Party Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- armbian --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Armbian-logo.png | link=https://www.armbian.com/rock-pi-4/ ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.armbian.com/rock-pi-4/ Armbian minimal, CLI or desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://docs.armbian.com/User-Guide_Getting-Started/ Getting started] | [https://github.com/armbian/build Build from sources?]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Buster / Bullseye / Bionic / Focal &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Updated: February, May, August, November.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- manjaro --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Logo.png ]]&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/minimal/19.06/Manjaro-ARM-minimal-rockpi4-19.06.img.xz Manjaro Minimal]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.xtom.com.hk/osdn//storage/g/m/ma/manjaro-arm/rockpi4/lxqt/19.06/Manjaro-ARM-lxqt-rockpi4-19.06.img.xz Manjaro LXQT]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/kde/19.06/Manjaro-ARM-kde-rockpi4-19.06.img.xz Manjaro KDE]=====&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Manjaro Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.manjaro.org/ Install Wiki]&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Manjaro.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- recalbox --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Recalbox-logo.png | link=https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz Recalbox (Pre-Release of Recalbox v6 DragonBlaze)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Recalbox Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.recalbox.com/diyrecalbox/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Recalbox Beta. [https://github.com/mrfixit2001/recalbox-rockchip/releases Release notes.]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- libreelec --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Libreelec-logo.jpg | link=http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz  LibreELEC (Leia 9.2.1)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;LibreELEC Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://libreelec.wiki/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;LibreELEC [https://libreelec.tv/2020/03/libreelec-leia-9-2-1/ Leia 9.2.1 Release notes]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- DietPi --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Dietpi_logo.png | link=https://dietpi.com/downloads/testing/DietPi_ROCKPi4-ARMv8-Buster.7z]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/downloads/images/DietPi_ROCKPi4-ARMv8-Buster.7z  DietPi]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;DietPi Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/phpbb/viewtopic.php?p=9#p9 Getting started]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;DietPi Buster&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Slackware --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Slackware-logo.png | link=http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM Base]=====&lt;br /&gt;
&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-xfce-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM XFCE]===== &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
Build 2020-07-18&lt;br /&gt;
&lt;br /&gt;
======[http://dl.fail.pp.ua/slackware/images/rock_pi_4/README.TXT README.TXT]======&lt;br /&gt;
&lt;br /&gt;
======[https://forum.radxa.com/t/slarm64-aarch64-unofficial-slackware/419/4 Forum discussion]======&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FreeBSD --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Freebsd_logo.png | link=https://www.freebsd.org/platforms/arm.html ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-CURRENT-Rock-Pi-4-20200707.img.xz FreeBSD 13 Minimal ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-DESKTOP-Rock-Pi-4-20200715.img.xz FreeBSD 13 Desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build: 2020-07-07&lt;br /&gt;
&lt;br /&gt;
[https://forum.radxa.com/t/freebsd-13-current-on-rock-pi4/2071/4 Forum Discussion Thread]&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community Built Images&amp;lt;/span&amp;gt;==== &lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Community-logo.png | link=https://wiki.radxa.com/Rockpi4/downloads/community_built_images]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images Community Image]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Image built by Community members(Update 2019-09-11)&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images New ROM AndroidTV Pie Custom firmware by mo123]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/downloads</id>
		<title>Rockpi4/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/downloads"/>
				<updated>2020-07-27T08:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi  BaiduPan]'''.&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model A&amp;amp;B&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;  [[File:Android-tv-logo.jpg | 200px |link=https://rock.sh/rockpi-android9-tv-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-tv-download Android 7 TV(Deprecated)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-tv-gpt-download Android 9 TV]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Box Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv Install Wiki,]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Pre-installed opengapps 7.1.2, TV Google Play, Google LeanbackLauncher, YouTube.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-dsi-download Android &amp;amp;ensp;7 (DSI 480P)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-download Android &amp;amp;ensp;7 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-gpt-download Android &amp;amp;ensp;9 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi4b-android10-download  Android 10 (HDMI 4K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi4c-android10-download Android 10  (HDMI 4K,DP 2K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android7 Install Wiki]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
DSI 480P: Canvas size 480*800&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official 7&amp;quot; Display&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official IMX219 camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz Ubuntu Server 18.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c_debian_stretch_desktop_arm64_20200716_0647-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2020-07-16&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Third Party Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- armbian --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Armbian-logo.png | link=https://www.armbian.com/rock-pi-4/ ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.armbian.com/rock-pi-4/ Armbian minimal, CLI or desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://docs.armbian.com/User-Guide_Getting-Started/ Getting started] | [https://github.com/armbian/build Build from sources?]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Buster / Bullseye / Bionic / Focal &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Updated: February, May, August, November.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- manjaro --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Logo.png ]]&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/minimal/19.06/Manjaro-ARM-minimal-rockpi4-19.06.img.xz Manjaro Minimal]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.xtom.com.hk/osdn//storage/g/m/ma/manjaro-arm/rockpi4/lxqt/19.06/Manjaro-ARM-lxqt-rockpi4-19.06.img.xz Manjaro LXQT]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/kde/19.06/Manjaro-ARM-kde-rockpi4-19.06.img.xz Manjaro KDE]=====&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Manjaro Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.manjaro.org/ Install Wiki]&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Manjaro.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- recalbox --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Recalbox-logo.png | link=https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz Recalbox (Pre-Release of Recalbox v6 DragonBlaze)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Recalbox Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.recalbox.com/diyrecalbox/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Recalbox Beta. [https://github.com/mrfixit2001/recalbox-rockchip/releases Release notes.]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- libreelec --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Libreelec-logo.jpg | link=http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz  LibreELEC (Leia 9.2.1)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;LibreELEC Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://libreelec.wiki/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;LibreELEC [https://libreelec.tv/2020/03/libreelec-leia-9-2-1/ Leia 9.2.1 Release notes]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- DietPi --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Dietpi_logo.png | link=https://dietpi.com/downloads/testing/DietPi_ROCKPi4-ARMv8-Buster.7z]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/downloads/images/DietPi_ROCKPi4-ARMv8-Buster.7z  DietPi]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;DietPi Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/phpbb/viewtopic.php?p=9#p9 Getting started]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;DietPi Buster&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Slackware --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Slackware-logo.png | link=http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM Base]=====&lt;br /&gt;
&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-xfce-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM XFCE]===== &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
Build 2020-07-18&lt;br /&gt;
&lt;br /&gt;
======[http://dl.fail.pp.ua/slackware/images/rock_pi_4/README.TXT README.TXT]======&lt;br /&gt;
&lt;br /&gt;
======[https://forum.radxa.com/t/slarm64-aarch64-unofficial-slackware/419/4 Forum discussion]======&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FreeBSD --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Freebsd_logo.png | link=https://www.freebsd.org/platforms/arm.html ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-CURRENT-Rock-Pi-4-20200707.img.xz FreeBSD 13 Minimal ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-DESKTOP-Rock-Pi-4-20200715.img.xz FreeBSD 13 Desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build: 2020-07-07&lt;br /&gt;
&lt;br /&gt;
[https://forum.radxa.com/t/freebsd-13-current-on-rock-pi4/2071/4 Forum Discussion Thread]&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community Built Images&amp;lt;/span&amp;gt;==== &lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Community-logo.png | link=https://wiki.radxa.com/Rockpi4/downloads/community_built_images]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images Community Image]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Image built by Community members(Update 2019-09-11)&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images New ROM AndroidTV Pie Custom firmware by mo123]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/downloads</id>
		<title>Rockpi4/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/downloads"/>
				<updated>2020-07-27T08:32:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi  BaiduPan]'''.&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model A&amp;amp;B&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;  [[File:Android-tv-logo.jpg | 200px |link=https://rock.sh/rockpi-android9-tv-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-tv-download Android 7 TV(Deprecated)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-tv-gpt-download Android 9 TV]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Box Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv Install Wiki,]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Pre-installed opengapps 7.1.2, TV Google Play, Google LeanbackLauncher, YouTube.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-dsi-download Android &amp;amp;ensp;7 (DSI 480P)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-download Android &amp;amp;ensp;7 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-gpt-download Android &amp;amp;ensp;9 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi4b-android10-download  Android 10 (HDMI 4K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi4c-android10-download Android10  (HDMI 4K,DP 2K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android7 Install Wiki]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
DSI 480P: Canvas size 480*800&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official 7&amp;quot; Display&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official IMX219 camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz Ubuntu Server 18.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c_debian_stretch_desktop_arm64_20200716_0647-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2020-07-16&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Third Party Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- armbian --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Armbian-logo.png | link=https://www.armbian.com/rock-pi-4/ ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.armbian.com/rock-pi-4/ Armbian minimal, CLI or desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://docs.armbian.com/User-Guide_Getting-Started/ Getting started] | [https://github.com/armbian/build Build from sources?]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Buster / Bullseye / Bionic / Focal &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Updated: February, May, August, November.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- manjaro --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Logo.png ]]&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/minimal/19.06/Manjaro-ARM-minimal-rockpi4-19.06.img.xz Manjaro Minimal]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.xtom.com.hk/osdn//storage/g/m/ma/manjaro-arm/rockpi4/lxqt/19.06/Manjaro-ARM-lxqt-rockpi4-19.06.img.xz Manjaro LXQT]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/kde/19.06/Manjaro-ARM-kde-rockpi4-19.06.img.xz Manjaro KDE]=====&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Manjaro Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.manjaro.org/ Install Wiki]&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Manjaro.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- recalbox --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Recalbox-logo.png | link=https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz Recalbox (Pre-Release of Recalbox v6 DragonBlaze)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Recalbox Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.recalbox.com/diyrecalbox/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Recalbox Beta. [https://github.com/mrfixit2001/recalbox-rockchip/releases Release notes.]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- libreelec --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Libreelec-logo.jpg | link=http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz  LibreELEC (Leia 9.2.1)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;LibreELEC Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://libreelec.wiki/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;LibreELEC [https://libreelec.tv/2020/03/libreelec-leia-9-2-1/ Leia 9.2.1 Release notes]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- DietPi --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Dietpi_logo.png | link=https://dietpi.com/downloads/testing/DietPi_ROCKPi4-ARMv8-Buster.7z]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/downloads/images/DietPi_ROCKPi4-ARMv8-Buster.7z  DietPi]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;DietPi Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/phpbb/viewtopic.php?p=9#p9 Getting started]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;DietPi Buster&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Slackware --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Slackware-logo.png | link=http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM Base]=====&lt;br /&gt;
&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-xfce-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM XFCE]===== &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
Build 2020-07-18&lt;br /&gt;
&lt;br /&gt;
======[http://dl.fail.pp.ua/slackware/images/rock_pi_4/README.TXT README.TXT]======&lt;br /&gt;
&lt;br /&gt;
======[https://forum.radxa.com/t/slarm64-aarch64-unofficial-slackware/419/4 Forum discussion]======&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FreeBSD --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Freebsd_logo.png | link=https://www.freebsd.org/platforms/arm.html ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-CURRENT-Rock-Pi-4-20200707.img.xz FreeBSD 13 Minimal ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-DESKTOP-Rock-Pi-4-20200715.img.xz FreeBSD 13 Desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build: 2020-07-07&lt;br /&gt;
&lt;br /&gt;
[https://forum.radxa.com/t/freebsd-13-current-on-rock-pi4/2071/4 Forum Discussion Thread]&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community Built Images&amp;lt;/span&amp;gt;==== &lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Community-logo.png | link=https://wiki.radxa.com/Rockpi4/downloads/community_built_images]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images Community Image]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Image built by Community members(Update 2019-09-11)&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images New ROM AndroidTV Pie Custom firmware by mo123]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/downloads</id>
		<title>Rockpi4/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/downloads"/>
				<updated>2020-07-27T08:30:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi  BaiduPan]'''.&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model A&amp;amp;B&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi 4 Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;  [[File:Android-tv-logo.jpg | 200px |link=https://rock.sh/rockpi-android9-tv-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-tv-download Android 7 TV]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-tv-gpt-download Android 9 TV]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Box Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv Install Wiki,]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Pre-installed opengapps 7.1.2, TV Google Play, Google LeanbackLauncher, YouTube.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-dsi-download Android &amp;amp;ensp;7 (DSI 480P)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android7-download Android &amp;amp;ensp;7 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi-android9-gpt-download Android &amp;amp;ensp;9 (HDMI 4K)]=====&lt;br /&gt;
=====[https://rock.sh/rockpi4b-android10-download  Android 10 (HDMI 4K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpi4c-android10-download Android10  (HDMI 4K,DP 2K)(RKUpdate)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android7 Install Wiki]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/rockpi-android9 Android9 Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
DSI 480P: Canvas size 480*800&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official 7&amp;quot; Display&lt;br /&gt;
&lt;br /&gt;
Support Raspberry Pi official IMX219 camera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz Ubuntu Server 18.04]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi 4C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c_debian_stretch_desktop_arm64_20200716_0647-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2020-07-16&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Third Party Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- armbian --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Armbian-logo.png | link=https://www.armbian.com/rock-pi-4/ ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.armbian.com/rock-pi-4/ Armbian minimal, CLI or desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://docs.armbian.com/User-Guide_Getting-Started/ Getting started] | [https://github.com/armbian/build Build from sources?]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Buster / Bullseye / Bionic / Focal &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Updated: February, May, August, November.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- manjaro --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Logo.png ]]&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/minimal/19.06/Manjaro-ARM-minimal-rockpi4-19.06.img.xz Manjaro Minimal]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.xtom.com.hk/osdn//storage/g/m/ma/manjaro-arm/rockpi4/lxqt/19.06/Manjaro-ARM-lxqt-rockpi4-19.06.img.xz Manjaro LXQT]=====&lt;br /&gt;
&lt;br /&gt;
=====[https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rockpi4/kde/19.06/Manjaro-ARM-kde-rockpi4-19.06.img.xz Manjaro KDE]=====&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Manjaro Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.manjaro.org/ Install Wiki]&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Manjaro.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- recalbox --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Recalbox-logo.png | link=https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://github.com/mrfixit2001/recalbox-rockchip/releases/download/200607/recalbox-rockpi4-mrfixit-200607.img.xz Recalbox (Pre-Release of Recalbox v6 DragonBlaze)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Recalbox Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://www.recalbox.com/diyrecalbox/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;Recalbox Beta. [https://github.com/mrfixit2001/recalbox-rockchip/releases Release notes.]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- libreelec --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Libreelec-logo.jpg | link=http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://releases.libreelec.tv/LibreELEC-RK3399.arm-9.2.1-rock-pi-4.img.gz  LibreELEC (Leia 9.2.1)]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;LibreELEC Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://libreelec.wiki/ Install Wiki.]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;LibreELEC [https://libreelec.tv/2020/03/libreelec-leia-9-2-1/ Leia 9.2.1 Release notes]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!-- DietPi --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Dietpi_logo.png | link=https://dietpi.com/downloads/testing/DietPi_ROCKPi4-ARMv8-Buster.7z]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/downloads/images/DietPi_ROCKPi4-ARMv8-Buster.7z  DietPi]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;DietPi Product.&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://dietpi.com/phpbb/viewtopic.php?p=9#p9 Getting started]&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;DietPi Buster&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Slackware --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Slackware-logo.png | link=http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-base-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM Base]=====&lt;br /&gt;
&lt;br /&gt;
=====[http://dl.fail.pp.ua/slackware/images/rock_pi_4/slarm64-current-aarch64-xfce-rootfs-20200628-4.4.230-rock_pi_4-build-20200718.img.zst Slackware ARM XFCE]===== &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
Build 2020-07-18&lt;br /&gt;
&lt;br /&gt;
======[http://dl.fail.pp.ua/slackware/images/rock_pi_4/README.TXT README.TXT]======&lt;br /&gt;
&lt;br /&gt;
======[https://forum.radxa.com/t/slarm64-aarch64-unofficial-slackware/419/4 Forum discussion]======&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FreeBSD --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Freebsd_logo.png | link=https://www.freebsd.org/platforms/arm.html ]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-CURRENT-Rock-Pi-4-20200707.img.xz FreeBSD 13 Minimal ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[http://dev.kubsu.ru/images/FreeBSD-aarch64-13.0-DESKTOP-Rock-Pi-4-20200715.img.xz FreeBSD 13 Desktop ]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build: 2020-07-07&lt;br /&gt;
&lt;br /&gt;
[https://forum.radxa.com/t/freebsd-13-current-on-rock-pi4/2071/4 Forum Discussion Thread]&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community Built Images&amp;lt;/span&amp;gt;==== &lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; class=&amp;quot;table table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-md-2 mwbs-color-darker&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;8%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbnail&amp;quot; style=&amp;quot;display:  table-cell;&amp;quot;&amp;gt;[[File:Community-logo.png | link=https://wiki.radxa.com/Rockpi4/downloads/community_built_images]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th width=&amp;quot;45%&amp;quot; style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h5 class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images Community Image]&amp;lt;/h5&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;vertical-align:  middle;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot; style=&amp;quot;text-align:  left;padding-left:  10px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; style=&amp;quot;display:  inline;&amp;quot;&amp;gt;Image built by Community members(Update 2019-09-11)&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;text-left&amp;quot; &amp;gt;[https://wiki.radxa.com/Rockpi4/downloads/community_built_images New ROM AndroidTV Pie Custom firmware by mo123]&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android10</id>
		<title>Rockpi4/rockpi-android10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android10"/>
				<updated>2020-05-29T02:10:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android10}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android10 | Android10]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig&lt;br /&gt;
&lt;br /&gt;
    #### For China&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        which repo&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&lt;br /&gt;
    #### For China End&lt;br /&gt;
&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    ENV USER=android10-docker&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android10-docker&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10       $ cd u-boot&lt;br /&gt;
    radxa:rockpi4-android10/u-boot$ ./make.sh rk3399&lt;br /&gt;
    radxa:rockpi4-android10/u-boot$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10       $ cd kernel&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ make rockchip_defconfig&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10$ source build/envsetup.sh&lt;br /&gt;
    radxa:rockpi4-android10$ lunch rk3399_Android10-userdebug&lt;br /&gt;
    radxa:rockpi4-android10$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa:rockpi4-android10$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10        $ cd rockdev&lt;br /&gt;
    radxa:rockpi4-android10/rockdev$ ln -s Image-rk3399_Android10 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10/rockdev$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android10</id>
		<title>Rockpi4/rockpi-android10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android10"/>
				<updated>2020-05-29T02:08:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: Created page with &amp;quot;__NOTOC__  {{rockpi4_header}}  {{Languages|Rockpi4/rockpi-android10}}   ROCK Pi 4 &amp;gt;  Android10     Recommend build host is Ubuntu 16...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android10}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android10 | Android10]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FROM ubuntu:xenial&lt;br /&gt;
&lt;br /&gt;
RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
    zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
    lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
    libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
    htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
    dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig&lt;br /&gt;
&lt;br /&gt;
#### For China&lt;br /&gt;
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
    chmod +x /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
    which repo&lt;br /&gt;
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&lt;br /&gt;
#### For China End&lt;br /&gt;
&lt;br /&gt;
RUN pip install pycrypto&lt;br /&gt;
ENV USER=android10-docker&lt;br /&gt;
ARG USER_ID=0&lt;br /&gt;
ARG GROUP_ID=0&lt;br /&gt;
RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
USER android10-docker&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10       $ cd u-boot&lt;br /&gt;
    radxa:rockpi4-android10/u-boot$ ./make.sh rk3399&lt;br /&gt;
    radxa:rockpi4-android10/u-boot$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10       $ cd kernel&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ make rockchip_defconfig&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa:rockpi4-android10/kernel$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10$ source build/envsetup.sh&lt;br /&gt;
    radxa:rockpi4-android10$ lunch rk3399_Android10-userdebug&lt;br /&gt;
    radxa:rockpi4-android10$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa:rockpi4-android10$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10        $ cd rockdev&lt;br /&gt;
    radxa:rockpi4-android10/rockdev$ ln -s Image-rk3399_Android10 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android10/rockdev$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android7</id>
		<title>Rockpi4/rockpi-android7</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android7"/>
				<updated>2020-05-11T02:44:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android7}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android7 | Android7]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
=== Repo ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Init Environment ===&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.  &lt;br /&gt;
&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DockerFile ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android7-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android7-docker&lt;br /&gt;
&lt;br /&gt;
    USER android7-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:7.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Download source code ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android7&lt;br /&gt;
    radxa$ cd rockpi4-android7&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests -b rk3399-all-7.1 -m rk3399_n_all_release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
== Build u-boot ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rock-pi-4b-rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
== Building kernel ==&lt;br /&gt;
For DSI 480P, support Raspberry Pi official 7&amp;quot; Display.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For HDMI 4K&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b-hdmi.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
== Building AOSP ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_all-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
== Generate  images ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    └── uboot.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generated RkUpdate Image ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_all Image&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
== Generated GPT Image ==&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_all Image&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:3936291&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           122879          24.000000      MB&lt;br /&gt;
    boot            122880          188415          32.000000      MB&lt;br /&gt;
    recovery        188416          253951          32.000000      MB&lt;br /&gt;
    backup          253952          483327          112.000000     MB&lt;br /&gt;
    cache           483328          745471          128.000000     MB&lt;br /&gt;
    system          745472          3891199         1536.000000    MB&lt;br /&gt;
    metadata        3891200         3923967         16.000000      MB&lt;br /&gt;
    baseparamer     3923968         3932159         4.000000       MB&lt;br /&gt;
    userdata        3932160         3932159         0.000000       MB&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-21T02:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mraa Java Lib is packaged in aar format and can be used in AndroidStudio: [http://rock.sh/radxa-android-mraa aar]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:Uart2(consloe),Uart4,SPI2,I2C2,I2C7,PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 1 || i2c2 || ROCK_PI_4_SPI1 || 1 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 2 || i2c6 || ROCK_PI_4_SPI2 || 0 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 0 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || String  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || byte[]  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || byte[]  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-21T02:11:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mraa Java Lib is packaged in aar format and can be used in AndroidStudio: [http://rock.sh/radxa-android-mraa aar]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:Uart2(consloe),Uart4,SPI2,I2C2,I2C7,PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 1 || i2c2 || ROCK_PI_4_SPI1 || 1 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 2 || i2c6 || ROCK_PI_4_SPI2 || 0 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 0 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-21T02:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mraa Java Lib is packaged in aar format and can be used in AndroidStudio: [aar](http://rock.sh/radxa-android-mraa)&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:Uart2(consloe),Uart4,SPI2,I2C2,I2C7,PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 1 || i2c2 || ROCK_PI_4_SPI1 || 1 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 2 || i2c6 || ROCK_PI_4_SPI2 || 0 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 0 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4</id>
		<title>Rockpi4</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4"/>
				<updated>2020-03-21T00:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8 &amp;quot;&amp;gt;&lt;br /&gt;
= ROCK Pi 4=&lt;br /&gt;
This is the documentation for ROCK Pi 4, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 is a Rockchip RK3399 based SBC(Single Board Computer) by [[Special:SpecialContact/| Radxa]]. It can run android or some Linux distributions.&lt;br /&gt;
ROCK Pi 4 features a six core ARM processor, 64bit dual channel 3200Mb/s LPDDR4, up to 4K@60 HDMI, MIPI DSI, MIPI CSI, 3.5mm jack with mic, 802.11 ac WIFI, Bluetooth 5.0, USB Port, GbE LAN, 40-pin color expansion header, RTC. Also, ROCK Pi 4 supports USB PD and QC powering.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 comes in two models, Model A and Model B, each model has 1GB, 2GB or 4GB ram options. for detailed difference of Model A and Model B, please check [[Rockpi4/getting_started#get_start_specs | Specifications]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Community_updates}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rockpi_4B_v13_breadboard_front_portrait.png |440px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[Rockpi4/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/getting_started | Getting started with your ROCK Pi 4]], including what you need and how to get it booted.&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4#gpio | GPIO pinout]]&lt;br /&gt;
* [[Rockpi4/backup | Backup and Restore your SD card or eMMC module]]&lt;br /&gt;
* [[Rockpi4/hardware/M2_extend | How to mount SSD with M2 extension board]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI 4, including microSD card, eMMC module, USB drive and M.2 NVME SSD, &lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[rockpi4/install/eMMC | Install on eMMC module]]&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install on SPI Flash]]&lt;br /&gt;
* [[rockpi4/install/USB | Install on USB drive(wip)]]&lt;br /&gt;
* [[rockpi4/install/NVME | Install on M.2 NVME SSD]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/install | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[rockpi4/partitions | Partition table]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/dev | Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux and Android development, this is mostly for developers.&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] - How to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]] - Serial console on GPIO header&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]] - Build and generate Debian image&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]] - Build vendor kernel for ROCK Pi 4&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]] - Build Android for ROCK Pi 4&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/dev | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[rockpi4/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi 4 hardware, including WI-FI, display, camera, etc.&lt;br /&gt;
&lt;br /&gt;
* [[News/2018/11/introduce-the-new-rockpi-4-hardware | Blog post]]  from Radxa Team introducing the ROCK Pi hardware design&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]] - Use other HAT&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/hardware | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf v1.3 schematic pdf] - Download Schematic of ROCK Pi 4 &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-Pi-4B-3D.stp.gz 3D drawing STP] - Download 3D model of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_bottom.dxf 2D Bottom dxf], [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_top.dxf 2D Top dxf] - Download 2D CAD of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_components_reference_201811122.pdf v1.4 CAM pdf] - Download components Position Reference of ROCK Pi 4&lt;br /&gt;
** [[Rockpi4/hardware/revision | Hardware Revision]] - Difference between each hardware revisions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://rockchip.fr/RK3399%20datasheet%20V1.8.pdf RK3399 datasheet] - The SoC of ROCK Pi 4&lt;br /&gt;
** RK3399 TRM(Technical Reference Manual) [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Part] [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf Part2] - The detail about RK3399&lt;br /&gt;
** [http://rockchip.fr/RK808%20datasheet%20V1.4.pdf RK808] - The PMIC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/AP6256%20datasheet_V1.3_12202017.pdf AP6256] - The wifi/bt combo&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/LDR6015T%20Spec%20EN%20V1.0.pdf LDR6015] - The USB PD protocol IC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/ES8316%20PB.pdf ES8316] - The audio codec&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/FORESEE_LPDDR4_200ball_NCLD4CXMAXXXM32_10x14.5_VFBGA_Spec_B1_20170802.pdf Foresee LPDDR4] - The DRAM chip &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/RTL8211E(G)-VB(VL)-CG-DataSheet-1.7.pdf RTL8211E] - The ethernet phy&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/hardware/gpio | GPIO]]&lt;br /&gt;
* [[rockpi4/hardware/emmc | eMMC module]]&lt;br /&gt;
* [[Rockpi4/hardware/usb3_eMMC_reader | USB3 eMMC Reader]]&lt;br /&gt;
* [[rockpi4/hardware/rtc | RTC battery]]&lt;br /&gt;
&lt;br /&gt;
* Official heatsink&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink-1225-al-1.stp 3D drawing] - 3D model of official heatsink&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/PoE | PoE module]]&lt;br /&gt;
* [[Rockpi4/hardware/HATs | HATs]]&lt;br /&gt;
* [[Rockpi4/hardware/M2_extend | M.2 extend board]]&lt;br /&gt;
** 2D file for M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/PCIE_to_FPC_V1.4.dxf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/FPC_to_M2_V1.4.dxf SSD mount board]&lt;br /&gt;
** Schematic of M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_pcie_to_fpc_V1.4.pdf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_fpc_to_m2_V1.4.pdf SSD mount board]&lt;br /&gt;
* [[Rockpi4/hardware/spi_flash |  SPI Flash]]&lt;br /&gt;
&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
* Compliance&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/compliance/BCTC-FY190200673C_ROCK_PI_4_RED_certification.pdf CE RED] - EU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Debian Working With Linux ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/Debian | Debian Desktop]]&lt;br /&gt;
* [[Rockpi4/Ubuntu | Ubuntu Server]]&lt;br /&gt;
* [[Rockpi4/Linux system runs on M.2 NVME SSD | Linux system runs on M.2 NVME SSD]]&lt;br /&gt;
* [[Rockpi4/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[Rockpi4/Docker | Docker]]&lt;br /&gt;
* [[Rockpi4/Samba | Samba]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; More...&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/Sgminer | Sgminer - OpenCL GPU Miner ]]&lt;br /&gt;
* [[Rockpi4/downloads | Images official/3rd party/community]]&lt;br /&gt;
* [[rockpi4/CPU overclocking | CPU overclocking]]&lt;br /&gt;
* [[rockpi4/MIPI Camera | Using MIPI Camera on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/Raspberry Pi  official LCD | Using Raspberry Pi  official LCD Screen]]&lt;br /&gt;
* [[rockpi4/Use 4G Module on ROCK Pi 4 | Use 4G Module on ROCK Pi 4]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Android Working With  Android ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [[Rockpi4/android-mraa | Android9 Mraa API]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-ban&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Remote Access&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [https://wiki.radxa.com/Rockpi4/vnc Connected ROCK Pi via VNC]&lt;br /&gt;
* Accessing your ROCK Pi 4 remotely via SSH or over the web.&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi 4&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* Telegram Group: https://t.me/rockpi4&lt;br /&gt;
* [[rockpi4/contribute | How to contribute to this wiki]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T10:40:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: /* Index Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:Uart2(consloe),Uart4,SPI2,I2C2,I2C7,PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 1 || i2c2 || ROCK_PI_4_SPI1 || 1 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 2 || i2c6 || ROCK_PI_4_SPI2 || 0 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 0 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T10:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:Uart2(consloe),Uart4,SPI2,I2C2,I2C7,PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T10:37:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&lt;br /&gt;
Enable:&lt;br /&gt;
Uart2(consloe),Uart4&lt;br /&gt;
SPI2&lt;br /&gt;
I2C2,I2C7&lt;br /&gt;
PWM0,PWM1&lt;br /&gt;
&lt;br /&gt;
Disable:&lt;br /&gt;
I2C6,SPI1&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number&lt;br /&gt;
|- &lt;br /&gt;
| || || +3.3V ||  || style=&amp;quot;background:yellow&amp;quot;| 1 ||  ||style=&amp;quot;background:red&amp;quot;| 2 ||  || +5.0V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || || I2C7_SDA || GPIO2_A7(X) || style=&amp;quot;background:green; color:white&amp;quot;| 3 || ||  style=&amp;quot;background:red&amp;quot;| 4 || || +5.0V ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || || I2C7_SCL || GPIO2_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;| 5 || || style=&amp;quot;background:black; color:white&amp;quot;| 6 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || || SPI2_CLK || GPIO2_B3(X) || style=&amp;quot;background:green; color:white&amp;quot;| 7 || || style=&amp;quot;background:green; color:white&amp;quot;| 8 || GPIO4_C4(X) || style=&amp;quot;background:orange&amp;quot;|UART2_TXD ||   || 148&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND ||  || style=&amp;quot;background:black; color:white&amp;quot;| 9 || || style=&amp;quot;background:green; color:white&amp;quot;|10 || GPIO4_C3(X) || style=&amp;quot;background:orange&amp;quot;|UART2_RXD ||   || 147&lt;br /&gt;
|-&lt;br /&gt;
|146  || ||  PWM0 || GPIO4_C2(X) || style=&amp;quot;background:green; color:white&amp;quot;|11 || || style=&amp;quot;background:green; color:white&amp;quot;|12 || GPIO4_A3 || I2S1_SCLK ||   || 131&lt;br /&gt;
|-&lt;br /&gt;
| 150 || || PWM1 || GPIO4_C6(X) || style=&amp;quot;background:green; color:white&amp;quot;|13 ||  || style=&amp;quot;background:black; color:white&amp;quot;|14 || || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 149 || || SPDIF_TX ||  GPIO4_C5 || style=&amp;quot;background:green; color:white&amp;quot;|15 || || style=&amp;quot;background:green; color:white&amp;quot;|16 || GPIO4_D2 || ||   || 154&lt;br /&gt;
|-&lt;br /&gt;
| || ||  +3.3V || || style=&amp;quot;background:yellow&amp;quot;|17 || || style=&amp;quot;background:green; color:white&amp;quot;|18 || GPIO4_D4 || ||   || 156&lt;br /&gt;
|-&lt;br /&gt;
|40 || UART4_TXD ||  SPI1_TXD(X) || GPIO1_B0(X) || style=&amp;quot;background:green; color:white&amp;quot;|19 ||  ||style=&amp;quot;background:black; color:white&amp;quot;|20 || || GND ||   || &lt;br /&gt;
|-&lt;br /&gt;
|39 || UART4_RXD || SPI1_RXD(X) || GPIO1_A7(X)  || style=&amp;quot;background:green; color:white&amp;quot;|21  ||   || style=&amp;quot;background:green; color:white&amp;quot;|22  || GPIO4_D5  ||   || || 157&lt;br /&gt;
|-&lt;br /&gt;
|41 || ||  SPI1_CLK(X) || GPIO1_B1 || style=&amp;quot;background:green; color:white&amp;quot;|23 ||  || style=&amp;quot;background:green; color:white&amp;quot;|24 || GPIO1_B2  || SPI1_CSn(X)  ||  || 42&lt;br /&gt;
|-&lt;br /&gt;
| || ||  GND  ||  || style=&amp;quot;background:black; color:white&amp;quot;|25  ||   || style=&amp;quot;background:green; color:white&amp;quot;|26 ||  || ADC_IN0 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || ||  I2C2_SDA  || GPIO2_A0(X) || style=&amp;quot;background:blue; color:white&amp;quot;|27  ||  || style=&amp;quot;background:blue; color:white&amp;quot;|28 || GPIO2_A1(X) || I2C2_CLK ||  || 65&lt;br /&gt;
|-&lt;br /&gt;
| 74 || I2C6_SCL(X) ||  SPI2_TXD  || GPIO2_B2(X) || style=&amp;quot;background:green; color:white&amp;quot;|29  ||  || style=&amp;quot;background:black; color:white&amp;quot;|30 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || I2C6_SDA(X) ||  SPI2_RXD  || GPIO2_B1(X) || style=&amp;quot;background:green; color:white&amp;quot;|31  ||  || style=&amp;quot;background:green; color:white&amp;quot;|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112 &lt;br /&gt;
|-&lt;br /&gt;
| 76 || ||   SPI2_CSn || GPIO2_B4(X) || style=&amp;quot;background:green; color:white&amp;quot;|33  ||  || style=&amp;quot;background:black; color:white&amp;quot;|34 ||  || GND ||   ||&lt;br /&gt;
|-&lt;br /&gt;
| 133 || ||   I2S1_LRCK_TX || GPIO4_A5 || style=&amp;quot;background:green; color:white&amp;quot;|35  ||  || style=&amp;quot;background:green; color:white&amp;quot;|36 || GPIO4_A4 || I2S1_LRCK_RX ||   || 132&lt;br /&gt;
|-&lt;br /&gt;
| 158 || ||   || GPIO4_D6 || style=&amp;quot;background:green; color:white&amp;quot;|37  ||  || style=&amp;quot;background:green; color:white&amp;quot;|38 || GPIO4_A6 || I2S1_SDI ||   || 134&lt;br /&gt;
|-&lt;br /&gt;
| || ||   GND ||  || style=&amp;quot;background:black; color:white&amp;quot;|39  ||  ||style=&amp;quot;background:green; color:white&amp;quot;|40  || GPIO4_A7 || I2S1_SDO ||   || 135&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T10:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Gpio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // do sth&lt;br /&gt;
    // if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spi&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Spi spi = new Spi(RockPI4SPI.ROCK_PI_4_SPI1.swigValue());&lt;br /&gt;
    byte[] recv = spi.write(new byte[]{0x11, 0x22});&lt;br /&gt;
    Log.d(TAG, String.format(&amp;quot;onCreate: recv[0]=0x%x, recv[1]=0x%x&amp;quot;, recv[0], recv[1]));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pwm&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Pwm pwm = new Pwm(RockPI4.ROCK_PI_4_PIN11.swigValue());&lt;br /&gt;
    pwm.period_us(20000);&lt;br /&gt;
    pwm.write((float) 0.5);&lt;br /&gt;
    pwm.enable(true);&lt;br /&gt;
    // do sth&lt;br /&gt;
    .....&lt;br /&gt;
    &lt;br /&gt;
    pwm.enable(false);&lt;br /&gt;
    pwm.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aio&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Aio aio = new Aio(0);&lt;br /&gt;
    Log.d(TAG, &amp;quot;aio0: &amp;quot; + aio.read());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I2c&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    I2c i2c = new I2c(RockPI4I2C.ROCK_PI_4_I2C2.swigValue());&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    i2c.writeReg((short)0x01, (short) 0x57);&lt;br /&gt;
    try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    i2c.address((short) 0x50);&lt;br /&gt;
    Log.d(TAG, &amp;quot;i2c2 read: 0x&amp;quot; + Integer.toHexString(i2c.readReg((short)0x01)));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uart&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Uart uart = new Uart(RockPI4Uart.ROCK_PI_4_UART4.swigValue());&lt;br /&gt;
    uart.defaultConfig();&lt;br /&gt;
    uart.setBaudRate(115200);&lt;br /&gt;
    uart.writeStr(&amp;quot;radxa&amp;quot;);&lt;br /&gt;
    String read = uart.readStr(6);&lt;br /&gt;
    Log.d(TAG, &amp;quot;uart4 read: &amp;quot; + read);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T06:49:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | class &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:70%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4I2C&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware I2c Number &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;10%&amp;quot;  | RockPI4SPI&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Field&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Index Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;20%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:35%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;5&amp;quot; width=&amp;quot;20%&amp;quot; | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; height=&amp;quot;60px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; style=&amp;quot;text-align: left;&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T02:55:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; height=&amp;quot;60px&amp;quot; | Methods&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Parameter&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;40%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;15%&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | setNonBlocking(boolean b)                              || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | sendBreak(int b)                                       || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | dataAvailable(long timeout)                            || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| height=&amp;quot;45px&amp;quot; | wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T01:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| read()        || void   || Read value. Default will shift the raw value up/down to a 10 bit.   || long&lt;br /&gt;
|-&lt;br /&gt;
| readFloat()   || void   || Read value and return it as a normalized float.                     || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| setBit(int b) || int    || Set the bit value which will shift the raw reading from the ADC to. || Result&lt;br /&gt;
|-&lt;br /&gt;
| getBit()      || void   || Gets the bit value mraa is shifting the analog read to.             || int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;280px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;240px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;440px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| setNonBlocking(boolean var1)                           || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| sendBreak(int var1)                                    || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| dataAvailable(long var1)                               || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-20T01:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;280px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;240px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byte[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== UART ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;440px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| defaultConfig()                                        ||void          || Set mraa default config (9600 8N1, no echo or special character)                || Result&lt;br /&gt;
|-&lt;br /&gt;
| setBaudRate(long b)                                    || long         || Set uart baudrate max=150000000                                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| setMode(int bytesize, UartParity parity, int stopbits) || int          || Set the transfer mode                                                           || Result&lt;br /&gt;
|-&lt;br /&gt;
| setFlowcontrol(boolean xonxoff, boolean rtscts)        || true/false   || Set the flowcontrol                                                             || Result&lt;br /&gt;
|-&lt;br /&gt;
| setTimeout(int read, int write, int interchar)         || -1 - int_max || Set the timeout for read and write operations                                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| setNonBlocking(boolean var1)                           || true/false   || Set the blocking state for write operations                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| sendBreak(int var1)                                    || 0 - max_int  || Send a break to the device.                                                     || Result&lt;br /&gt;
|-&lt;br /&gt;
| flush()                                                || void         || Flush the outbound data.                                                        || Result&lt;br /&gt;
|-&lt;br /&gt;
| dataAvailable()                                        || void         || Check to see if data is available on the device for reading, return immediately || boolean&lt;br /&gt;
|-&lt;br /&gt;
| dataAvailable(long var1)                               || 1 - int_max  || Check to see if data is available on the device for reading and time out        || boolean&lt;br /&gt;
|-&lt;br /&gt;
| readStr(int length)                                    || 1 - int_max  || Read bytes from the device into a String object                                 || String&lt;br /&gt;
|-&lt;br /&gt;
| writeStr(String s)                                     || 1 - int_max  || Write bytes in String object to a device                                        || int&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] data)                                      || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(read size)&lt;br /&gt;
|-&lt;br /&gt;
| wrtie(byte[] data)                                     || 1 - int_max  || Check to see if data is available on the device for reading and time out        || int(write size)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-19T10:07:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;280px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;240px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SPI ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| defaultConfig()    ||void        || Set mraa default config (mode0,lsb=0,bits=8) || Result&lt;br /&gt;
|-&lt;br /&gt;
| mode(Spi_Mode m)   || void       || Set spi mode                                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| frequency(int f)   || int        || Set spi frequency max=48000000               || Result&lt;br /&gt;
|-&lt;br /&gt;
| lsbmode(boolean l) || true/false || Set spi lsmode                               || Result&lt;br /&gt;
|-&lt;br /&gt;
| bitPerWord(long b) || 8/16       || Set spi bit_pre_word                         || Result&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short a) || 0x00-0xFF  || Write a byte data to spi                     || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| writeWord(int a)   || 0x0000-0xFFFF || Write a byte[2] data to spi               || int(recv data)&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] b)    || byte[]        || Write a byte[] data to spi                || byty[](recv data)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-19T09:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;280px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;240px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Pwm ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;160px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| period(float s)     || 0.0001 - 2.147483  || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_ms(int m)    || 1 - 2147           || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| period_us(int u)    || 1 - 2147483        || Set pwm period      || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth(float s)  || 0.0001 - 2.147483 || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_ms(int m) || 1 - 2147          || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| pulsewidth_us(int u) || 1 - 2147483       || Set pwm duty        || Result&lt;br /&gt;
|-&lt;br /&gt;
| max_period()         || void              || Get pwm max period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| min_period()         || void              || Get pwm min period  || int(us)&lt;br /&gt;
|-&lt;br /&gt;
| read()               || void              || Get pwm period/duty || 0.0 - 1.0&lt;br /&gt;
|-&lt;br /&gt;
| write(float p)       || 0.0 - 1.0         || Set pwm period/duty percentage || Result&lt;br /&gt;
|-&lt;br /&gt;
| enable(boolean e)    || true/false        || dis/enable pwm     || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()           || void              || Unexport pwm in /dev/class/pwm || Result&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-19T09:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;280px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;240px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| address(short a)   || 0x00-0xFF || Set i2c address                   || Result&lt;br /&gt;
|-&lt;br /&gt;
| readByte()         || void      || Read a byte data form i2c         || short&lt;br /&gt;
|-&lt;br /&gt;
| writeByte(short b) || Mode      || Write a byte data to i2c          || Result&lt;br /&gt;
|-&lt;br /&gt;
| read(byte[] buf)   || byte[]    || Read a byte[] data form i2c       || read size&lt;br /&gt;
|-&lt;br /&gt;
| write(byte[] buf)  || byte[]    || Write a byte[] data to i2c        || Result&lt;br /&gt;
|-&lt;br /&gt;
| readReg(short a)   || 0x00-0xFF || Read a byte data form i2c addr    || short&lt;br /&gt;
|-&lt;br /&gt;
| writeReg(short a, short d) || 0x00-0xFF, 0x00-0xFF || Write a byte data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readWordReg(short a) || 0x00-0xFF || Read a byte[2] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
| writeWordReg(short a, int d) || 0x00-0xFF, 0x0000-0xFFFF || Write a byte[2] data to i2c addr || Result&lt;br /&gt;
|-&lt;br /&gt;
| readBytesReg(short a, byte[] b) || 0x00-0xFF, byte[] || Read a byte[] data form i2c addr || int&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/android-mraa</id>
		<title>Rockpi4/android-mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/android-mraa"/>
				<updated>2020-03-19T08:16:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: Created page with &amp;quot;=== Rock PI 4 Android Mraa API === &amp;lt;br&amp;gt;  ==== Default IO Map ==== &amp;lt;br&amp;gt;   ==== Class ==== {| class=&amp;quot;wikitable&amp;quot;  |- | width=&amp;quot;120px&amp;quot; | class  | width=&amp;quot;220px&amp;quot; | constructor  | wid...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Rock PI 4 Android Mraa API ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default IO Map ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
| width=&amp;quot;2px&amp;quot; | &lt;br /&gt;
| width=&amp;quot;120px&amp;quot; | class &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor &lt;br /&gt;
| width=&amp;quot;220px&amp;quot; | constructor2 &lt;br /&gt;
|-&lt;br /&gt;
| Aio  || Aio (int pin_index) || NA || || Gpio || Gpio(int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| I2c  || I2c (int i2c_index) || NA || || Pwm  || Pwm (int pin_index) || NA&lt;br /&gt;
|-&lt;br /&gt;
| Spi  || Spi (int spi_index) || NA || || Uart || Uart(int uart_index) || NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Index Class ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4I2C&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware I2c Number &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4SPI&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Spi Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C2 || 0 || i2c2 || ROCK_PI_4_SPI1 || 0 || spi1 &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C6 || 1 || i2c6 || ROCK_PI_4_SPI2 || 1 || spi2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_I2C7 || 2 || i2c7 || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; width=&amp;quot;120px&amp;quot;  | RockPI4Uart&lt;br /&gt;
| width=&amp;quot;145px&amp;quot; | Field&lt;br /&gt;
| width=&amp;quot;110px&amp;quot; | Index Value&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Hardware Uart Number &lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART2 || 0 || uart2&lt;br /&gt;
|-&lt;br /&gt;
| ROCK_PI_4_UART4 || 1 || uart4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Gpio ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    import mraa.*;&lt;br /&gt;
    &lt;br /&gt;
    Gpio gpio40 = new Gpio(RockPI4.ROCK_PI_4_PIN40.swigValue());&lt;br /&gt;
    // output&lt;br /&gt;
    gpio40.dir(Dir.DIR_OUT);&lt;br /&gt;
    // set value&lt;br /&gt;
    gpio40.write(1);&lt;br /&gt;
    // release gpio if you want&lt;br /&gt;
    gpio40.unexport();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== I2C ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200px&amp;quot; | Methods&lt;br /&gt;
| width=&amp;quot;150px&amp;quot; | Parameter&lt;br /&gt;
| width=&amp;quot;600px&amp;quot; | Description&lt;br /&gt;
| width=&amp;quot;190px&amp;quot; | Return &lt;br /&gt;
|-&lt;br /&gt;
| dir(Dir dir)    || Dir    || Set input/output                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| readDir()       || void   || Read input/output dir            || Dir&lt;br /&gt;
|-&lt;br /&gt;
| mode(Mode mode) || Mode   || Set  STRONG/PULLUP/PULLDOWN/HIZ  || Result&lt;br /&gt;
|-&lt;br /&gt;
| read()          || void   || Set input and read gpio value    || 0/1&lt;br /&gt;
|-&lt;br /&gt;
| write(int v)    || 0/1    || Set output value                 || Result&lt;br /&gt;
|-&lt;br /&gt;
| unexport()      || void   || Unexport gpio in /dev/class/gpio || Result&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10</id>
		<title>RockpiN10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10"/>
				<updated>2020-03-19T04:00:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpiN10_header}}&lt;br /&gt;
{{Languages|rockpiN10}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ROCK Pi N10=&lt;br /&gt;
&lt;br /&gt;
N for Next.&lt;br /&gt;
&lt;br /&gt;
This is the documentation for ROCK Pi N10, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi N10 is a Rockchip RK3399pro based SBC(Single Board Computer) by Radxa.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{{community_updates}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ROCKPi_N10.png | 500px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[RockpiN10/getting_started | Getting started with ROCK Pi N10]]&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10#gpio | GPIO pinout]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI N10, including microSD card, eMMC module, USB drive, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[RockpiN10/install/eMMC | Install on eMMC]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[RockpiN10/partitions | Partition table]]&lt;br /&gt;
[[RockpiN10/install| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/dev | Low-level Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux development&lt;br /&gt;
* [[RockpiN10/dev/Debian | Build Debian]]&lt;br /&gt;
* [[RockpiN10/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[RockpiN10/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[RockpiN10/dev/NPU-booting | NPU Booting]]&lt;br /&gt;
[[RockpiN10/dev| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cyanide-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-rocket&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;[[ AI | AI Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about NPU acceleration and AI development &lt;br /&gt;
* [https://wiki.radxa.com/AI/Rock-X Rock-X] - A set of rapid AI components&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN RKNN-API] - C API of RKNN&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN-Toolkit RKNN-Toolkit] - Python API of RKNN&lt;br /&gt;
* [https://github.com/rockchip-toybrick/RKNPUTool/tree/master/rknn-api/Android/rk_ssd_demo Android SSD Demo] - Android RKNN SSD Demo&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Debian Working With Linux | Working With Linux ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Debian | Debian]]&lt;br /&gt;
* [[RockpiN10/Ubuntu | Ubuntu]]&lt;br /&gt;
* [[RockpiN10/Fedora | Fedora]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[RockpiN10/downloads | Images official/3rd party/community]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Android | Working With Android ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Android8 | Building Android 8.1]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi N10 hardware, including WI-FI module, LCD module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10 | Main board]] - Hardware introduction of the ROCK Pi N10&lt;br /&gt;
* [[RockpiN10/hardware/gpio | GPIO]] - GPIO pinout&amp;amp;numbers&lt;br /&gt;
* [[rockpiN10/hardware/models | Models and SKU]]&lt;br /&gt;
* [https://wiki.radxa.com/Device-tree-overlays Device Tree Overlays]&lt;br /&gt;
* [[RockpiN10/hardware/display | Display]]&lt;br /&gt;
&lt;br /&gt;
[[RockpiN10/hardware| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi N10&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* [[Rockpi4/contribute | How to contribute to this wiki, refer ROCK Pi 4 contribution page]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-28T09:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa:rockpi4-android9$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9       $ cd u-boot&lt;br /&gt;
    radxa:rockpi4-android9/u-boot$ ./make.sh rk3399&lt;br /&gt;
    radxa:rockpi4-android9/u-boot$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9       $cd kernel&lt;br /&gt;
    radxa:rockpi4-android9/kernel$ make rockchip_defconfig&lt;br /&gt;
    radxa:rockpi4-android9/kernel$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa:rockpi4-android9/kernel$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9$ source build/envsetup.sh&lt;br /&gt;
    radxa:rockpi4-android9$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa:rockpi4-android9$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9$ source build/envsetup.sh&lt;br /&gt;
    radxa:rockpi4-android9$ lunch rk3399-userdebug&lt;br /&gt;
    radxa:rockpi4-android9$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa:rockpi4-android9$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9        $ cd rockdev&lt;br /&gt;
    radxa:rockpi4-android9/rockdev$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9        $ cd rockdev&lt;br /&gt;
    radxa:rockpi4-android9/rockdev$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9/rockdev$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&amp;lt;br&amp;gt;&lt;br /&gt;
If you start a new terminal, the android environment is not configured, you need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9$ source build/envsetup.sh &amp;amp;&amp;amp; setpaths&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
gen apt image:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa:rockpi4-android9/rockdev$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-28T09:26:52Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&amp;lt;br&amp;gt;&lt;br /&gt;
If you start a new terminal, the android environment is not configured, you need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$source build/envsetup.sh &amp;amp;&amp;amp; setpaths&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
gen apt image:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-28T09:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
If you start a new terminal, the android environment is not configured, you need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$source build/envsetup.sh &amp;amp;&amp;amp; setpaths&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
gen apt image:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-28T09:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
If you start a new terminal, the android environment is not configured, you need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$source build/envsetup.sh &amp;amp;&amp;amp; setpaths&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-24T02:46:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-21T07:20:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop rsync&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2020-02-21T01:46:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop&lt;br /&gt;
    radxa$ pip install pycrypto&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
    RUN pip install pycrypto&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/install/android-NVME</id>
		<title>Rockpi4/install/android-NVME</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/install/android-NVME"/>
				<updated>2020-01-09T01:36:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4/install/android-NVME}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/android-install | Install]] &amp;gt; [[rockpi4/install/android-NVME | Install on M.2 NVME SSD]]&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
This page describe how to download and install the android9 gpt image on a M.2 NVME SSD and boot on ROCK Pi 4. You need at least the following.&lt;br /&gt;
&lt;br /&gt;
* ROCK Pi 4 board with power supply&lt;br /&gt;
* a M.2 NVME SSD&lt;br /&gt;
* a PC/laptop running Windows or Linux or MacOS  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Etcher in Linux/Windows ====&lt;br /&gt;
Etcher is the tool we use to write image. Download the right Etcher for your PC from [[Rockpi4/downloads]] page and install it.  &lt;br /&gt;
&lt;br /&gt;
Check [[https://www.balena.io/etcher/ Etcher website]] for more info about Etcher.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step1: Download necessary tools and image =====&lt;br /&gt;
Choose the image you want to install may be from [[Rockpi4/downloads]] page and unzip it. The unzipped image name is like below:&lt;br /&gt;
&lt;br /&gt;
    rockpi-4b-*-gpt.img&lt;br /&gt;
&lt;br /&gt;
We will use it for the writing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step2: Write the image to M.2 NVME SSD =====&lt;br /&gt;
&lt;br /&gt;
1. Insert the  M.2 NVME to USB breakout board, which connects to host computer. &lt;br /&gt;
&lt;br /&gt;
2. Run the application, for example,  by executing the command on Ubuntu 16.04:&lt;br /&gt;
&lt;br /&gt;
    $ /bin/bash etcher-etcher-electron-1.4.5-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
3. In the etcher window, we click button Select image.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_image.png]]&lt;br /&gt;
&lt;br /&gt;
4. In the etcher window, we click button Select Drive.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_driver.png]]&lt;br /&gt;
&lt;br /&gt;
5. In the etcher window, we click button Flash.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_flash_button.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the etcher window, it shows us Flash Complete!&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_show_complete.png]]&lt;br /&gt;
&lt;br /&gt;
Done! Now you have successfully installed the OS image on M.2 NVME SSD.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Other ====&lt;br /&gt;
Here's an easy way to do it on Linux&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ sudo chmod 777 /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ umount /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/&amp;lt;Your M.2 SSD device&amp;gt; bs=4M status=progress&lt;br /&gt;
    radxa$ sync&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Write SPI Flash ====&lt;br /&gt;
1. Boot To Maskrom Mode.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 1: Empty SPI flash&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 2: Bootable SPI flash&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Spi_clk_gnd.jpg | 400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Use cable to connect PIN23 and PIN25&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
* unconnect PIN23 and PIN25&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write support android boot loader,uboot to spi flash.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/rk3399_loader_spinor_v1.22.114.bin RockPi 4 Loader]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/uboot-trust-spi.img RockPi 4 u-boot]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use upgrade_tool on Linux. [[ Android/upgrage_tool | Configuration upgrade_tool. ]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    upgrade_tool db $(path)/rk3399_loader_spinor_v1.22.114.bin&lt;br /&gt;
    upgrade_tool wl 0 $(path)/uboot-trust-spi.img&lt;br /&gt;
    upgrade_tool rd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
3. Now the device should boot from the SPI flash now.&lt;br /&gt;
&lt;br /&gt;
==== FAQs ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 1. Erase images on SPI device =====&lt;br /&gt;
To erase images on SPI device, just need the following steps.&lt;br /&gt;
&lt;br /&gt;
Firstly, follow  '''Boot To Maskrom Mode -&amp;gt; Case2''' to boot ROCK Pi 4 to maskrom mode.&lt;br /&gt;
&lt;br /&gt;
Secondly, on your Linux PC, create zero.img.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dd if=/dev/zero of=./zero.img bs=1M count=4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Thirdly, flash zero.img to SPI device.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&lt;br /&gt;
    rkdeveloptool wl 0 zero.img&lt;br /&gt;
    rkdeveloptool rd    # will output: Reset Device OK.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Finally, on your Linux PC, '''lsusb''' command show show the following usb devices&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Bus 003 Device 005: ID 2207:330c&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It means the SPI image is erased successfully.&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10/Android8</id>
		<title>RockpiN10/Android8</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10/Android8"/>
				<updated>2019-12-10T09:01:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpiN10_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|RockpiN10/Android8}}&lt;br /&gt;
&lt;br /&gt;
    [[RockpiN10 | RockpiN10]] &amp;gt; [[RockpiN10/Android8 | Build Android 8.1]]&lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Install Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Chinese users or the countries the Google is blocked:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android8-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android8-docker&lt;br /&gt;
&lt;br /&gt;
    USER android8-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:8.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi-n10-android8&lt;br /&gt;
    radxa$ cd rockpi-n10-android8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ epo init -u https://github.com/radxa/manifests.git -b rk3399pro-android-8.1 -m rk3399pro-rk-vendor-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399pro_dual&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399pro-rockpi-n10-android.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399pro-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh ota&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-rk3399pro are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── ramdisk.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── update.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399pro Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10</id>
		<title>RockpiN10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10"/>
				<updated>2019-12-10T02:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpiN10_header}}&lt;br /&gt;
{{Languages|rockpiN10}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ROCK Pi N10=&lt;br /&gt;
&lt;br /&gt;
N for Next.&lt;br /&gt;
&lt;br /&gt;
This is the documentation for ROCK Pi N10, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi N10 is a Rockchip RK3399pro based SBC(Single Board Computer) by Radxa.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{{community_updates}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ROCKPi_N10.png | 500px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[RockpiN10/getting_started | Getting started with ROCK Pi N10]]&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10#gpio | GPIO pinout]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI N10, including microSD card, eMMC module, USB drive, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[RockpiN10/partitions | Partition table]]&lt;br /&gt;
[[RockpiN10/install| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/dev | Low-level Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux development&lt;br /&gt;
* [[RockpiN10/dev/Debian | Build Debian]]&lt;br /&gt;
* [[RockpiN10/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[RockpiN10/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[RockpiN10/dev/NPU-booting | NPU Booting]]&lt;br /&gt;
[[RockpiN10/dev| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cyanide-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-rocket&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;[[ AI | AI Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about NPU acceleration and AI development &lt;br /&gt;
* [https://wiki.radxa.com/AI/Rock-X Rock-X] - A set of rapid AI components&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN RKNN-API] - C API of RKNN&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN-Toolkit RKNN-Toolkit] - Python API of RKNN&lt;br /&gt;
* [https://gitlab.com/vamrs-linux/android/RKNPUTool/tree/rk33/mid/8.1/develop/rknn-api/Android/rk_ssd_demo Android SSD Demo] - Android RKNN SSD Demo&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Debian Working With Linux | Working With Linux ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Debian | Debian]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[RockpiN10/downloads | Images official/3rd party/community]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Android | Working With Android ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Android8 | Building Android 8.1]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi N10 hardware, including WI-FI module, LCD module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10 | Main board]] - Hardware introduction of the ROCK Pi N10&lt;br /&gt;
* [[RockpiN10/hardware/gpio | GPIO]] - GPIO pinout&amp;amp;numbers&lt;br /&gt;
* [[rockpiN10/hardware/models | Models and SKU]]&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/display | Display]]&lt;br /&gt;
&lt;br /&gt;
[[RockpiN10/hardware| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi N10&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* [[Rockpi4/contribute | How to contribute to this wiki, refer ROCK Pi 4 contribution page]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10</id>
		<title>RockpiN10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10"/>
				<updated>2019-12-10T02:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpiN10_header}}&lt;br /&gt;
{{Languages|rockpiN10}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ROCK Pi N10=&lt;br /&gt;
&lt;br /&gt;
N for Next.&lt;br /&gt;
&lt;br /&gt;
This is the documentation for ROCK Pi N10, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi N10 is a Rockchip RK3399pro based SBC(Single Board Computer) by Radxa.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{{community_updates}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ROCKPi_N10.png | 500px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[RockpiN10/getting_started | Getting started with ROCK Pi N10]]&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10#gpio | GPIO pinout]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI N10, including microSD card, eMMC module, USB drive, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[RockpiN10/partitions | Partition table]]&lt;br /&gt;
[[RockpiN10/install| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/dev | Low-level Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux development&lt;br /&gt;
* [[RockpiN10/dev/Debian | Build Debian]]&lt;br /&gt;
* [[RockpiN10/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[RockpiN10/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[RockpiN10/dev/NPU-booting | NPU Booting]]&lt;br /&gt;
[[RockpiN10/dev| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cyanide-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-rocket&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;[[ AI | AI Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about NPU acceleration and AI development &lt;br /&gt;
* [https://wiki.radxa.com/AI/Rock-X Rock-X] - A set of rapid AI components&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN RKNN-API] - C API of RKNN&lt;br /&gt;
* [https://wiki.radxa.com/AI/RKNN-Toolkit RKNN-Toolkit] - Python API of RKNN&lt;br /&gt;
* [https://gitlab.com/vamrs-linux/android/RKNPUTool/tree/rk33/mid/8.1/develop/rknn-api/Android/rk_ssd_demo] - Android RKNN SSD Demo&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Debian Working With Linux | Working With Linux ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Debian | Debian]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[RockpiN10/downloads | Images official/3rd party/community]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Android | Working With Android ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Android8 | Building Android 8.1]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi N10 hardware, including WI-FI module, LCD module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10 | Main board]] - Hardware introduction of the ROCK Pi N10&lt;br /&gt;
* [[RockpiN10/hardware/gpio | GPIO]] - GPIO pinout&amp;amp;numbers&lt;br /&gt;
* [[rockpiN10/hardware/models | Models and SKU]]&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/display | Display]]&lt;br /&gt;
&lt;br /&gt;
[[RockpiN10/hardware| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi N10&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* [[Rockpi4/contribute | How to contribute to this wiki, refer ROCK Pi 4 contribution page]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10/downloads</id>
		<title>RockpiN10/downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10/downloads"/>
				<updated>2019-12-10T02:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpiN10_header}}&lt;br /&gt;
{{Languages|rockpiN10/downloads}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Tools&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Linux&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;MacOS&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Windows&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;small&amp;gt;Etcher - A user friendly Image Writer&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit]  |  [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
====&amp;lt;span class=&amp;quot;label forest&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot; &amp;gt;&amp;lt;/i&amp;gt; Official Images&amp;lt;/span&amp;gt;====&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-responsive&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover table-bordered table-striped&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Distribution&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi N10 Model A&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;ROCK Pi N10 Model B &amp;amp; Model C&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Android-Logo.jpg | 200px | link=https://rock.sh/rockpi-android9-gpt-download]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpin10a-android8-download Android 8.1]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi N10 B&amp;amp;C --&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://rock.sh/rockpin10bc-android8-download Android 8.1]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Android Tablet Product&lt;br /&gt;
&lt;br /&gt;
[[ RockpiN10/Android8 | Android8 Install Wiki ]]&lt;br /&gt;
&lt;br /&gt;
[[ RockpiN10/Android9 | Android9 Install Wiki ]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Ubuntu_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img.gz]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpin10/images/ubuntu Ubuntu Server]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi N10 B&amp;amp;C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Ubuntu Server Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Ubuntu  Server 18.04.&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Debian-logo.png | 200px | link=https://dl.radxa.com/rockpi/images/debian/rockpi4_debian_stretch_lxde_armhf_20181105_2120-gpt.img.gz]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi/images/debian/rockpi4-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi N10 B&amp;amp;C --&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpi4/images/debian/rockpi4c-debian-stretch-desktop-arm64-20190730_2022-gpt.img.gz Debian 9 Desktop(Dual Display)]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Debian Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Debian Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Debian Stretch (9.9)&lt;br /&gt;
&lt;br /&gt;
Update time :2019-07-30&lt;br /&gt;
&lt;br /&gt;
[[Rockpi4/Debian#Change_logs | Change Log]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[File:Fedora_logo.png | 200px | link=https://dl.radxa.com/rockpi/images/ubuntu/rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img.gz]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
=====[https://dl.radxa.com/rockpin10/images/fedora Fedora Desktop]=====&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROCK Pi N10 B&amp;amp;C --&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&lt;br /&gt;
Fedora Desktop Product.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/Ubuntu Install Wiki.]&lt;br /&gt;
&lt;br /&gt;
Fedora Desktop&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10/Android8</id>
		<title>RockpiN10/Android8</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10/Android8"/>
				<updated>2019-12-03T01:48:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: Created page with &amp;quot;__NOTOC__  {{rockpi4_header}}  {{Languages|RockpiN10/Android8}}   RockpiN10 &amp;gt;  Android8.1     Recommend build host is Ubuntu 16....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|RockpiN10/Android8}}&lt;br /&gt;
&lt;br /&gt;
[[RockpiN10 | RockpiN10]] &amp;gt; [[Rockpi4/RockpiN10/Android8 | Android8.1]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android8-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android8-docker&lt;br /&gt;
&lt;br /&gt;
    USER android8-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:8.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi-n10-android8&lt;br /&gt;
    radxa$ cd rockpi-n10-android8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ epo init -u https://github.com/radxa/manifests.git -b rk3399pro-android-8.1 -m rk3399pro-rk-vendor-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399pro_dual&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399pro-rockpi-n10-android.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399pro-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-rk3399pro are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── ramdisk.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── update.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399pro Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/RockpiN10</id>
		<title>RockpiN10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/RockpiN10"/>
				<updated>2019-12-03T01:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpiN10_header}}&lt;br /&gt;
{{Languages|rockpiN10}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ROCK Pi N10=&lt;br /&gt;
&lt;br /&gt;
N for Next.&lt;br /&gt;
&lt;br /&gt;
This is the documentation for ROCK Pi N10, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi N10 is a Rockchip RK3399pro based SBC(Single Board Computer) by Radxa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ROCKPi_N10.png | 500px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{{community_updates}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[RockpiN10/getting_started | Getting started with ROCK Pi N10]]&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10#gpio | GPIO pinout]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI N10, including microSD card, eMMC module, USB drive, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[RockpiN10/partitions | Partition table]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/dev | Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux development&lt;br /&gt;
* [[RockpiN10/dev/Debian | Build Debian]]&lt;br /&gt;
* [[RockpiN10/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[RockpiN10/dev/serial-console | Serial Console]]&lt;br /&gt;
[[RockpiN10/dev| &amp;gt; More...]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[RockpiN10/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi N10 hardware, including WI-FI module, LCD module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/rockpiN10 | Main board]] - Hardware introduction of the ROCK Pi N10&lt;br /&gt;
* [[RockpiN10/hardware/gpio | GPIO]] - GPIO pinout&amp;amp;numbers&lt;br /&gt;
* [[rockpiN10/hardware/models | Models and SKU]]&lt;br /&gt;
&lt;br /&gt;
* [[RockpiN10/hardware/display | Display]]&lt;br /&gt;
&lt;br /&gt;
[[RockpiN10/hardware| &amp;gt; More...]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Debian Working With Linux | Working With Linux ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Debian | Debian]]&lt;br /&gt;
* [[RockpiN10/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[RockpiN10/downloads | Images official/3rd party/community]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/Android Working With Android | Working With Android ]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[RockpiN10/Android8 | Android8.1]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[RockpiN10/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi N10&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-6 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* [[Rockpi4/contribute | How to contribute to this wiki, refer ROCK Pi 4 contribution page]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4</id>
		<title>Rockpi4</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4"/>
				<updated>2019-12-02T12:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8 &amp;quot;&amp;gt;&lt;br /&gt;
= ROCK Pi 4=&lt;br /&gt;
This is the documentation for ROCK Pi 4, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 is a Rockchip RK3399 based SBC(Single Board Computer) by [[Special:SpecialContact/| Radxa]]. It can run android or some Linux distributions.&lt;br /&gt;
ROCK Pi 4 features a six core ARM processor, 64bit dual channel 3200Mb/s LPDDR4, up to 4K@60 HDMI, MIPI DSI, MIPI CSI, 3.5mm jack with mic, 802.11 ac WIFI, Bluetooth 5.0, USB Port, GbE LAN, 40-pin color expansion header, RTC. Also, ROCK Pi 4 supports USB PD and QC powering.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 comes in two models, Model A and Model B, each model has 1GB, 2GB or 4GB ram options. for detailed difference of Model A and Model B, please check [[Rockpi4/getting_started#get_start_specs | Specifications]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Community_updates}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
[[File:rockpi_4B_v13_breadboard_front.png | 650px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[Rockpi4/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/getting_started | Getting started with your ROCK Pi 4]], including what you need and how to get it booted.&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4#gpio | GPIO pinout]]&lt;br /&gt;
* [[Rockpi4/backup | Backup and Restore your SD card or eMMC module]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI 4, including microSD card, eMMC module, USB drive and M.2 NVME SSD, &lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[rockpi4/install/eMMC | Install on eMMC module]]&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install on SPI Flash]]&lt;br /&gt;
* [[rockpi4/install/USB | Install on USB drive(wip)]]&lt;br /&gt;
* [[rockpi4/install/NVME | Install on M.2 NVME SSD(wip)]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; More...&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[rockpi4/partitions | Partition table]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/dev | Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux and Android development, this is mostly for developers.&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] - How to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]] - Serial console on GPIO header&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]] - Build and generate Debian image&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]] - Build vendor kernel for ROCK Pi 4&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]] - Build Android for ROCK Pi 4&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/dev | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[rockpi4/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi 4 hardware, including WI-FI module, LCD module, camera module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[News/2018/11/introduce-the-new-rockpi-4-hardware | Blog post]]  from Radxa Team introducing the ROCK Pi hardware design&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]] - Use other HAT&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/hardware | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf v1.3 schematic pdf] - Download Schematic of ROCK Pi 4 &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-Pi-4B-3D.stp.gz 3D drawing STP] - Download 3D model of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_bottom.dxf 2D Bottom dxf], [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_top.dxf 2D Top dxf] - Download 2D CAD of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_components_reference_201811122.pdf v1.4 CAM pdf] - Download components Position Reference of ROCK Pi 4&lt;br /&gt;
** [[Rockpi4/hardware/revision | Hardware Revision]] - Difference between each hardware revisions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://rockchip.fr/RK3399%20datasheet%20V1.8.pdf RK3399 datasheet] - The SoC of ROCK Pi 4&lt;br /&gt;
** RK3399 TRM(Technical Reference Manual) [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Part] [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf Part2] - The detail about RK3399&lt;br /&gt;
** [http://rockchip.fr/RK808%20datasheet%20V1.4.pdf RK808] - The PMIC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/AP6256%20datasheet_V1.3_12202017.pdf AP6256] - The wifi/bt combo&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/LDR6015T%20Spec%20EN%20V1.0.pdf LDR6015] - The USB PD protocol IC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/ES8316%20PB.pdf ES8316] - The audio codec&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/FORESEE_LPDDR4_200ball_NCLD4CXMAXXXM32_10x14.5_VFBGA_Spec_B1_20170802.pdf Foresee LPDDR4] - The DRAM chip &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/RTL8211E(G)-VB(VL)-CG-DataSheet-1.7.pdf RTL8211E] - The ethernet phy&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/hardware/gpio | GPIO]]&lt;br /&gt;
* [[rockpi4/hardware/emmc | eMMC module]]&lt;br /&gt;
* [[Rockpi4/hardware/usb3_eMMC_reader | USB3 eMMC Reader]]&lt;br /&gt;
* [[rockpi4/hardware/rtc | RTC battery]]&lt;br /&gt;
&lt;br /&gt;
* Official heatsink&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink-1225-al-1.stp 3D drawing] - 3D model of official heatsink&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/PoE | PoE module]]&lt;br /&gt;
* [[Rockpi4/hardware/HATs | HATs]]&lt;br /&gt;
* [[Rockpi4/hardware/M2_extend | M.2 extend board]]&lt;br /&gt;
** 2D file for M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/PCIE_to_FPC_V1.4.dxf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/FPC_to_M2_V1.4.dxf SSD mount board]&lt;br /&gt;
** Schematic of M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_pcie_to_fpc_V1.4.pdf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_fpc_to_m2_V1.4.pdf SSD mount board]&lt;br /&gt;
* [[Rockpi4/hardware/spi_flash |  SPI Flash]]&lt;br /&gt;
&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
* Compliance&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/compliance/BCTC-FY190200673C_ROCK_PI_4_RED_certification.pdf CE RED] - EU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Debian Working With Linux ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/Debian | Debian Desktop]]&lt;br /&gt;
* [[Rockpi4/Ubuntu | Ubuntu Server]]&lt;br /&gt;
* [[Rockpi4/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[Rockpi4/Docker | Docker]]&lt;br /&gt;
* [[Rockpi4/Samba | Samba]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; More...&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/Sgminer | Sgminer - OpenCL GPU Miner ]]&lt;br /&gt;
* [[Rockpi4/downloads | Images official/3rd party/community]]&lt;br /&gt;
* [[Rockpi4/Linux system runs on M.2 NVME SSD | Linux system runs on M.2 NVME SSD]]&lt;br /&gt;
* [[rockpi4/CPU overclocking | CPU overclocking]]&lt;br /&gt;
* [[rockpi4/MIPI Camera | Using MIPI Camera on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/Raspberry Pi  official LCD | Using Raspberry Pi  official LCD Screen]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Android Working With  Android ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-ban&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Remote Access&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [https://wiki.radxa.com/Rockpi4/vnc Connected ROCK Pi via VNC]&lt;br /&gt;
* Accessing your ROCK Pi 4 remotely via SSH or over the web.&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi 4&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* Telegram Group: https://t.me/rockpi4&lt;br /&gt;
* [[rockpi4/contribute | How to contribute to this wiki]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4</id>
		<title>Rockpi4</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4"/>
				<updated>2019-12-02T12:21:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-8 &amp;quot;&amp;gt;&lt;br /&gt;
= ROCK Pi 4=&lt;br /&gt;
This is the documentation for ROCK Pi 4, written by Radxa Team with community contributions.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 is a Rockchip RK3399 based SBC(Single Board Computer) by [[Special:SpecialContact/| Radxa]]. It can run android or some Linux distributions.&lt;br /&gt;
ROCK Pi 4 features a six core ARM processor, 64bit dual channel 3200Mb/s LPDDR4, up to 4K@60 HDMI, MIPI DSI, MIPI CSI, 3.5mm jack with mic, 802.11 ac WIFI, Bluetooth 5.0, USB Port, GbE LAN, 40-pin color expansion header, RTC. Also, ROCK Pi 4 supports USB PD and QC powering.&lt;br /&gt;
&lt;br /&gt;
ROCK Pi 4 comes in two models, Model A and Model B, each model has 1GB, 2GB or 4GB ram options. for detailed difference of Model A and Model B, please check [[Rockpi4/getting_started#get_start_specs | Specifications]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[community_updates | What's new]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Community_updates}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
[[File:rockpi_4B_v13_breadboard_front.png | 650px  ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hand-o-up&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[Rockpi4/getting_started | Setup/Quick start ]]&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/getting_started | Getting started with your ROCK Pi 4]], including what you need and how to get it booted.&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4#gpio | GPIO pinout]]&lt;br /&gt;
* [[Rockpi4/backup | Backup and Restore your SD card or eMMC module]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/install | Installation]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Installing an operating system on your ROCK PI 4, including microSD card, eMMC module, USB drive and M.2 NVME SSD, &lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/install/microSD | Install on microSD card]]&lt;br /&gt;
* [[rockpi4/install/eMMC | Install on eMMC module]]&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install on SPI Flash]]&lt;br /&gt;
* [[rockpi4/install/USB | Install on USB drive(wip)]]&lt;br /&gt;
* [[rockpi4/install/NVME | Install on M.2 NVME SSD(wip)]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; More...&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/radxa-apt | Update from Radxa Apt]]&lt;br /&gt;
* [[rockpi4/partitions | Partition table]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-mango-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/dev | Development]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Information about Linux and Android development, this is mostly for developers.&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] - How to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]] - Serial console on GPIO header&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]] - Build and generate Debian image&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]] - Build vendor kernel for ROCK Pi 4&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]] - Build Android for ROCK Pi 4&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/dev | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cello-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-hdd-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;  [[rockpi4/hardware|Hardware]] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Technical specifications about the ROCK Pi 4 hardware, including WI-FI module, LCD module, camera module, etc.&lt;br /&gt;
&lt;br /&gt;
* [[News/2018/11/introduce-the-new-rockpi-4-hardware | Blog post]]  from Radxa Team introducing the ROCK Pi hardware design&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]] - Use other HAT&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[rockpi4/hardware | &amp;gt; More...]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf v1.3 schematic pdf] - Download Schematic of ROCK Pi 4 &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-Pi-4B-3D.stp.gz 3D drawing STP] - Download 3D model of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_bottom.dxf 2D Bottom dxf], [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_top.dxf 2D Top dxf] - Download 2D CAD of ROCK Pi 4&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_components_reference_201811122.pdf v1.4 CAM pdf] - Download components Position Reference of ROCK Pi 4&lt;br /&gt;
** [[Rockpi4/hardware/revision | Hardware Revision]] - Difference between each hardware revisions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://rockchip.fr/RK3399%20datasheet%20V1.8.pdf RK3399 datasheet] - The SoC of ROCK Pi 4&lt;br /&gt;
** RK3399 TRM(Technical Reference Manual) [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Part] [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf Part2] - The detail about RK3399&lt;br /&gt;
** [http://rockchip.fr/RK808%20datasheet%20V1.4.pdf RK808] - The PMIC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/AP6256%20datasheet_V1.3_12202017.pdf AP6256] - The wifi/bt combo&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/LDR6015T%20Spec%20EN%20V1.0.pdf LDR6015] - The USB PD protocol IC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/ES8316%20PB.pdf ES8316] - The audio codec&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/FORESEE_LPDDR4_200ball_NCLD4CXMAXXXM32_10x14.5_VFBGA_Spec_B1_20170802.pdf Foresee LPDDR4] - The DRAM chip &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/RTL8211E(G)-VB(VL)-CG-DataSheet-1.7.pdf RTL8211E] - The ethernet phy&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/hardware/gpio | GPIO]]&lt;br /&gt;
* [[rockpi4/hardware/emmc | eMMC module]]&lt;br /&gt;
* [[Rockpi4/hardware/usb3_eMMC_reader | USB3 eMMC Reader]]&lt;br /&gt;
* [[rockpi4/hardware/rtc | RTC battery]]&lt;br /&gt;
&lt;br /&gt;
* Official heatsink&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink-1225-al-1.stp 3D drawing] - 3D model of official heatsink&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
* [[Rockpi4/hardware/PoE | PoE module]]&lt;br /&gt;
* [[Rockpi4/hardware/HATs | HATs]]&lt;br /&gt;
* [[Rockpi4/hardware/M2_extend | M.2 extend board]]&lt;br /&gt;
** 2D file for M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/PCIE_to_FPC_V1.4.dxf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/FPC_to_M2_V1.4.dxf SSD mount board]&lt;br /&gt;
** Schematic of M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_pcie_to_fpc_V1.4.pdf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_fpc_to_m2_V1.4.pdf SSD mount board]&lt;br /&gt;
* [[Rockpi4/hardware/spi_flash |  SPI Flash]]&lt;br /&gt;
&lt;br /&gt;
* [[Rockpi4/hardware/devtree_overlays |  Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
* Compliance&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/compliance/BCTC-FY190200673C_ROCK_PI_4_RED_certification.pdf CE RED] - EU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-gunmetal-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-linux&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Debian Working With Linux ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Linux usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/Debian | Debian Desktop]]&lt;br /&gt;
* [[Rockpi4/Ubuntu | Ubuntu Server]]&lt;br /&gt;
* [[Rockpi4/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[Rockpi4/Docker | Docker]]&lt;br /&gt;
* [[Rockpi4/Samba | Samba]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; More...&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Rockpi4/Sgminer | Sgminer - OpenCL GPU Miner ]]&lt;br /&gt;
* [[Rockpi4/downloads | Images official/3rd party/community]]&lt;br /&gt;
* [[Rockpi4/Linux system runs on M.2 NVME SSD | Linux system runs on M.2 NVME SSD]]&lt;br /&gt;
* [[rockpi4/CPU overclocking | CPU overclocking]]&lt;br /&gt;
* [[rockpi4/MIPI Camera | Using MIPI Camera on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/Raspberry Pi  official LCD | Using Raspberry Pi  official LCD Screen]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-meadow-white&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt; &amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-android&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [http://wiki.radxa.com/Rockpi4/Android Working With  Android ]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
Fundamental Android usage for beginners and more advanced information for power users.&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[https://wiki.radxa.com/Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-hearts-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-ban&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Remote Access&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* [https://wiki.radxa.com/Rockpi4/vnc Connected ROCK Pi via VNC]&lt;br /&gt;
* Accessing your ROCK Pi 4 remotely via SSH or over the web.&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; [[rockpi4/FAQs | FAQs]]&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Answers to frequently asked technical questions&lt;br /&gt;
* Answers to sale of ROCK Pi 4&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-4 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-cocktail-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3 class=&amp;quot;panel-title&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Community&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
* Forum: http://forum.radxa.com&lt;br /&gt;
* Telegram Group: https://t.me/rockpi4&lt;br /&gt;
* [[rockpi4/contribute | How to contribute to this wiki]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/install/android-NVME</id>
		<title>Rockpi4/install/android-NVME</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/install/android-NVME"/>
				<updated>2019-12-02T11:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4/install/android-NVME}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/android-install | Install]] &amp;gt; [[rockpi4/install/android-NVME | Install on M.2 NVME SSD]]&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
This page describe how to download and install the android9 gpt image on a M.2 NVME SSD and boot on ROCK Pi 4. You need at least the following.&lt;br /&gt;
&lt;br /&gt;
* ROCK Pi 4 board with power supply&lt;br /&gt;
* a M.2 NVME SSD&lt;br /&gt;
* a PC/laptop running Windows or Linux or MacOS  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Etcher in Linux/Windows ====&lt;br /&gt;
Etcher is the tool we use to write image. Download the right Etcher for your PC from [[Rockpi4/downloads]] page and install it.  &lt;br /&gt;
&lt;br /&gt;
Check [[https://www.balena.io/etcher/ Etcher website]] for more info about Etcher.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step1: Download necessary tools and image =====&lt;br /&gt;
Choose the image you want to install may be from [[Rockpi4/downloads]] page and unzip it. The unzipped image name is like below:&lt;br /&gt;
&lt;br /&gt;
    rockpi-4b-*-gpt.img&lt;br /&gt;
&lt;br /&gt;
We will use it for the writing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step2: Write the image to M.2 NVME SSD =====&lt;br /&gt;
&lt;br /&gt;
1. Insert the  M.2 NVME to USB breakout board, which connects to host computer. &lt;br /&gt;
&lt;br /&gt;
2. Run the application, for example,  by executing the command on Ubuntu 16.04:&lt;br /&gt;
&lt;br /&gt;
    $ /bin/bash etcher-etcher-electron-1.4.5-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
3. In the etcher window, we click button Select image.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_image.png]]&lt;br /&gt;
&lt;br /&gt;
4. In the etcher window, we click button Select Drive.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_driver.png]]&lt;br /&gt;
&lt;br /&gt;
5. In the etcher window, we click button Flash.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_flash_button.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the etcher window, it shows us Flash Complete!&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_show_complete.png]]&lt;br /&gt;
&lt;br /&gt;
Done! Now you have successfully installed the OS image on M.2 NVME SSD.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Other ====&lt;br /&gt;
Here's an easy way to do it on Linux&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ sudo chmod 777 /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ umount /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/&amp;lt;Your M.2 SSD device&amp;gt; bs=4M status=progress&lt;br /&gt;
    radxa$ sync&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Write SPI Flash ====&lt;br /&gt;
1. Boot To Maskrom Mode.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 1: Empty SPI flash&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 2: Bootable SPI flash&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Spi_clk_gnd.jpg | 400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Use cable to connect PIN23 and PIN25&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write support android boot loader,uboot to spi flash.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/rk3399_loader_spinor_v1.22.114.bin RockPi 4 Loader]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/uboot-trust-spi.img RockPi 4 u-boot]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use upgrade_tool on Linux. [[ Android/upgrage_tool | Configuration upgrade_tool. ]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    upgrade_tool db $(path)/rk3399_loader_spinor_v1.22.114.bin&lt;br /&gt;
    upgrade_tool wl 0 $(path)/uboot-trust-spi.img&lt;br /&gt;
    upgrade_tool rd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
3. Now the device should boot from the SPI flash now.&lt;br /&gt;
&lt;br /&gt;
==== FAQs ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 1. Erase images on SPI device =====&lt;br /&gt;
To erase images on SPI device, just need the following steps.&lt;br /&gt;
&lt;br /&gt;
Firstly, follow  '''Boot To Maskrom Mode -&amp;gt; Case2''' to boot ROCK Pi 4 to maskrom mode.&lt;br /&gt;
&lt;br /&gt;
Secondly, on your Linux PC, create zero.img.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dd if=/dev/zero of=./zero.img bs=1M count=4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Thirdly, flash zero.img to SPI device.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&lt;br /&gt;
    rkdeveloptool wl 0 zero.img&lt;br /&gt;
    rkdeveloptool rd    # will output: Reset Device OK.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Finally, on your Linux PC, '''lsusb''' command show show the following usb devices&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Bus 003 Device 005: ID 2207:330c&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It means the SPI image is erased successfully.&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2019-12-02T10:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-NVME GPT Image Install on M.2 NVME SSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/install/android-NVME</id>
		<title>Rockpi4/install/android-NVME</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/install/android-NVME"/>
				<updated>2019-12-02T10:15:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: Created page with &amp;quot;{{rockpi4_header}}  {{Languages|rockpi4/install/android-NVME}}   ROCK Pi 4 &amp;gt;  Install &amp;gt; rockpi4/install/android-NVME | Install on M...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4/install/android-NVME}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/android-install | Install]] &amp;gt; [[rockpi4/install/android-NVME | Install on M.2 NVME SSD]]&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
This page describe how to download and install the android9 gpt image on a M.2 NVME SSD and boot on ROCK Pi 4. You need at least the following.&lt;br /&gt;
&lt;br /&gt;
* ROCK Pi 4 board with power supply&lt;br /&gt;
* a M.2 NVME SSD&lt;br /&gt;
* a PC/laptop running Windows or Linux or MacOS  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Etcher in Linux/Windows ====&lt;br /&gt;
Etcher is the tool we use to write image. Download the right Etcher for your PC from [[Rockpi4/downloads]] page and install it.  &lt;br /&gt;
&lt;br /&gt;
Check [[https://www.balena.io/etcher/ Etcher website]] for more info about Etcher.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step1: Download necessary tools and image =====&lt;br /&gt;
Choose the image you want to install may be from [[Rockpi4/downloads]] page and unzip it. The unzipped image name is like below:&lt;br /&gt;
&lt;br /&gt;
    rockpi-4b-*-gpt.img&lt;br /&gt;
&lt;br /&gt;
We will use it for the writing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step2: Write the image to M.2 NVME SSD =====&lt;br /&gt;
&lt;br /&gt;
1. Insert the  M.2 NVME to USB breakout board, which connects to host computer. &lt;br /&gt;
&lt;br /&gt;
2. Run the application, for example,  by executing the command on Ubuntu 16.04:&lt;br /&gt;
&lt;br /&gt;
    $ /bin/bash etcher-etcher-electron-1.4.5-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
3. In the etcher window, we click button Select image.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_image.png]]&lt;br /&gt;
&lt;br /&gt;
4. In the etcher window, we click button Select Drive.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_driver.png]]&lt;br /&gt;
&lt;br /&gt;
5. In the etcher window, we click button Flash.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_flash_button.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the etcher window, it shows us Flash Complete!&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_show_complete.png]]&lt;br /&gt;
&lt;br /&gt;
Done! Now you have successfully installed the OS image on microSD card.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Other ====&lt;br /&gt;
Here's an easy way to do it on Linux&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ sudo chmod 777 /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ umount /dev/&amp;lt;Your M.2 SSD device&amp;gt;*&lt;br /&gt;
    radxa$ dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/&amp;lt;Your M.2 SSD device&amp;gt; bs=4M status=progress&lt;br /&gt;
    radxa$ sync&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Write SPI Flash ====&lt;br /&gt;
1. Boot To Maskrom Mode.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 1: Empty SPI flash&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Case 2: Bootable SPI flash&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Spi_clk_gnd.jpg | 400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Use cable to connect PIN23 and PIN25&lt;br /&gt;
* Power off the board and '''remove any bootable storage media''', remove microSD card&lt;br /&gt;
* Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port (the upper USB3 port), the other side to PC&lt;br /&gt;
* Power on the board&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write support android boot loader,uboot to spi flash.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/rk3399_loader_spinor_v1.22.114.bin RockPi 4 Loader]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/radxa/manifests/releases/download/RockPi-android9-20190719_1734/uboot-trust-spi.img RockPi 4 u-boot]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use upgrade_tool on Linux. [[ Android/upgrage_tool | Configuration upgrade_tool. ]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    upgrade_tool db $(path)/rk3399_loader_spinor_v1.22.114.bin&lt;br /&gt;
    upgrade_tool wl 0 $(path)/uboot-trust-spi.img&lt;br /&gt;
    upgrade_tool rd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
3. Now the device should boot from the SPI flash now.&lt;br /&gt;
&lt;br /&gt;
==== FAQs ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 1. Erase images on SPI device =====&lt;br /&gt;
To erase images on SPI device, just need the following steps.&lt;br /&gt;
&lt;br /&gt;
Firstly, follow  '''Boot To Maskrom Mode -&amp;gt; Case2''' to boot ROCK Pi 4 to maskrom mode.&lt;br /&gt;
&lt;br /&gt;
Secondly, on your Linux PC, create zero.img.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dd if=/dev/zero of=./zero.img bs=1M count=4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Thirdly, flash zero.img to SPI device.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&lt;br /&gt;
    rkdeveloptool wl 0 zero.img&lt;br /&gt;
    rkdeveloptool rd    # will output: Reset Device OK.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Finally, on your Linux PC, '''lsusb''' command show show the following usb devices&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Bus 003 Device 005: ID 2207:330c&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It means the SPI image is erased successfully.&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/install/android-eMMC</id>
		<title>Rockpi4/install/android-eMMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/install/android-eMMC"/>
				<updated>2019-12-02T09:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4/install/android-eMMC}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/android-install | Install]] &amp;gt; [[rockpi4/install/android-eMMC | Install on eMMC module (GPT iamge)]]&lt;br /&gt;
&lt;br /&gt;
==Requirements ==&lt;br /&gt;
&lt;br /&gt;
This page describe how to download and install the GPT image on an eMMC module and boot on ROCK Pi 4. You need at least the following.&lt;br /&gt;
&lt;br /&gt;
* an eMMC module, you can buy it from radxa distributor, the eMMC module from Odroid or PINE64 also works on ROCK Pi 4.  &lt;br /&gt;
[[File:Emmc_module_top.png | 100px]] [[File:Emmc_module_bottom.png | 100px]]&lt;br /&gt;
* an eMMC to microSD breakout board&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Emmc_to_microSD_breakout_top.png | 100px]] [[File:Emmc_to_microSD_breakout_bottom.png | 100px]]&amp;lt;br&amp;gt;&lt;br /&gt;
* a PC/laptop running Windows or Linux or MacOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also need the following to run on ROCK Pi 4&lt;br /&gt;
&lt;br /&gt;
* ROCK Pi 4 board with power supply&lt;br /&gt;
* HDMI cable for display&lt;br /&gt;
* USB keyboard and mouse for input&lt;br /&gt;
&lt;br /&gt;
== Etcher in Linux/Windows ==&lt;br /&gt;
Etcher is the tool we use to write image. Download the right Etcher for your PC from [[Rockpi4/downloads]] page and install it.  &lt;br /&gt;
&lt;br /&gt;
Check [[https://www.balena.io/etcher/ Etcher website]] for more info about Etcher.  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
==== Step1: Download necessary tools and image ====&lt;br /&gt;
Choose the image you want to install may be from [[Rockpi4/downloads]] page and unzip it. The unzipped image name is like below:&lt;br /&gt;
&lt;br /&gt;
    rockpi-4b-*-gpt.img&lt;br /&gt;
&lt;br /&gt;
We will use it for the writing.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
==== Step2: Write the image to eMMC module ====&lt;br /&gt;
&lt;br /&gt;
1. Insert the eMMC to microSD/USB breakout board, which connects to host computer. &lt;br /&gt;
&lt;br /&gt;
2. Run the application, for example,  by executing the command on Ubuntu 16.04:&lt;br /&gt;
&lt;br /&gt;
    $ /bin/bash etcher-etcher-electron-1.4.5-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
3. In the etcher window, we click button Select image.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_image.png]]&lt;br /&gt;
&lt;br /&gt;
4. In the etcher window, we click button Select Drive.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_driver.png]]&lt;br /&gt;
&lt;br /&gt;
5. In the etcher window, we click button Flash.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_flash_button.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the etcher window, it shows us Flash Complete!&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_show_complete.png]]&lt;br /&gt;
&lt;br /&gt;
Done! Now you have successfully installed the OS image on eMMC module.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
Here's an easy way to do it on Linux&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ sudo chmod 777 /dev/&amp;lt;Your eMMC module device&amp;gt;*&lt;br /&gt;
    radxa$ umount /dev/&amp;lt;Your eMMC module device&amp;gt;*&lt;br /&gt;
    radxa$ dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/&amp;lt;Your eMMC module device&amp;gt; bs=4M status=progress&lt;br /&gt;
    radxa$ sync&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/install/android-eMMC</id>
		<title>Rockpi4/install/android-eMMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/install/android-eMMC"/>
				<updated>2019-12-02T09:51:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rockpi4/install/android-eMMC}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/android-install | Install]] &amp;gt; [[rockpi4/install/android-eMMC | Install on eMMC module (GPT iamge)]]&lt;br /&gt;
&lt;br /&gt;
==Requirements ==&lt;br /&gt;
&lt;br /&gt;
This page describe how to download and install the GPT image on an eMMC module and boot on ROCK Pi 4. You need at least the following.&lt;br /&gt;
&lt;br /&gt;
* an eMMC module, you can buy it from radxa distributor, the eMMC module from Odroid or PINE64 also works on ROCK Pi 4.  &lt;br /&gt;
[[File:Emmc_module_top.png | 100px]] [[File:Emmc_module_bottom.png | 100px]]&lt;br /&gt;
* an eMMC to microSD breakout board&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Emmc_to_microSD_breakout_top.png | 100px]] [[File:Emmc_to_microSD_breakout_bottom.png | 100px]]&amp;lt;br&amp;gt;&lt;br /&gt;
* a PC/laptop running Windows or Linux or MacOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also need the following to run on ROCK Pi 4&lt;br /&gt;
&lt;br /&gt;
* ROCK Pi 4 board with power supply&lt;br /&gt;
* HDMI cable for display&lt;br /&gt;
* USB keyboard and mouse for input&lt;br /&gt;
&lt;br /&gt;
== Etcher in Linux/Windows ==&lt;br /&gt;
Etcher is the tool we use to write image. Download the right Etcher for your PC from [[Rockpi4/downloads]] page and install it.  &lt;br /&gt;
&lt;br /&gt;
Check [[https://www.balena.io/etcher/ Etcher website]] for more info about Etcher.  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
==== Step1: Download necessary tools and image ====&lt;br /&gt;
Choose the image you want to install may be from [[Rockpi4/downloads]] page and unzip it. The unzipped image name is like below:&lt;br /&gt;
&lt;br /&gt;
    rockpi-4b-*-gpt.img&lt;br /&gt;
&lt;br /&gt;
We will use it for the writing.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
==== Step2: Write the image to eMMC module ====&lt;br /&gt;
&lt;br /&gt;
1. Insert the uSD Card into uSD Card Reader, which connects to host computer. &lt;br /&gt;
&lt;br /&gt;
2. Run the application, for example,  by executing the command on Ubuntu 16.04:&lt;br /&gt;
&lt;br /&gt;
    $ /bin/bash etcher-etcher-electron-1.4.5-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
3. In the etcher window, we click button Select image.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_image.png]]&lt;br /&gt;
&lt;br /&gt;
4. In the etcher window, we click button Select Drive.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_driver.png]]&lt;br /&gt;
&lt;br /&gt;
5. In the etcher window, we click button Flash.&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_select_flash_button.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the etcher window, it shows us Flash Complete!&lt;br /&gt;
&lt;br /&gt;
[[File:linux_etcher_show_complete.png]]&lt;br /&gt;
&lt;br /&gt;
Done! Now you have successfully installed the OS image on eMMC module.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
Here's an easy way to do it on Linux&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ sudo chmod 777 /dev/&amp;lt;Your eMMC module device&amp;gt;*&lt;br /&gt;
    radxa$ umount /dev/&amp;lt;Your eMMC module device&amp;gt;*&lt;br /&gt;
    radxa$ dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/&amp;lt;Your eMMC module device&amp;gt; bs=4M status=progress&lt;br /&gt;
    radxa$ sync&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/rockpi-android9</id>
		<title>Rockpi4/rockpi-android9</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/rockpi-android9"/>
				<updated>2019-12-02T09:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android9}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android9 | Android9]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.&amp;lt;br&amp;gt;&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev lzop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev lzop&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android9-docker&lt;br /&gt;
&lt;br /&gt;
    USER android9-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android9&lt;br /&gt;
    radxa$ cd rockpi4-android9&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/manifests.git -b rockpi-box-9.0 -m rockpi-release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ ./make.sh rk3399&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
Android TV:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image-* are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── dtbo.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── oem.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    ├── uboot.img&lt;br /&gt;
    ├── vbmeta.img&lt;br /&gt;
    └── vendor.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated Image ====&lt;br /&gt;
Android TV&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Android Tablet&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399 Image&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. RkUpdate Image&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
2. GPT Image&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:9018403&lt;br /&gt;
    simg2img system.img&lt;br /&gt;
    simg2img vendor.img&lt;br /&gt;
    simg2img oem.img&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           139263          32.000000      MB&lt;br /&gt;
    dtb             139264          147455          4.000000       MB&lt;br /&gt;
    dtbo            147456          155647          4.000000       MB&lt;br /&gt;
    vbmeta          155648          157695          1.000000       MB&lt;br /&gt;
    boot            157696          223231          32.000000      MB&lt;br /&gt;
    recovery        223232          354303          64.000000      MB&lt;br /&gt;
    backup          354304          583679          112.000000     MB&lt;br /&gt;
    security        583680          591871          4.000000       MB&lt;br /&gt;
    cache           591872          1640447         512.000000     MB&lt;br /&gt;
    system          1640448         6883327         2560.000000    MB&lt;br /&gt;
    metadata        6883328         6916095         16.000000      MB&lt;br /&gt;
    vendor          6916096         7964671         512.000000     MB&lt;br /&gt;
    oem             7964672         9013247         512.000000     MB&lt;br /&gt;
    frp             9013248         9014271         0.500000       MB&lt;br /&gt;
    userdata        9014272         9014271         0.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv</id>
		<title>Rockpi4/dev/rockpi-android-tv</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv"/>
				<updated>2019-12-02T09:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/dev/rockpi-android-tv}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/dev/rockpi-android-tv | Android7-TV]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.  &lt;br /&gt;
&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android7-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android7-docker&lt;br /&gt;
&lt;br /&gt;
    USER android7-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:7.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android7-tv&lt;br /&gt;
    radxa$ cd rockpi4-android7-tv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/rockpi4-android-tv-7.1.git -m rockchip_tv_nougat_release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ make rock-pi-4b-rk3399_defconfig&lt;br /&gt;
    radxa$ ./mk-uboot.sh&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    └── uboot.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated RkUpdate Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Generated GPT Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:3936291&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           122879          24.000000      MB&lt;br /&gt;
    boot            122880          188415          32.000000      MB&lt;br /&gt;
    recovery        188416          253951          32.000000      MB&lt;br /&gt;
    backup          253952          483327          112.000000     MB&lt;br /&gt;
    cache           483328          745471          128.000000     MB&lt;br /&gt;
    system          745472          3891199         1536.000000    MB&lt;br /&gt;
    metadata        3891200         3923967         16.000000      MB&lt;br /&gt;
    baseparamer     3923968         3932159         4.000000       MB&lt;br /&gt;
    userdata        3932160         3932159         0.000000       MB&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv</id>
		<title>Rockpi4/dev/rockpi-android-tv</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv"/>
				<updated>2019-12-02T09:35:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/dev/rockpi-android-tv}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/dev/rockpi-android-tv | Android7-tv]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.  &lt;br /&gt;
&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android7-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android7-docker&lt;br /&gt;
&lt;br /&gt;
    USER android7-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:7.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android7-tv&lt;br /&gt;
    radxa$ cd rockpi4-android7-tv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/rockpi4-android-tv-7.1.git -m rockchip_tv_nougat_release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ make rock-pi-4b-rk3399_defconfig&lt;br /&gt;
    radxa$ ./mk-uboot.sh&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    └── uboot.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated RkUpdate Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Generated GPT Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:3936291&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           122879          24.000000      MB&lt;br /&gt;
    boot            122880          188415          32.000000      MB&lt;br /&gt;
    recovery        188416          253951          32.000000      MB&lt;br /&gt;
    backup          253952          483327          112.000000     MB&lt;br /&gt;
    cache           483328          745471          128.000000     MB&lt;br /&gt;
    system          745472          3891199         1536.000000    MB&lt;br /&gt;
    metadata        3891200         3923967         16.000000      MB&lt;br /&gt;
    baseparamer     3923968         3932159         4.000000       MB&lt;br /&gt;
    userdata        3932160         3932159         0.000000       MB&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv</id>
		<title>Rockpi4/dev/rockpi-android-tv</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/rockpi-android-tv"/>
				<updated>2019-12-02T09:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ahren: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rockpi4/rockpi-android7}}&lt;br /&gt;
&lt;br /&gt;
[[rockpi4 | ROCK Pi 4]] &amp;gt; [[Rockpi4/rockpi-android7 | Android7]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].&lt;br /&gt;
&lt;br /&gt;
==== Repo ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In China Download Repo:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ echo &amp;quot;export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
    radxa$ source ~/.bashrc&lt;br /&gt;
    radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo&lt;br /&gt;
    radxa$ sudo cp /tmp/repo /usr/local/bin/repo&lt;br /&gt;
    radxa$ sudo chmod +x /usr/local/bin/repo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init Environment ====&lt;br /&gt;
Android's source code primarily consists of Java, C++, and XML files.  &lt;br /&gt;
&lt;br /&gt;
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
           zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
           lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
           libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
           htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
           dosfstools vim-common parted udev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Configure the JAVA environment&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64&lt;br /&gt;
    radxa$ export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
    radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DockerFile ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FROM ubuntu:xenial&lt;br /&gt;
    RUN apt-get update -y &amp;amp;&amp;amp; apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
        zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
        lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
        libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \&lt;br /&gt;
        htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \&lt;br /&gt;
        dosfstools vim-common parted udev&lt;br /&gt;
&lt;br /&gt;
    RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo &amp;gt; /usr/local/bin/repo &amp;amp;&amp;amp; \&lt;br /&gt;
        chmod +x /usr/local/bin/repo&lt;br /&gt;
&lt;br /&gt;
    RUN which repo&lt;br /&gt;
&lt;br /&gt;
    ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android7-docker&lt;br /&gt;
&lt;br /&gt;
    ARG USER_ID=0&lt;br /&gt;
    ARG GROUP_ID=0&lt;br /&gt;
    RUN groupadd -g ${GROUP_ID} jenkins-docker &amp;amp;&amp;amp; useradd -m -g jenkins-docker -u ${USER_ID} android7-docker&lt;br /&gt;
&lt;br /&gt;
    USER android7-docker&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Build DockerFile&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    radxa$ docker build -t android-builder:7.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download source code ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ mkdir rockpi4-android7-tv&lt;br /&gt;
    radxa$ cd rockpi4-android7-tv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ repo init -u https://github.com/radxa/rockpi4-android-tv-7.1.git -m rockchip_tv_nougat_release.xml&lt;br /&gt;
    radxa$ repo sync -d --no-tags -j4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It might take quite a bit of time to fetch the entire AOSP source code(around 86G)!&lt;br /&gt;
&lt;br /&gt;
==== Build u-boot ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd u-boot&lt;br /&gt;
    radxa$ make rock-pi-4b-rk3399_defconfig&lt;br /&gt;
    radxa$ ./mk-uboot.sh&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The generated images are **rk3399_loader_v_xxx.bin** , **idbloader.img** and **uboot.img**&lt;br /&gt;
&lt;br /&gt;
==== Building kernel ====&lt;br /&gt;
For HDMI 4K  &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd kernel&lt;br /&gt;
    radxa$ make rockchip_defconfig&lt;br /&gt;
    radxa$ make rk3399-rockpi-4b.img -j$(nproc)&lt;br /&gt;
    radxa$ cd ..&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images are **kernel.img** and **resource.img**:&lt;br /&gt;
&lt;br /&gt;
# kernel.img, kernel with rkcrc checksum&lt;br /&gt;
# resource.img, contains dtb and boot logo, Rockchip format resource package&lt;br /&gt;
&lt;br /&gt;
==== Building AOSP ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ source build/envsetup.sh&lt;br /&gt;
    radxa$ lunch rk3399_box-userdebug&lt;br /&gt;
    radxa$ make -j$(nproc)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
It takes a long time, take a break and wait...&lt;br /&gt;
&lt;br /&gt;
==== Generate  images ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev&lt;br /&gt;
    radxa$ ./mkimage.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The generated images under rockdev/Image are&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    ├── boot.img&lt;br /&gt;
    ├── idbloader.img&lt;br /&gt;
    ├── kernel.img&lt;br /&gt;
    ├── MiniLoaderAll.bin&lt;br /&gt;
    ├── misc.img&lt;br /&gt;
    ├── parameter.txt&lt;br /&gt;
    ├── pcba_small_misc.img&lt;br /&gt;
    ├── pcba_whole_misc.img&lt;br /&gt;
    ├── recovery.img&lt;br /&gt;
    ├── resource.img&lt;br /&gt;
    ├── system.img&lt;br /&gt;
    ├── trust.img&lt;br /&gt;
    └── uboot.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Generated RkUpdate Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./mkupdate.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/ are `update.img`&lt;br /&gt;
&lt;br /&gt;
==== Generated GPT Image ====&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    radxa$ cd rockdev&lt;br /&gt;
    radxa$ ln -s Image-rk3399_box Image&lt;br /&gt;
    radxa$ ./android-gpt.sh&lt;br /&gt;
&lt;br /&gt;
    IMAGE_LENGTH:3936291&lt;br /&gt;
    idbloader       64              16383           8.000000       MB&lt;br /&gt;
    Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
    uboot           16384           24575           4.000000       MB&lt;br /&gt;
    trust           24576           32767           4.000000       MB&lt;br /&gt;
    misc            32768           40959           4.000000       MB&lt;br /&gt;
    resource        40960           73727           16.000000      MB&lt;br /&gt;
    kernel          73728           122879          24.000000      MB&lt;br /&gt;
    boot            122880          188415          32.000000      MB&lt;br /&gt;
    recovery        188416          253951          32.000000      MB&lt;br /&gt;
    backup          253952          483327          112.000000     MB&lt;br /&gt;
    cache           483328          745471          128.000000     MB&lt;br /&gt;
    system          745472          3891199         1536.000000    MB&lt;br /&gt;
    metadata        3891200         3923967         16.000000      MB&lt;br /&gt;
    baseparamer     3923968         3932159         4.000000       MB&lt;br /&gt;
    userdata        3932160         3932159         0.000000       MB&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The images under rockdev/Image are `gpt.img`&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-microSD GPT Image Install on microSD]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC GPT Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''There may be some performance loss when using microSD.'''&lt;/div&gt;</summary>
		<author><name>Ahren</name></author>	</entry>

	</feed>