Rockchip · AI & Linux Hub

Android und BSP

Rockchip Android14 SDK: Quellen, Builds, Flashen und Konfiguration

Rockchip Android14 SDK: Quellen, Builds, Flashen und Konfiguration

· ArmSoM Editorial · Rockchip source documentation · 36 Min. Lesezeit

Quellen: Rockchip Android14.0 SDK, chinesisch RK-KF-YF-776 (58 Seiten), englisch RK-KF-YF-777 (63), jeweils V1.4.0. Chinesischer Fachtext ist die Grundlage; englische Ergänzungen/Widersprüche stehen daneben. Supportaussagen betreffen Rockchip-Entwicklungsplattformen, keine ArmSoM-Tests. Befehle sind nicht ausgeführte Dokumentationsbeispiele. Flashen, Partitionen, Fuse-Programmierung und Codeveröffentlichung erfordern Zielprüfung, Backup und Autorisierung. Historische Links und „neueste“-Aussagen wurden nicht aktuell verifiziert.

Unterstützte Chips

Chip Unterstützung SDK-Release
RK3562 Ja RKR1
RK3568 Ja RKR2
RK3566 Ja RKR2
RK3326 Ja RKR2
PX30 Ja RKR3
RK3326-S Ja RKR3
PX30-S Ja RKR3
RK3588 Ja RKR4
RK3588S Ja RKR4
RK3399 Ja RKR5

Beide Tabellen nennen RK3326 unter RKR2, die technische Releasehistorie ordnet RK3326/RK3326-S/PX30/PX30-S RKR3 zu; Widerspruch bleibt erhalten. RKR1 ergänzte RK3562, RKR2 RK3566/RK3568, RKR4 RK3588/RK3588S, RKR5 RK3399.

SDK-Quellen herunterladen

Normales Manifest oder Express bei passenden Rechten initialisieren; Servermirror mit –mirror. repo ist Googles Python-Git-Wrapper für Android-Repositories. Rockchip-Kontakt kann ein geteiltes Startarchiv bereitstellen; entpacken, lokal synchronisieren, anschließend aktuellen Branch remote synchronisieren.

repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_U/manifests -b master -m Android14.xml
repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_U/manifests -b master -m Android14_Express.xml
repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_U/manifests -b master -m Android14.xml --mirror
repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_U/manifests -b master -m Android14_Express.xml --mirror
git clone https://gerrit.rock-chips.com:8443/repo-release/tools/repo
mkdir Rockchip_Android14.0_SDK_RELEASE
cat Rockchip_Android14.0_SDK_RELEASE.tar.gz* | tar -zx -C Rockchip_Android14.0_SDK_RELEASE
cd Rockchip_Android14.0_SDK_RELEASE
.repo/repo/repo sync -l
.repo/repo/repo sync -c

Eigener repo-Server: Umgebung und Gitolite

openssh-server, git und keychain installieren; Beispielserver:10.10.10.206. Separates git-Konto anlegen und anmelden. Quelle verlangt leeres/fehlendes ~/.ssh/authorized_keys; vorhandene Zugangsschlüssel nicht löschen, neues dediziertes Konto verwenden und Zugriff prüfen. Admin-Public-Key nach ~/YourName.pub kopieren, Gitolite klonen, ~/bin anlegen, installieren und Admin setzen. Installation versionsabhängig; passende Quelldokumentation beachten.

sudo apt-get install openssh-server git keychain
sudo adduser --system --shell /bin/bash --group git
sudo passwd git
# Log in as git; copy the administrator public key to ~/YourName.pub
git clone https://github.com/sitaramc/gitolite.git
mkdir -p ~/bin
gitolite/install -to ~/bin
~/bin/gitolite setup -pk YourName.pub

Client:gitolite-admin klonen, Nutzer-Public-Keys nach keydir kopieren und in conf/gitolite.conf Admingruppe mit RW+ für gitolite-admin definieren.

git clone ssh://git@10.10.10.206/gitolite-admin.git
cp username.pub keydir/username.pub
vi conf/gitolite.conf
@admin = admin1 admin2 admin3
repo gitolite-admin
    RW+ = @admin

Repositorymirror anlegen

Server:als git anmelden, repo im Arbeitswurzelverzeichnis laden, RK_Android14_mirror anlegen, Mirror initialisieren und Rechte erzeugen. Client:android_u.conf nach gitolite-admin/conf/ kopieren, Rechte hinzufügen, in gitolite.conf einbinden und eigenes Manifestrepo registrieren. Chinesisch:@android_u/android_u.conf; englisches sed:@android_t, Kopieranweisung:android_r.conf. Quellwidersprüche, keine austauschbaren Namen.

git clone https://gerrit.rock-chips.com:8443/repo-release/tools/repo
mkdir RK_Android14_mirror
cd RK_Android14_mirror
repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_U/manifests -b master -m Android14.xml --mirror
.repo/repo/repo list -n > android_u.conf
sed -i 's/^/@android_u = RK_Android14_mirror\/&/g' android_u.conf
# conf/android_u.conf
@usergroup = user1 user2 user3
repo @android_u
    R = @usergroup
    RW+ = @admin

# conf/gitolite.conf
include "android_u.conf"

# additional source example in conf/android_u.conf
@android_u = Android_T/manifests_xxx

Eigenes Manifest veröffentlichen

Client:neues und ursprüngliches Manifestrepo klonen, Dateien nach manifests_xxx kopieren, git status prüfen, lokal committen und master pushen. Android14 anlegen und repo über eigene Serveradresse für Kollegen initialisieren. Quelle mischt Android_T/Android_u/Android_U; Kopierpfade nach cd manifests_xxx prüfen. Unterverzeichnisse wie include/ erhalten; *.xml kopiert sie nicht mit. Nur Quellenbeispiele, hier nicht ausgeführt.

git clone ssh://git@10.10.10.206/Android_u/manifests_xxx.git
git clone ssh://git@10.10.10.206/Android_U/manifests.git
cd manifests_xxx
cp -rf manifests/*.xml manifests_xxx/
git status
Android14.xml
Android14_Express.xml
default.xml
include/rk3562_repository.xml
include/rk_checkout_from_aosp.xml
include/rk_modules_repository.xml
remote.xml
remove_u.xml
remove_unused.xml
git add -A
git commit -m "init xxx"
git push origin master:master
git clone https://gerrit.rock-chips.com:8443/repo-release/tools/repo
mkdir Android14
cd Android14
~/repo/repo init -u ssh://git@10.10.10.206/Android_U/manifests_xxx.git -m Android14.xml

Eigene Branches und Änderungen

Die meisten Repositories verwenden weiterhin RK-Branches. Im Zielverzeichnis (kernel-6.1) xxx_branch aus remotes/m/master erstellen und nach rk29 pushen (Remote per Tab ergänzbar). In .repo/manifests nach kernel suchen und Projekt-revision auf xxx_branch ändern. Manifest committen/pushen, damit Kollegen den Branch synchronisieren; Produktänderungen anschließend direkt auf xxx_branch. Diff-Pfad kernel und Tag android-1s.0 bleiben historische Quellliterale.

cd kernel-6.1
git checkout remotes/m/master -b xxx_branch
git push rk29 xxx_branch:xxx_branch
cd .repo/manifests
--- a/include/rk_modules_repository.xml
+++ b/include/rk_modules_repository.xml
@@ -10,7 +10,7 @@
<project path="hardware/rockchip/libgraphicpolicy"
name="rk/hardware/rk29/libgraphicpolicy" remote="rk"
revision="refs/tags/android-1s.0-mid-rkr1" />
<project path="hardware/rockchip/libhwjpeg" name="rk/hardware/rk29/libhwjpeg"
remote="rk" revision="refs/tags/android-14.0-mid-rkr1"/>
<project path="u-boot" name="rk/u-boot" remote="rk"
revision="refs/tags/android-14.0-mid-rkr1"/>
- <project path="kernel" name="rk/kernel" remote="rk29"
revision="refs/tags/android-14.0-mid-rkr1"/>
+ <project path="kernel" name="rk/kernel" remote="rk29" revision="xxx_branch"/>
<project path="bootable/recovery/rkupdate"
name="platform/bootable/recovery/rk_update" remote="rk"
revision="refs/tags/android-14.0-mid-rkr1"/>
<project path="bootable/recovery/rkutility"
name="platform/bootable/recovery/rk_utility" remote="rk"
revision="refs/tags/android-14.0-mid-rkr1"/>
git add include/rk_modules_repository.xml
git commit -m "change kernel branch on xxx_branch"
git push origin default:master

RK-Updates synchronisieren

Zuerst Servermirror synchronisieren. Client:RK-Manifeste mit manifests_xxx vergleichen, Tags sowie Repositoryzugänge/-abgänge übernehmen, prüfen/pushen und eigene Branches identifizieren. Je Repository Remote prüfen, lokalen Branch anlegen, Tags ansehen, gewünschten Release mergen, Konflikte beheben und Produktbranch pushen. Überall wiederholen. Historische Beispiele enthalten Android10/11 und nennen android-14.0-mid-rkr1 damals „aktuell“; RKR5-Geltungsbereich bleibt. Checkout remotes/m/xxx_branch weicht vom gezeigten remotes/m/master ab:Refs prüfen. Kernel6.1-Quellen liegen in kernel-6.1/.

cd RK_Android14_mirror
.repo/repo/repo sync -c
git clone //10.10.10.206/wlq/test/manifests.git
wlq@wlq:~/home1/test2/kernel-6.1$ git branch -av
* android-11.0-mid-rkr7 0bde59fad73a ARM: configs: rockchip_defconfig enable
ION_CMA_HEAP
xxx_branch 0bde59fad73a ARM: configs: rockchip_defconfig enable
ION_CMA_HEAP
remotes/m/master -> rk29/xxx_branch
remotes/rk29/xxx_branch 0bde59fad73a ARM: configs: rockchip_defconfig enable
ION_CMA_HEAP
git checkout remotes/m/xxx_branch -b local_xxx_branch
wlq@wlq:~/home1/test2/kernel$ git tag | grep rkr
android-10.0-mid-rkr1
android-10.0-mid-rkr10
android-10.0-mid-rkr11
android-10.0-mid-rkr13
android-10.0-mid-rkr2
android-10.0-mid-rkr3
android-10.0-mid-rkr4
android-10.0-mid-rkr5
android-10.0-mid-rkr6
android-10.0-mid-rkr7
android-10.0-mid-rkr8
android-10.0-mid-rkr9
android-11.0-ebook-rkr1
android-11.0-ebook-rkr2
android-11.0-ebook-rkr3
android-11.0-ebook-rkr4
android-11.0-ebook-rkr5
android-11.0-ebook-rkr6
android-11.0-mid-rkr1
android-11.0-mid-rkr2
android-11.0-mid-rkr3
android-11.0-mid-rkr4
android-11.0-mid-rkr4.1
android-11.0-mid-rkr5
android-11.0-mid-rkr6
android-11.0-mid-rkr7
android-11.0-mid-rkr7-prev
android-11.0-mid-rkr8
android-14.0-mid-rkr1
git merge android-14.0-mid-rkr1
# Resolve any conflicts before pushing
git push rk29 local_xxx_branch:xxx_branch

Lunch-Ziele

Alle Ziele:Android14, GKI standardmäßig aktiv, nur64-Bit. user für Produktion, userdebug für Entwicklung/Debugging; widersprüchliche Quellbeschreibungen separat. GO/2GB/Hardwareangaben werden zeilenweise erhalten, nicht aus Namen abgeleitet.

Ziel Chip Hardware/Konfiguration Zweck
rk3588_u-user RK3588 Entwicklungsboard Produktion/user
rk3588_u-userdebug RK3588 Entwicklungsboard Entwicklung/userdebug
rk3588s_u-user RK3588S Entwicklungsboard Produktion/user
rk3588s_u-userdebug RK3588S Entwicklungsboard Entwicklung/userdebug
rk3562_u-user RK3562 Entwicklungsboard Produktion/user
rk3562_u-userdebug RK3562 Entwicklungsboard Entwicklung/userdebug
rk3562_ugo-user RK3562 2GB, GO aktiv Produktion/user
rk3562_ugo-userdebug RK3562 2GB, GO aktiv Entwicklung/userdebug
rk3566_ugo-user RK3566 2GB, GO aktiv Produktion/user
rk3566_ugo-userdebug RK3566 2GB, GO aktiv Entwicklung/userdebug
rk3566_u-user RK3566 Entwicklungsboard Produktion/user
rk3566_u-userdebug RK3566 Entwicklungsboard Entwicklung/userdebug
rk3568_u-user RK3568 Entwicklungsboard Produktion/user
rk3568_u-userdebug RK3568 Entwicklungsboard Entwicklung/userdebug
rk3326_ugo-userdebug RK3326/RK3326-S Entwicklungsboard Entwicklung/userdebug
rk3326_ugo-user RK3326/RK3326-S 2GB, GO aktiv Produktion/user
rk3326_u-userdebug RK3326/RK3326-S Entwicklungsboard Entwicklung/userdebug
rk3326_u-user RK3326/RK3326-S Board; CN nennt GO aktiv Produktion/user
PX30_u-userdebug PX30/PX30-S Entwicklungsboard CN:user/Produktion; EN:userdebug/Entwicklung
PX30_u-user PX30/PX30-S Entwicklungsboard Produktion/user
rk3399_u-userdebug RK3399 CN:Industrieboard/Excavator; EN:Entwicklungsboard CN:user/Produktion; EN:userdebug/Entwicklung
rk3399_u-user RK3399 CN:Industrieboard/Excavator; EN:Entwicklungsboard Produktion/user

Bei rk3326_ugo-userdebug ergänzt EN2GB/GO, CN nennt nur EVB; bei rk3326_u-user fehlt EN die CN-GO-Angabe. Englischer Hardwaretext schreibt X30, Chipspalte PX30. Unterschiede bleiben sichtbar.

Build mit einem Befehl

Vor Build Umgebung/Plattform setzen. CN:rk3588_u-userdebug; EN:älteres rk3588_t-userdebug, als Versionsabweichung markiert.

source build/envsetup.sh
lunch rk3588_u-userdebug
./build.sh -UKAup
Option Bedeutung
-U U-Boot bauen
-C Kernel mit Clang
-K Kernel bauen
-A Android bauen
-p IMAGE packen
-o OTA-Paket bauen
-u update.img bauen
-v Android-Variante user/userdebug
-d Kernel-DTS-Name
-V Buildversion
-J Buildjobs

Plattform-Buildbefehle

Quelltabelle setzt build/envsetup.sh;lunch vor Android-Ziele (Setup oben mit source). Normal:./build.sh -AUCKu, ./build.sh -K, ./build.sh -U für Vollbuild/Kernel/U-Boot. RK3399-U-Boot:./make.sh rk3399. EN ergänzt RK3588/RK3588S, die CN-Befehlstabelle auslässt.

Chip Typ Referenz Lunch-Ziel Vollbuild Kernel U-Boot
RK3588 EVB (EN-Ergänzung) rk3588-evb1-lp4-v10 rk3588_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3588S Tablet (EN) Tablet rk3588s_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3562 Entwicklungsboard rk3562-evb1-lp4x-v10 rk3562_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3562 Tablet Prototyp rk3562_ugo-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3566 Tablet Prototyp rk3566_ugo-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3566 Entwicklungsboard EVB2-LP4X-V10 rk3566_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3568 Entwicklungsboard EVB1-DDR4-V10 rk3568_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3326/RK3326-S Entwicklungsboard EVB-V12 rk3326_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3326/RK3326-S Prototyp Tablet rk3326_ugo-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
PX30/PX30-S Entwicklungsboard MINI EVB PX30_u-userdebug ./build.sh -AUCKu ./build.sh -K ./build.sh -U
RK3399 Industrie-EVB rk3399-evb-ind-lpddr4-v13-android-avb rk3399_u-userdebug ./build.sh -AUCKu ./build.sh -K ./make.sh rk3399
RK3399 Excavator rk3399-sapphire-excavator-edp-avb rk3399_u-userdebug ./build.sh -AUCKu -d rk3399-sapphire-excavator-edp-avb ./build.sh -K -d rk3399-sapphire-excavator-edp-avb ./make.sh rk3399

GKI- und Nicht-GKI-Builds

CN nennt GKI/A/B standardmäßig für RK3566/RK3568/RK3562, EN im Absatz nur RK3562 trotz breiterer Lunch-Tabelle. BOARD_BUILD_GKI=false deaktiviert GKI und automatisch A/B. GKI/KO-Verfahren:RKDocs/android/Rockchip_Developer_Guide_Android14_GKI_CN.pdf.

wlq@sys2206:~/b0_A14_bringup/device/rockchip/rk3562$ git diff
diff --git a/rk3562_u/BoardConfig.mk b/rk3562_u/BoardConfig.mk
index dc9cc50..a6657dd 100644
--- a/rk3562_u/BoardConfig.mk
+++ b/rk3562_u/BoardConfig.mk
@@ -16,7 +16,7 @@
BUILD_WITH_GO_OPT := true
PRODUCT_KERNEL_DTS := rk3562-rk817-tablet-v10
CAMERA_SUPPORT_AUTOFOCUS := true
-BOARD_BUILD_GKI := true
+BOARD_BUILD_GKI := false
include device/rockchip/rk3562/BoardConfig.mk
DEVICE_IS_64BIT_ONLY := true

Nur Nicht-GKI:kernel.img/resource.img liegen in boot.img und dürfen nicht separat geflasht werden. ./build.sh -AK baut Kernel/Android; rockdev boot.img flashen, jedoch langsam. Separater Kernelbuild ersetzt kernel/resource im passenden alten boot.img. RK3562-Text nennt Image-rk3562_u, Befehl Image-rk3562_t:Basisimage/DTS prüfen. Zuerst parameter.txt importieren, dann kernel-6.1/boot.img nach boot flashen, um falsche Offsets zu vermeiden.

cd kernel-6.1
export PATH=../prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH
alias msk='make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1'
msk ARCH=arm64 rockchip_defconfig android-14.config rk356x.config && msk ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3562_t/boot.img rk3562-evb1-lp4x-v10.img -j32

Flashtools und Ausgaben

Quell-Flashtool-Oberfläche

Quell-Flashtool-Oberfläche - Originalabbildung;PDF-Seite 18 (EN).

Android14 benötigt DriverAssitant V5.1.1. Quelle nennt Windows AndroidTool_Release_v3.28 und Linux_Upgrade_Tool_v2.30 und empfiehlt aktuelle Synchronisation; keine verifizierten aktuellen Versionen. Vollbuild erzeugt ersten Baum; zweiten Teilumfang oder komplettes update.img flashen.

RKTools/windows/AndroidTool/AndroidTool_Release_v3.28
RKTools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool_v2.30
rockdev/Image-rk3562_u/
├── boot-debug.img
├── boot.img
├── config.cfg
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── pcba_small_misc.img
├── pcba_whole_misc.img
├── recovery.img
├── resource.img
├── super.img
├── uboot.img
├── update.img
└── vbmeta.img
rockdev/Image-rk3562_u/
├── boot.img
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── recovery.img
├── super.img
├── uboot.img
└── vbmeta.img
Datei Bedeutung
boot.img ramdisk, Kernel, DTB
boot-debug.img Root-Operationen auf user-Firmware
dtbo.img Device Tree Overlays; siehe DTBO
config.cfg Importiert Flashauswahl ins Tool
MiniLoaderAll.bin Erststufenloader
misc.img recovery-wipe-Startflags; danach Recovery
parameter.txt Partitionsinformationen
pcba_small_misc.img PCBA-Flags; vereinfachter Modus
pcba_whole_misc.img PCBA-Flags; vollständiger Modus
recovery.img Recovery-ramdisk, Kernel, DTB
super.img CN:odm/product/vendor/system/system_ext; EN nur odm/vendor/system
trust.img BL31/BL32; bei RK3566/RK3568 nicht erzeugt/geflasht
uboot.img U-Boot-Firmware
vbmeta.img AVB-Prüfmetadaten
update.img Komplettpaket benötigter Flashimages

Quelle verlangt GKI für Android14-GMS/EDLA; siehe RKDocs/android/Rockchip_Developer_Guide_Android14_GKI_CN.pdf. Historische Zertifizierungsaussage.

Dynamische Partitionen, fastbootd und GSI

Neue R-Geräte verwenden dynamische statt einzelner physischer system/vendor/odm/product/system_ext-Partitionen; super.img flashen. Einzelne logische Images aus out/ über fastbootd mit ausreichend aktuellem adb/fastboot. SDK-Tools:RKTools/linux/Linux_adb_fastboot (Linux_x86), RKTools/windows/adb_fastboot (Windows_x86). fastbootd zeigt Gerätedaten; nichtdynamische Partitionen im Bootloader flashen.

adb reboot fastboot
fastboot flash vendor vendor.img
fastboot flash system system.img
fastboot flash odm odm.img

# Non-dynamic partitions
adb reboot bootloader

fastbootd-Geräteanzeige

fastbootd-Geräteanzeige - Originalabbildung;PDF-Seite 20 (EN).

GSI:bei Bedarf entsperren, fastbootd starten, GSI-system.img und Firmware-misc.img flashen; Recovery setzt auf Werkseinstellungen zurück. Entsperren, misc und product-Löschen können Daten zerstören:Backup/Zielprüfung zuerst. Bei programmiertem AVB-Key gesonderte Entsperranleitung beachten. Bei Platzmangel erlaubt die Quelle optional Löschen der logischen product-Partition vor GSI.

adb reboot bootloader
fastboot oem at-unlock-vboot
fastboot flash misc misc.img
fastboot reboot fastboot
# Optional; deletes the logical product partition
fastboot delete-logical-partition product
fastboot flash system system.img
fastboot reboot

DSU (Dynamic System Updates) ist eine weitere standardmäßig unterstützte GSI-Methode der beschriebenen Plattform. Hoher Speicherbedarf; bei≤1GB DDR nicht empfohlen. Referenz:https://source.android.com/devices/tech/ota/dynamic-system-updates. VTS benötigt boot-debug.img in boot; CTS-ON-GSI nicht. Tests mit offiziellem Google-GSI mit Endung -signed.

DTBO

Android10+ unterstützt Device Tree Overlays; dtbo.img ermöglicht Produktkompatibilität. PRODUCT_DTBO_TEMPLATE finden/setzen und Knoten ändern. DTS benötigt Aliase, sonst schlägt Overlay fehl. Quellpfad:rk388; CN rk3588_u, EN rk3588_t. Abweichungen erhalten; tatsächliche Produktvorlage wählen.

get_build_var PRODUCT_DTBO_TEMPLATE
# Source example
PRODUCT_DTBO_TEMPLATE := $(LOCAL_PATH)/dt-overlay.in
# CN illustrative path: device/rockchip/rk388/rk3588_u/dt-overlay.in
/dts-v1/;
/plugin/;
&chosen {
bootargs_ext = "androidboot.boot_devices=${_boot_device}";
};
&firmware_android {
vbmeta {
status = "disabled";
};
fstab {
status = "disabled";
};
};
&reboot_mode {
mode-bootloader = <0x5242C309>;
mode-charge = <0x5242C30B>;
mode-fastboot = <0x5242C303>;
mode-loader = <0x5242C301>;
mode-normal = <0x5242C300>;
mode-recovery = <0x5242C303>;
};

fstab und Partitionsparameter

PRODUCT_FSTAB_TEMPLATE finden/setzen, Mounts, swap_zram oder Data-Dateisystem ändern. Android14 erzeugt parameter.txt aus Vorlage/Konfiguration; ohne Vorlage wird vorhandenes parameter.txt gesucht. Zum Umgehen des Generators Datei im Produkt-device ablegen, etwa device/rockchip/rk3326/rk3326_u/parameter.txt.

get_build_var PRODUCT_FSTAB_TEMPLATE
PRODUCT_FSTAB_TEMPLATE := device/rockchip/common/scripts/fstab_tools/fstab.in
get_build_var PRODUCT_PARAMETER_TEMPLATE
PRODUCT_PARAMETER_TEMPLATE := device/rockchip/common/scripts/parameter_tools/parameter.in
BOARD_SUPER_PARTITION_SIZE := 2688548864
BOARD_DTBOIMG_PARTITION_SIZE := xxxx
BOARD_BOOTIMAGE_PARTITION_SIZE := xxxxx
BOARD_CACHEIMAGE_PARTITION_SIZE := xxxx

Eigenständiges Parameterbeispiel unten. Bei OTA-Hauptversionswechsel laut Quelle vorheriges parameter.txt behalten. Platzhaltergrößen oben durch geprüfte Zielwerte ersetzen.

parameter_tools --input device/rockchip/common/scripts/parameter_tools/parameter.in --firmware-version 14.0 --machine-model rk3326 --manufacturer rockchip --machine rk3326_u --partition-list uboot_a:4096K,trust_a:4M,misc:4M,dtbo_a:4M,vbmeta_a:4M,boot_a:33554432,backup:300M,security:4M,cache:300M,metadata:4096,frp:512K,super:2G --output parameter_new.txt

Neue Partition:BOARD_WITH_SPECIAL_PARTITIONS im Produkt-BoardConfig.mk setzen (z.B.baseparameter:1M,logo:16M), in RebuildParameter.mk ergänzen.

device/rockchip/rk356x/rk3566_u/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -494,4 +494,11 @@ ifeq ($(strip $(BOARD_TWRP_ENABLE)), true)
+BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:1M
device/rockchip/common/build/rockchip/RebuildParameter.mk
+ifneq ($(strip $(BOARD_WITH_SPECIAL_PARTITIONS)), )
+partition_list := $(partition_list),$(BOARD_WITH_SPECIAL_PARTITIONS)
+endif

Produkt-Lunch ergänzen

Für rk3562_new_u Makefile und user/userdebug in device/rockchip/rk3562/AndroidProducts.mk ergänzen. rk3562_u nach device/rockchip/rk3562/rk3562_new_u kopieren und dort alle rk3562_u durch rk3562_new_u ersetzen.

--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -17,10 +17,14 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/rk3562_u/rk3562_u.mk \
+ $(LOCAL_DIR)/rk3562_new_u/rk3562_new_u.mk \
COMMON_LUNCH_CHOICES := \
rk3562_u-userdebug \
rk3562_u-user \
+ rk3562_new_u-userdebug \
+ rk3562_new_u-user \

Produkt-DTS-Referenzen

DTS nach Chip, PMIC und Hardwaretopologie auswählen. RK3528 steht hier, aber nicht in der SDK-Supporttabelle; Referenzzeile ist keine neue Supportzusage. RK3588-Single-PMIC:CN rk3588-evb7-v11, EN rk3588-evb4-lp7-v10; beide erhalten. Industrie-RK3399-DTS hier ohne v13, Buildtabelle mit v13:prüfen.

SoC PMIC Typ Modell DTS
RK3588 Dual-PMIC:RK806 ×2 Entwicklungsboard RK3588 EVB1 rk3588-evb1-lp4-v10
RK3588 Single-PMIC:RK806+RK860 Entwicklungsboard RK3588-Hardwarereferenz CN:rk3588-evb7-v11; EN:rk3588-evb4-lp7-v10
RK3588S Dual-PMIC:RK806 ×2 Entwicklungsboard RK3588S EVB1 rk3588s-evb1-lp4x-v10
RK3588S Single-PMIC:RK806+RK860 Tablet Tablet-Hardwarereferenz rk3588s-tablet-v11
RK3588S Dual-PMIC:RK806 ×2 Tablet Prototyp rk3588s-tablet-v10
RK3588 Single-PMIC:RK860 Box-EVB RK3588_NVR_DEMO1_LP4X rk3588-nvr-demo-v10-android
RK3566 RK817 Tablet Prototyp rk3566-rk817-tablet
RK3566 RK809 Entwicklungsboard RK3566 EVB2 rk3566-evb2-lp4x-v10
RK3566 Diskret Entwicklungsboard RK3566 BOX DEMO rk3566-box-demo-v10
RK3568 RK809 Entwicklungsboard RK3568 EVB1 rk3568-evb1-ddr4-v10
RK3562 RK817 Entwicklungsboard RK3562 EVB1 rk3562-evb1-lp4x-v10
RK3562 RK809 Entwicklungsboard RK3562 EVB2 rk3562-evb2-ddr4-v10
RK3562 RK817 Tablet Prototyp rk3562-rk817-tablet-v10
RK3528 Diskret BOX RK3528 EVB1 rk3528-evb1-ddr4-v10
RK3326 RK817 Entwicklungsboard EVB rk3326-evb-lp3-v10-avb
PX30 RK809 Entwicklungsboard EVB px30-mini-evb-ddr3-v11-avb
RK3326 RK817 Tablet Prototyp rk3326-863-lp3-v10-rkisp1
RK3326 RK809 KI-Sprache EVB rk3326-evb-ai-va-v12
RK3399 RK808 Entwicklungsboard Excavator rk3399-sapphire-excavator-edp-avb
RK3399 RK809 Entwicklungsboard Industrieboard rk3399-evb-ind-lpddr4-android-avb

Patchbenachrichtigungen

Wichtige Patches:https://redmine.rock-chips.com/projects/rockchip_patch/issues. Anmeldung mit registriertem Rockchip-Redmine-Konto → My account → alle Benachrichtigungen ausgewählter Projekte → Patchprojekt auswählen → Save. Meldungen gehen an registrierte E-Mail. Hier keine Anmeldung/Abonnementänderung durchgeführt.

My account öffnen

My account öffnen - Originalabbildung;PDF-Seite 26 (EN).

Benachrichtigungsumfang wählen

Benachrichtigungsumfang wählen - Originalabbildung;PDF-Seite 26 (EN).

Patchprojekt wählen und speichern

Patchprojekt wählen und speichern - Originalabbildung;PDF-Seite 27 (EN).

Dokumentation und Peripherie

Quelle nennt https://redmine.rockchip.com.cn/projects/fae/documents für aktualisierte DDR/EMMC/NAND-FLASH/WIFI/3G/CAMERA-Listen. Camera-IQ- und RKNN-Toolkit2-SDK-Dokumente liegen unten. RKDocs zeigt den SDK-Dokumentbestand; Sprachsuffixe sind Dateikennungen, keine Behauptung über genutzte Übersetzungsquellen.

external/camera_engine_rkaiq/rkisp2x_tuner/doc/
├── Rockchip_Color_Optimization_Guide_ISP2x_CN_v2.0.0.pdf
├── Rockchip_IQ_Tools_Guide_ISP2x_CN_v2.0.0.pdf
└── Rockchip_Tuning_Guide_ISP21_CN_v2.0.0.pdf
hardware/rockchip/rknn-toolkit2/doc/
RKDocs/
├── android
│ ├── Android11 异显开发说明.zip
│ ├── audio
│ │ └── Rockchip_Developer_Guide_Android_Multi_Audio_CN.pdf
│ ├── bt
│ │ └── Rockchip_Introduction_Android9.0_BT_Configuration_CN.pdf
│ ├── patches
│ │ └── root
│ │ ├── android11_root.pdf
│ │ └── RootChecker.apk
│ ├── Rockchip_Android14_GKI_Developer_Guide_CN.pdf
│ ├── Rockchip_Android14_SDK_Developer_Guide_CN.pdf
│ ├── Rockchip_Android14_SDK_Developer_Guide_EN.pdf
│ ├── Rockchip_Android_Remote_key_Provisioning_Guide.pdf
│ ├── Rockchip_Developer_Guide_Android11_Optimization_CN.pdf
│ ├── Rockchip_Developer_Guide_Android_AB_System_Upgrading_CN.pdf
│ ├── Rockchip_Developer_Guide_Android_Recovery_CN.pdf
│ ├── Rockchip_Developer_Guide_Android_SELinux(Sepolicy)CN.pdf
│ ├── Rockchip_Developer_Guide_PCBA_Test_Tool_V1.3_CN&EN.pdf
│ ├── Rockchip_Firmware_Upgrade_Failed_Analyze_Method_CN.pdf
│ ├── Rockchip_Introduction_Android_Application_Preinstallation_CN&EN.pdf
│ ├── Rockchip_Introduction_Android_Boot_Video_CN.pdf
│ ├── Rockchip_Introduction_Android_BOX_Display_Framework_Configuration_CN.pdf
│ ├── Rockchip_Introduction_Android_Factory_Reset_Protection_CN&EN.pdf
│ ├── Rockchip_Introduction_Android_Log_System.pdf
│ ├── Rockchip_Introduction_Android_Performance_Mode_CN&EN.pdf
│ ├──Rockchip_Introduction_Android_Power_On_Off_Animation_and_Tone_Customization_CN&EN.pdf
│ ├── Rockchip_Introduction_Android_Samba_CN.pdf
│ ├── Rockchip_Introduction_Android_Widevine_Project_Start_Preparation_CN.pdf
│ ├── Rockchip_Introduction_Box_Media_Application_CN&EN.pdf
│ ├── Rockchip-Parameter-File-Format-Version1.4-CN.pdf
│ ├── Rockchip_User_Guide_Android_GMS_Configuration_CN.pdf
│ ├── Rockchip_User_Guide_Android_GMS_Configuration_EN.pdf
│ ├── Rockchip_User_Guide_Box_FactoryTestTool_V3.0_CN.pdf
│ ├── Rockchip_User_Guide_Dr.G_CN&EN.pdf
│ ├── Rockchip_User_Guide_Magisk_Installation_EN.pdf
│ ├── video
│ │ └── Rockchip_Android_Multimedia_FAQ_CN.pdf
│ └── wifi
│ ├── Rockchip_Introduction_REALTEK_WIFI_Driver_Porting_CN&EN.pdf
│ └── Rockchip_Introduction_WIFI_Configuration_CN&EN.pdf
└── common
├── Audio
│ ├── Rockchip_Developer_Guide_Android_EQ_DRC_CN.pdf
│ ├── Rockchip_Developer_Guide_Android_Multi_Audio_CN.pdf
│ ├──Rockchip_Developer_Guide_Audio_Call_3A_Algorithm_Integration_and_Parameter_Debugging_CN.pdf
│ ├── Rockchip_Developer_Guide_Audio_CN.pdf
│ └── Rockchip_Developer_Guide_RK817_RK809_Codec_CN.pdf
├── camera
│ ├── common
│ │ └── Camera_External_FAQ_v1.0 .pdf
│ ├── HAL1
│ │ ├── README_CN.txt
│ │ ├── README_EN.txt
│ │ ├── RK312x_Camera_User_Manual_v1.4(3288&3368).pdf
│ │ ├── RK_ISP10_Camera_User_Manual_v2.3.pdf
│ │ ├── RKISPV1_Camera_Module_AVL_v1.7.pdf
│ │ ├── Rockchip_Camera_AVL_v2.0_Package_20180515.7z
│ │ ├── Rockchip_Introduction_RKISPV1_Camera_Driver_Debugging_Method_CN.pdf
│ │ ├── Rockchip_Introduction_RKISPV1_Camera_FAQ_CN.pdf
│ │ ├── Rockchip SOFIA 3G-R_PMB8018(x3_C3230RK)Camera_Module_AVL_v1.6_20160226.pdf
│ │ └── Rockchip_Trouble_Shooting_Android_CameraHAL1_CN_EN.pdf
│ ├── HAL3
│ │ ├── camera_engine_rkisp_user_manual_v2.2.pdf
│ │ ├── camera_hal3_user_manual_v2.3.pdf
│ │ ├── README_CN.txt
│ │ ├── RKCIF_Driver_User_Manual_v1.0.pdf
│ │ ├── RKISP1_IQ_Parameters_User_Guide_v1.2.pdf
│ │ ├── RKISP_Driver_User_Manual_v1.3.pdf
│ │ ├── Rockchip_Color_Optimization_Guide_ISP
│ │ │ ├── ISP21
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Color_Optimization_Guide_ISP21_CN_v2.0.1.pdf
│ │ │ ├── ISP30
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Color_Optimization_Guide_ISP30_CN_v3.0.0.pdf
│ │ │ └── ISP32-lite
│ │ │ └── CN
│ │ │ └── Rockchip_Color_Optimization_Guide_ISP32_Lite_CN_v3.1.0.pdf
│ │ ├── Rockchip_Development_Guide_3A_ISP
│ │ │ └── ISP30
│ │ │ └── CN
│ │ │ └── Rockchip_Development_Guide_3A_ISP30_v1.1.0.pdf
│ │ ├── Rockchip_Development_Guide_ISP
│ │ │ ├── ISP21
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Development_Guide_ISP21_CN_v2.1.0.pdf
│ │ │ ├── ISP30
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Development_Guide_ISP30_CN_v1.2.3.pdf
│ │ │ └── ISP32-lite
│ │ │ └── CN
│ │ │ └── Rockchip_Development_Guide_ISP32_Lite_CN_v1.0.0.pdf
│ │ ├── Rockchip_Driver_Guide_VI
│ │ │ ├── CN
│ │ │ │ └── Rockchip_Driver_Guide_VI_CN_v1.1.4.pdf
│ │ │ └── EN
│ │ │ └── Rockchip_Driver_Guide_VI_EN_v1.0.7.pdf
│ │ ├── Rockchip_IQ_Tools_Guide_ISP
│ │ │ ├── ISP21
│ │ │ │ └── Rockchip_IQ_Tools_Guide_ISP2x_CN_v2.0.3.pdf
│ │ │ ├── ISP30
│ │ │ │ └── Rockchip_IQ_Tools_Guide_ISP21_ISP30_CN_v2.0.4.pdf
│ │ │ └── ISP32-lite
│ │ │ └── CN
│ │ │ └── Rockchip_IQ_Tools_Guide_v2.0.7_CN.pdf
│ │ ├── Rockchip_Trouble_Shooting_CameraHAL3_CN_EN.pdf
│ │ ├── Rockchip_Tuning_Guide_ISP
│ │ │ ├── ISP21
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Tuning_Guide_ISP21_CN_v2.1.0.pdf
│ │ │ ├── ISP30
│ │ │ │ └── CN
│ │ │ │ └── Rockchip_Tuning_Guide_ISP30_CN_v1.1.0.pdf
│ │ │ └── ISP32-lite
│ │ │ └── CN
│ │ │ └── Rockchip_Tuning_Guide_ISP32-lite_CN_v1.0.0.pdf
│ │ └── USB_UVC_Integrated_Cameras.pdf
│ ├── README.txt
│ └── vehicle
│ └── Rockchip_Android_Fast_Reverse_Image_System_Developer_Guide_CN_V1.0.3.pdf
├── Can
│ ├── Rockchip_Developer_Guide_Can_CN.pdf
│ └── Rockchip_Developer_Guide_CAN_FD_CN.pdf
├── CLK
│ ├── Rockchip_Developer_Guide_Clock_CN.pdf
│ ├── Rockchip_Developer_Guide_Gpio_Output_Clocks_CN.pdf
│ ├── Rockchip_Develop_Guide_Pll_Ssmod_Clock_CN.pdf
│ └── Rockchip_RK3399_Developer_Guide_Clock_CN.pdf
├── CRU
│ ├── Rockchip_Developer_Guide_Linux3.10_Clock_CN.pdf
│ ├── Rockchip_Developer_Guide_Linux4.4_4.19_Clock_CN.pdf
│ ├── Rockchip_Develop_Guide_Pll_Ssmod_Clock_CN.pdf
│ ├── Rockchip_RK3399_Developer_Guide_Clock_CN.pdf
│ └── Rockchip_RK3399_Developer_Guide_Linux4.4_Clock_CN.pdf
├── CRYPTO
│ ├── Rockchip_Developer_Guide_Crypto_HWRNG_CN.pdf
│ └── Rockchip_Developer_Guide_Crypto_HWRNG_EN.pdf
├── DDR
│ ├── DDR_bandwidth_statistics_tool
│ │ ├── rk-msch-probe-for-user-32bit
│ │ ├── rk-msch-probe-for-user-64bit
│ │ └── Rockchip_Introduction_DDR_Bandwidth_Tool_CN.pdf
│ ├── Rockchip-Developer-Guide-DDR-CN.pdf
│ ├── Rockchip-Developer-Guide-DDR-EN.pdf
│ ├── Rockchip-Developer-Guide-DDR-Problem-Solution-CN.pdf
│ ├── Rockchip-Developer-Guide-DDR-Problem-Solution-EN.pdf
│ ├── Rockchip-Developer-Guide-DDR-Verification-Process-CN.pdf
│ ├── Rockchip_Developer_Guide_DDR_Verification_Process_EN.pdf
│ ├── Rockchip_Developer_Guide_HAL_DDR_ECC_CN.pdf
│ └── Rockchip-User-Guide-DDR-DQ-Eye-Tool-CN.pdf
├── debug
│ ├── RK3399-LOG-EXPLANATION.pdf
│ ├── Rockchip_Developer_Guide_DS5_CN.pdf
│ ├── Rockchip_Quick_Start_Linux_Perf.pdf
│ ├── Rockchip_Quick_Start_Linux_Streamline.pdf
│ ├── Rockchip_Quick_Start_Linux_Systrace.pdf
│ ├── Rockchip_RK3399_JTAG_Configuration_CN.pdf
│ └── Rockchip_User_Guide_J-Link_CN.pdf
├── display
│ ├── Rockchip_BT656_TX_AND_BT1120_TX_Developer_Guide_CN.pdf
│ ├── Rockchip_Developer_Guide_Baseparameter_Format_Define_And_Use_CN.pdf
│ ├── Rockchip_Developer_Guide_DRM_Display_Driver_CN.pdf
│ ├── Rockchip_Developer_Guide_DRM_Panel_Porting_CN&EN.pdf
│ ├── Rockchip_Developer_Guide_DRM_Panel_Porting_CN.pdf
│ ├── Rockchip_Developer_Guide_Dual_Display_Rotation_Direction_Debugging_CN.pdf
│ ├── Rockchip_Developer_Guide_HDMI_Based_on_DRM_Framework_CN&EN.pdf
│ ├── Rockchip_Developer_Guide_HDMI-CEC_CN.pdf
│ ├── Rockchip_Developer_Guide_HDMI_CN.pdf
│ ├── Rockchip_Develop_Guide_DRM_Direct_Show_CN.pdf
│ ├── Rockchip_Display_Issues_FAQ_V1.1.pdf
│ ├── Rockchip_DRM_RK628_Porting_Guide_CN.pdf
│ ├── Rockchip FAQ DRM Hardware Composer V1.00-20181213.pdf
│ ├── Rockchip_Introduction_DisplayAdjust_APK_CN.pdf
│ ├── Rockchip_Introduction_DRM_Integration_Helper_CN.pdf
│ ├── Rockchip_RK3588_Developer_Guide_DisplayPort_CN.pdf
│ ├── Rockchip_RK3588_Developer_Guide_MIPI_DSI2_CN.pdf
│ ├── Rockchip_RK3588_Developer_Guide_Vsync_Adjust_CN.pdf
│ ├── Rockchip_RK3588_User_Guide_DP_CN.pdf
│ ├── Rockchip_RK3588_User_Guide_eDP_CN.pdf
│ └── Rockchip_Trouble_Shooting_Graphics
├── DVFS
│ ├── Rockchip_Developer_Guide_CPUFreq_CN.pdf
│ ├── Rockchip_Developer_Guide_CPUFreq_EN.pdf
│ ├── Rockchip_Developer_Guide_Devfreq_CN.pdf
│ ├── Rockchip_Developer_Guide_Devfreq_EN.pdf
│ ├── Rockchip_Developer_Guide_Linux4.4_CPUFreq_CN.pdf
│ └── Rockchip_Developer_Guide_Linux4.4_Devfreq_CN.pdf
├── Ebook
│ ├── Rockchip_RK3566_Introduction_EBOOK_Display_Mode_CN.pdf
│ └── Rockchip_RK3566_Introduction_EBOOK_Sleep_Mode_CN.pdf
├── GMAC
│ ├── Rockchip_Developer_Guide_Ethernet_CN.pdf
│ ├── Rockchip_Developer_Guide_Linux_GMAC_CN.pdf
│ ├── Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdf
│ ├── Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdf
│ └── Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_EN.pdf
├── hdmi-in
│ ├── apk
│ │ ├── HdmiInDemo_based_on_CameraHal1_2020.06.11_v1.2.tar.gz
│ │ └── rkCamera2_based_on_CameraHal3_V1.3.tar.gz
│ ├── Rockchip_Developer_Guide_HDMI_IN_Based_On_CameraHal1_CN.pdf
│ ├── Rockchip_Developer_Guide_HDMI_IN_Based_On_CameraHal3_CN.pdf
│ └── Rockchip_Developer_Guide_HDMI_RX_CN.pdf
├── I2C
│ ├── Rockchip_Developer_Guide_I2C_CN.pdf
│ └── Rockchip_Developer_Guide_I2C_EN.pdf
├── IO-Domain
│ ├── Rockchip_Developer_Guide_Linux_IO_DOMAIN_CN.pdf
│ ├── Rockchip_PX30_Introduction_IO_Power_Domains_Configuration.pdf
│ ├── Rockchip_RK3288_Introduction_IO_Power_Domains_Configuration.pdf
│ ├── Rockchip_RK3326_Introduction_IO_Power_Domains_Configuration.pdf
│ ├── Rockchip_RK3399_Introduction_IO_Power_Domains_Configuration.pdf
│ ├── Rockchip_RK3399Pro_Introduction_IO_Power_Domains_Configuration.pdf
│ └── Rockchip_RK356X_Introduction_IO_Power_Domains_Configuration.pdf
├── IOMMU
│ ├── Rockchip_Developer_Guide_Linux_IOMMU_CN.pdf
│ └── Rockchip_Developer_Guide_Linux_IOMMU_EN.pdf
├── Leds
│ └── Rockchip_Introduction_Leds_GPIO_Configuration_for_Linux4.4_CN.pdf
├── MCU
│ ├── Rockchip_RK3399_Developer_Guide_MCU_CN.pdf
│ └── Rockchip_RK3399_Developer_Guide_MCU_EN.pdf
├── Memory
│ └── Rockchip_Developer_Guide_Linux_CMA_CN.pdf
├── MMC
│ ├── Rockchip_Developer_Guide_SD_Boot_CN.pdf
│ └── Rockchip_Developer_Guide_SDMMC_SDIO_eMMC_CN.pdf
├── mobile-net
│ ├── Rockchip_Introduction_3G_Data_Card_USB_File_Conversion_CN.pdf
│ ├── Rockchip_Introduction_3G_Dongle_Configuration_CN&EN.pdf
│ └── Rockchip_Introduction_4G_Module_Configuration_CN&EN.pdf
├── MPP
│ ├── Rockchip_Developer_Guide_MPP_CN.pdf
│ └── Rockchip_Developer_Guide_MPP_EN.pdf
├── NVM
│ ├── Rockchip_Application_Notes_Storage_CN.pdf
│ ├── Rockchip_Developer_FAQ_Storage_CN.pdf
│ ├── Rockchip_Developer_Guide_OTP_CN.pdf
│ ├── Rockchip_Developer_Guide_OTP_EN.pdf
│ ├── Rockchip_Developer_Guide_SATA_CN.pdf
│ ├── Rockchip_Introduction_Partition_CN.pdf
│ ├── Rockchip_Introduction_Partition_EN.pdf
│ └── Rockchip_RK356X_Developer_Guide_SATA_CN.pdf
├── PCie
│ ├── Rockchip-Developer-Guide-linux4.4-PCIe.pdf
│ ├── Rockchip_Developer_Guide_PCIe_CN.pdf
│ ├── Rockchip_PCIe_Virtualization_Developer_Guide_CN.pdf
│ └── Rockchip_RK3399_Developer_Guide_PCIe_CN.pdf
├── perf
│ ├── perf使用说明.pdf
│ ├── Rockchip_Developer_FAQ_FileSystem_CN.pdf
│ ├── Rockchip_Optimize_Tutorial_Linux_IO_CN.pdf
│ ├── Rockchip_Quick_Start_Linux_Performance_Analyse_CN.pdf
│ └── systrace使用说明.pdf
├── PIN-Ctrl
│ ├── Rockchip_Developer_Guide_Linux_Pinctrl_CN.pdf
│ └── Rockchip_Developer_Guide_Linux_Pinctrl_EN.pdf
├── PMIC
│ ├── Rockchip_Developer_Guide_FreeRTOS_PMIC_CHARGER_POWERKEY_CN.pdf
│ ├── Rockchip_Developer_Guide_Power_Discrete_DCDC_EN.pdf
│ ├── Rockchip_Developer_Guide_RK817_RK809_Fuel_Gauge_CN&EN.pdf
│ ├── Rockchip_RK805_Developer_Guide_CN.pdf
│ ├── Rockchip_RK806_Developer_Guide_CN.pdf
│ ├── Rockchip_RK808_Developer_Guide_CN.pdf
│ ├── Rockchip_RK809_Developer_Guide_CN.pdf
│ ├── Rockchip_RK816_Developer_Guide_CN.pdf
│ ├── Rockchip_RK817_Developer_Guide_CN.pdf
│ ├── Rockchip_RK818_Developer_Guide_CN.pdf
│ ├── Rockchip_RK818_RK816_Developer_Guide_Fuel_Gauge_CN.pdf
│ └── Rockchip_RK818_RK816_Introduction_Fuel_Gauge_Log_CN.pdf
├── power
│ ├── Rockchip_Developer_Guide_Power_Analysis_EN.pdf
│ └── Rockchip_Developer_Guide_Sleep_and_Resume_CN.pdf
├── PWM
│ ├── Rockchip_Developer_Guide_Linux_PWM_CN.pdf
│ ├── Rockchip_Developer_Guide_Linux_PWM_EN.pdf
│ └── Rockchip_Developer_Guide_PWM_IR_CN.pdf
├── RGA
│ ├── Rockchip_Developer_Guide_RGA_CN.pdf
│ ├── Rockchip_Developer_Guide_RGA_EN.pdf
│ ├── Rockchip_FAQ_RGA_CN.pdf
│ └── Rockchip_FAQ_RGA_EN.pdf
├── RK628
│ ├── Rockchip_RK628D_Application_Notes_CN.pdf
│ └── Rockchip_RK628D_For_All_Porting_Guide_CN.pdf
├── RKTools manuals
│ ├── RKIQTool_User_Manual_v1.5-CH.pdf
│ ├── RKIQTool_User_Manual_v1.5-EN.pdf
│ ├── RK_Platform_apache_tomcat_ota_Server_Setup_Introduction.rar
│ ├── Rockchip_Box_Factory_Test_Tool_V2.0.rar
│ ├── Rockchip_Developer_Guide_Linux_Nand_Flash_Open_Source_Solution_CN.pdf
│ ├── Rockchip_Introduction_Image_Upgrading_Failure_Analysis_CN.pdf
│ ├── Rockchip_Introduction_MP_Tool_Upgrading_and_Related_Issues_Debugging_CN.pdf
│ ├── Rockchip_Introduction_REPO_Mirror_Server_Build_and_Management_CN.pdf
│ ├── Rockchip_Introduction_Stresstest_for_VR_CN.pdf
│ ├── Rockchip_Introduction_WNpctool_Write_Tool_CN.pdf
│ ├── Rockchip_User_Guide_Box_Factory_Test_Tool_CN.pdf
│ ├── Rockchip_User_Guide_Keybox_Burning_EN.pdf
│ ├── Rockchip_User_Guide_KeyWrite_CN.pdf
│ ├── Rockchip_User_Guide_MP_Flashing_v1.2_CN.pdf
│ ├── Rockchip_User_Guide_Production_For_Firmware_Download_CN.pdf
│ ├── Rockchip_User_Guide_RKDevInfoWriteTool_CN.pdf
│ ├── Rockchip_User_Guide_RKDevInfoWriteTool_EN.pdf
│ ├── Rockchip_User_Guide_RK_Platform_MP_Upgrading_CN.pdf
│ ├── Rockchip_User_Manual_Android_Development_Tool_CN.pdf
│ ├── Rockchip_User_Manual_RKIQTool_CN.pdf
│ ├── Rockchip_User_Manual_RKIQTool_EN.pdf
│ ├── Rockchip_User_Manual_RKUpgrade_Dll_CN.pdf
│ └── SecureBootTool_UserManual.pdf
├── SARADC
│ ├── Rockchip_Developer_Guide_Linux_SARADC_CN.pdf
│ └── Rockchip_Developer_Guide_Linux_SARADC_EN.pdf
├── security
│ ├── patch
│ │ └── u-boot
│ │ └── 0001-avb-add-embedded-key.patch
│ ├── RK3399_Efuse_Operation_Instructions_V1.00_EN.pdf
│ ├── RK356X_SecurityBoot_And_AVB_instructions_CN.pdf
│ ├── RK356X_SecurityBoot_And_AVB_instructions_EN.pdf
│ ├── RK3588_SecurityBoot_And_AVB_instructions_CN.pdf
│ ├── RK3588_SecurityBoot_And_AVB_instructions_EN.pdf
│ ├── Rockchip_Developer_Guide_Crypto_HWRNG_CN.pdf
│ ├── Rockchip_Developer_Guide_Secure_Boot_Application_Note_EN.pdf
│ ├── Rockchip_Developer_Guide_Secure_Boot_for_UBoot_Next_Dev_CN.pdf
│ ├── Rockchip_Developer_Guide_Secure_Boot_for_UBoot_Next_Dev_EN.pdf
│ ├── Rockchip_Developer_Guide_TEE_SDK_CN.pdf
│ ├── Rockchip_RK3399_User_Guide_SecurityBoot_And_AVB_CN.pdf
│ └── Rockchip Vendor Storage Application Note.pdf
├── Sensors
│ └── Rockchip_Developer_Guide_Sensors_CN.pdf
├── SPI
│ ├── Rockchip_Developer_Guide_Linux_SPI_CN.pdf
│ └── Rockchip_Developer_Guide_Linux_SPI_EN.pdf
├── Thermal
│ ├── Rockchip_Developer_Guide_Thermal_CN.pdf
│ └── Rockchip_Developer_Guide_Thermal_EN.pdf
├── TRUST
│ ├── Rockchip_Developer_Guide_Trust_CN.pdf
│ ├── Rockchip_Developer_Guide_Trust_EN.pdf
│ └── Rockchip_RK3588_Developer_Guide_System_Suspend_CN.pdf
├── Tutorial
│ ├── RK3399-CPUINFO.pdf
│ ├── RK3399-LOG-EXPLANATION.pdf
│ ├── Rockchip_Developer_FAQ_FileSystem_CN.pdf
│ ├── Rockchip_Introduction_Browser_FAQ_CN.pdf
│ └── Rockchip_Trouble_Shooting_Firmware_Upgrade_Issue_CN.pdf
├── UART
│ ├── Rockchip-Developer-Guide-RT-Thread-UART.pdf
│ ├── Rockchip_Developer_Guide_UART_CN.pdf
│ ├── Rockchip_Developer_Guide_UART_EN.pdf
│ └── Rockchip_Developer_Guide_UART_FAQ_CN.pdf
├── u-boot
│ ├── Rockchip-Developer-Guide-Linux-AB-System.pdf
│ ├── Rockchip-Developer-Guide-Uboot-mmc-device-driver-analysis.pdf
│ └── Rockchip_Developer_Guide_UBoot_Nextdev_CN.pdf
├── usb
│ ├── Rockchip_Developer_Guide_Linux_USB_Initialization_Log_Analysis_CN_V1.1.1.pdf
│ ├── Rockchip_Developer_Guide_Linux_USB_Performance_Analysis_CN_V1.1.1.pdf
│ ├── Rockchip_Developer_Guide_Linux_USB_PHY_CN.pdf
│ ├── Rockchip_Developer_Guide_USB_CN.pdf
│ ├── Rockchip_Developer_Guide_USB_EN.pdf
│ ├── Rockchip_Developer_Guide_USB_FFS_Test_Demo_CN.pdf
│ ├── Rockchip_Developer_Guide_USB_FFS_Test_Demo_CN_V1.2.1.pdf
│ ├── Rockchip_Developer_Guide_USB_Gadget_UAC_CN.pdf
│ ├── Rockchip_Developer_Guide_USB_Gadget_UAC_CN_V1.1.1.pdf
│ ├── Rockchip_Developer_Guide_USB_SQ_Test_CN.pdf
│ ├── Rockchip_Introduction_USB_SQ_Tool_CN.pdf
│ ├── Rockchip_RK3399_Developer_Guide_USB_CN.pdf
│ ├── Rockchip_RK356x_Developer_Guide_USB_CN.pdf
│ ├── Rockchip_RK356X_User_Guide_USB_CN.pdf
│ ├── Rockchip_RK3588_Developer_Guide_USB_CN.pdf
│ └── Rockchip_User_Guide_USB_PHY_Tuning_CN.pdf
└── watchdog
├── Rockchip_Developer_Guide_Linux_WDT_CN.pdf
└── Rockchip_Developer_Guide_Linux_WDT_EN.pdf

StressTest

Im Gerätekalkulator83991906= eingeben für StressTest. Modultests:Kamera öffnen/schließen, Fotos/Wechsel; Bluetooth/Wi-Fi ein/aus. ping/iperf nur geplant. Weitere Tests:Flugmodus, Suspend/Resume, Video-Dauerlauf, Neustart, Werksreset-Dauerlauf, ARM/GPU/DDR-Frequenzwechsel. Werksreset löscht Nutzerdaten:Testgerät/Backup verwenden. SDK-Testfunktionen, keine hier durchgeführten ArmSoM-Tests.

PCBA und DeviceTest

PCBA erkennt Fertigungsfehler:LCD, Wi-Fi, Bluetooth, DDR/EMMC, SD, USB HOST, Tasten, Lautsprecher/Kopfhörer-Codec. Automatisch:Wi-Fi, DDR/EMMC, Ethernet; manuell:Tasten, SD, USB HOST, Codec. Ethernet erscheint nur in automatischer Gruppe, nicht erster Liste; quellentreu erhalten. Referenz:RKDocs/android/Rockchip_Developer_Guide_PCBA_Test_Tool_CN&EN.pdf_V1.1_20171222.pdf.

DeviceTest prüft Peripherie nach Endmontage; Kalkulatorcode000.=. TEST CHECKED prüft gewählte Punkte nacheinander; pass/failed markieren. Rot bedeutet Fehler, Rest bestanden; entsprechend reparieren. Anpassungsquellen beim FAE anfordern.

DeviceTest-Auswahl/Ergebnisse

DeviceTest-Auswahl/Ergebnisse - Originalabbildung;PDF-Seite 36 (EN).

Hosttools

Windows-Flashtool

Windows-Flashtool - Originalabbildung;PDF-Seite 37 (EN).

Tool/Zweck Quellpaket/Pfad
USB-ADB-/Flashtreiber RKTools/windows/DriverAssitant_v5.1.1.zip
Windows-Flashen RKTools/windows/AndroidTool/AndroidTool_Release_v3.28.zip
Linux-Flashen RKTools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool_v2.30.zip
SD-Upgrade-/Boot-/PCBA-Medium RKTools/windows/SDDiskTool_v1.74.zip
Gerätekennungen schreiben; entpacken/installieren, als Administrator RKTools/windows/RKDevInfoWriteTool-1.3.0.7z
DDR-Verbindungs-/Lötfehlertest RKTools/windows/Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_CN.7z
RKTools/windows/Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_EN.7z
efuse-Programmierung:RK3288W/RK3368/RK3399 RKTools/windows/efuse_v1.37.rar
efuse/OTP-Firmwaresignierung RKTools/windows/SecureBootTool_v1.94.zip
Werkseitiges Massenflashen RKTools/windows/FactoryTool-1.72.9.7z
Vorbelegtes userdata-Paket RKTools/windows/OemTool_v1.3.rar
Camera-ISP-Bildabstimmung external/camera_engine_rkaiq/rkisp2x_tuner

Kennungstool-Handbuch:RKDocs/common/RKTools manuals/Rockchip_User_Guide_RKDevInfoWriteTool_CN.pdf. efuse/OTP kann irreversibel sein:Chip, Schlüssel und Programmierplan prüfen. Linux-Hilfe unten stammt aus v2.26 trotz Paket v2.30; Befehle/Optionen samt BlokcLen-Tippfehler erhalten. Keine Lösch-/Schreib-/Fuse-Aktion ausgeführt.

Linux_Upgrade_Tool_v2.26$ sudo ./upgrade_tool -h
Program Data in /home/wlq/.config/upgrade_tool
---------------------Tool Usage ---------------------
Help: H
Quit: Q
Version: V
Clear Screen: CS
------------------Upgrade Command ------------------
ChooseDevice: CD
ListDevice: LD
SwitchDevice: SD
UpgradeFirmware: UF <Firmware> [-noreset]
UpgradeLoader: UL <Loader> [-noreset]
DownloadImage: DI <-p|-b|-k|-s|-r|-m|-u|-t|-re image>
DownloadBoot: DB <Loader>
EraseFlash: EF <Loader|firmware> [DirectLBA]
PartitionList: PL
WriteSN: SN <serial number>
ReadSN: RSN
----------------Professional Command -----------------
TestDevice: TD
ResetDevice: RD [subcode]
ResetPipe: RP [pipe]
ReadCapability: RCB
ReadFlashID: RID
ReadFlashInfo: RFI
ReadChipInfo: RCI
ReadSector: RS <BeginSec> <SectorLen> [-decode] [File]
WriteSector: WS <BeginSec> <File>
ReadLBA: RL <BeginSec> <SectorLen> [File]
WriteLBA: WL <BeginSec> <File>
EraseLBA: EL <BeginSec> <EraseCount>
EraseBlock: EB <CS> <BeginBlock> <BlokcLen> [--Force]
-------------------------------------------------------

ADB-Verbindung und Befehle

ADB steuert Gerät/Emulator:Shell, Portmapping, Dateien, APK-Installation. Quelle nennt PC Client und Gerät Server; Netzwerk-ADB über LAN (CN ausdrücklich dasselbe LAN) versus USB. Quellbeschränkungen:OTG, ein Client/ein Gerät; keine allgemeine Aussage über jede ADB-Implementierung. Android starten, Computerverbindung/USB-Debugging in Entwickleroptionen aktivieren, OTG verbinden, adb shell/adb devices ausführen; Seriennummer bestätigt Verbindung.

Aktion Syntax/Beispiel Bedeutung
Geräteliste adb devices Seriennummer/IP:Port und Zustand
Installieren/Neuinstallieren adb install <apk-path>
adb install “F:\WishTV\WishTV.apk”
adb install -r “F:\WishTV\WishTV.apk”
Lokales APK; -r Neuinstallation
Deinstallieren adb uninstall <package>
adb uninstall com.wishtv
Paket vollständig entfernen
APK-Datei löschen adb shell rm <filepath>
adb shell rm “system/app/WishTV.apk”
Löscht Gerätedatei; destruktives Beispiel
Geräteshell adb shell Geräte-/Emulator-Kommandozeile
Hochladen adb push <local-path> <remote-path>
adb push “F:\WishTV\WishTV.apk” “system/app”
Datei/Ordner aufs Gerät; EN lässt Syntaxargumente aus
Herunterladen adb pull <remote-path> <local-path>
adb pull system/app/Contacts.apk F:\
Vom Gerät zum PC kopieren
Fehlerbericht adb bugreport Enthält dumpsys/dumpstate/logcat
Systemeigenschaften adb shell getprop Gerätesystemdaten anzeigen

Typografische PDF-Anführungszeichen/Striche zu ASCII normalisiert. Root-/Systemschreiben hängt von Firmwareberechtigungen ab; Beispiele erteilen keine Rechte und garantieren kein beschreibbares system.

Logcat

Android schreibt Debugdaten in Puffer; logcat zeigt sie, Filter begrenzen Umfang. Syntax:[adb] logcat [

adb shell
logcat
logcat *:W
logcat ActivityManager:I MyApp:D *:S
logcat WishTV:* *:S
logcat -s WishTV
logcat WishTV:I *:S

Procrank-Speichersnapshots

Procrank zeigt Prozessspeicher in Geräteshell. USS gehört ausschließlich dem Prozess und wird bei Ende frei; VSS/RSS enthalten Shared Libraries und zeigen allein keinen exklusiven Besitz. PSS teilt gemeinsamen Speicher proportional. Vorher su; Standard-PSS-Sortierung, -v sortiert VSS absteigend.

Metrik Bedeutung
VSS Virtual Set Size, virtueller Speicher inkl.Shared Libraries
RSS Resident Set Size, physischer Speicher inkl.Shared Libraries
PSS Proportional Set Size, anteilig geteilter Speicher
USS Unique Set Size, exklusiver physischer Speicher
Option Bedeutung
-v VSS
-r RSS
-p PSS
-u USS
-R Auf-/absteigend umkehren
-w Nur Working-Set-Statistik
-W Working-Set-Statistik zurücksetzen
-h Hilfe
su
procrank [ -W ] [ -v | -r | -p | -u | -h ]
procrank
procrank -v
procrank | grep [cmdline | PID]
procrank | grep "com.android.systemui"
procrank | grep 3396

cmdline ist Appname, PID Prozess-ID. Für mögliche Lecks wiederholt Snapshots aufnehmen und USS vergleichen. Nach ADB-Verbindung ./test.sh unten starten; Trend ist Hinweis, allein kein Leckbeweis.

#!/bin/bash
while true;do
    adb shell procrank | grep "com.android.systemui"
    sleep 1
done

Dumpsys

Dumpsys meldet Binder-Dienste in Geräteshell, sofern in ServiceManager registriert und dump implementiert. -help Hilfe, -l Liste; vollständiger, case-sensitiver Dienstname, ggf.Appname ergänzen.

dumpsys -help
dumpsys -l
dumpsys [servicename]
dumpsys SurfaceFlinger
dumpsys [servicename] [application-name]
dumpsys meminfo com.android.systemui

Letzte Logs und FIQ

Zwei ramoops-DTS-Knoten ergänzen. /sys/fs/pstore:dmesg-ramoops-0 letzter Panic; pmsg-ramoops-0 frühere Android/Userspace-Logs; ftrace-ramoops-0 Funktionstraces; console-ramoops-0 letzter Kernelstartlog oberhalb Standard-Loglevel. logcat -L liest/parst pmsg.

ramoops_mem: ramoops_mem {
reg = <0x0 0x110000 0x0 0xf0000>;
reg-names = "ramoops_mem";
};
ramoops {
compatible = "ramoops";
record-size = <0x0 0x20000>;
console-size = <0x0 0x80000>;
ftrace-size = <0x0 0x00000>;
pmsg-size = <0x0 0x50000>;
memory-region = <&ramoops_mem>;
};
cd /sys/fs/pstore
ls
cat dmesg-ramoops-0
cat console-ramoops-0
logcat -L
cat ftrace-ramoops-0

Bei Absturz/Hänger fiq in serieller Konsole, dann help für Zustandsbefehle. reboot/reset ändern Gerätezustand; gezielt verwenden.

127|console:/ $ fiq
debug> help
FIQ Debugger commands:
pc PC status
regs Register dump
allregs Extended Register dump
bt Stack trace
reboot [<c>] Reboot with command <c>
reset [<c>] Hard reset with command <c>
irqs Interupt status
kmsg Kernel log
version Kernel version
sleep Allow sleep while in FIQ
nosleep Disable sleep while in FIQ
console Switch terminal to console
cpu Current CPU
cpu <number> Switch to CPU<number>
ps Process list
sysrq sysrq options
sysrq <param> Execute sysrq with <param>

FAQ:Versionen und Synchronisation

Android14.0:Kernel6.1/U-Boot next-dev. SDK kombiniert AOSP/RK; RK-XML unter .repo/manifests/include, AOSP in .repo/manifests/default.xml. Beide revision-Werte melden; Beispiele android-14.0-mid-rkr1/android-14.0.0_r11. git tag zeigt Repositorytags; RK zählt android-14.0-mid-rkrxx hoch. „Aktuell RKR1“ ist historisch.

vim .repo/manifests/include/rk_checkout_from_aosp.xml
<project groups="pdk" name="platform/build" path="build/make" remote="rk" revision="refs/tags/android-14.0-mid-rkr1">
vim .repo/manifests/default.xml
<default revision="refs/tags/android-14.0.0_r11"...>
# In kernel-6.1
git tag
# example result: android-14.0-mid-rkr1

Vollständigkeit:gepinntes lokales Manifest exportieren und mit Release unter .repo/manifests/commit/ vergleichen. CN nennt RKR1, EN RKR6; beide Dateinamen rkr1, später beide Referenz RKR6. Widerspruch erhalten; tatsächlichen Zielrelease vergleichen.

.repo/repo/repo manifest -r -o release_manifest_rkr1_local.xml
# Compare with .repo/manifests/commit/commit_release_rkr1.xml

Bootlogos und reine64-Bit-Builds

Erstes/zweites Bootlogo:kernel-6.1/logo.bmp/logo_kernel.bmp. Gleichnamige BMP ersetzen, Kernel neu bauen; in boot.img gepackt. Quelle:unter8MB,8/16/24/32-Bit-BMP. Android14-GMS/EDLA verlangt laut Quelle nur64-Bit zur Speicherreduktion; rk3562_ugo-Beispiel unten.

diff --git a/rk3562_ugo/BoardConfig.mk b/rk3562_ugo/BoardConfig.mk
index c06433e..dc9cc50 100644
--- a/rk3562_ugo/BoardConfig.mk
+++ b/rk3562_ugo/BoardConfig.mk
@@ -18,3 +18,11 @@ PRODUCT_KERNEL_DTS := rk3562-rk817-tablet-v10
CAMERA_SUPPORT_AUTOFOCUS := true
BOARD_BUILD_GKI := true
include device/rockchip/rk3562/BoardConfig.mk
+
+DEVICE_IS_64BIT_ONLY := true
+
+TARGET_2ND_ARCH :=
+TARGET_2ND_ARCH_VARIANT :=
+TARGET_2ND_CPU_ABI :=
+TARGET_2ND_CPU_ABI2 :=
+TARGET_2ND_CPU_VARIANT :=

Laden und Ladebilder

Ausgeschaltetes Laden/Vorladung in DTS. uboot-charge-on/android-charge-on schließen einander aus. uboot-low-power-voltage ist Bootschwelle, screen-on-voltage Displayschwelle. BMP gleichnamig/gleichformatiert ersetzen. Fehlende Bilder in resource.img packen, dann boot.img und rockdev/boot.img flashen. Quelle mischt kernel-6.1/kernel und ./mkiamge.sh; reale Pfade/Skripte prüfen.

charge-animation {
compatible = "rockchip,uboot-charge";
rockchip,uboot-charge-on = <1>;
rockchip,android-charge-on = <0>;
rockchip,uboot-low-power-voltage = <3400>;
rockchip,screen-on-voltage = <3500>;
status = "okay";
};
u-boot/tools/images/
├── battery_0.bmp
├── battery_1.bmp
├── battery_2.bmp
├── battery_3.bmp
├── battery_4.bmp
├── battery_5.bmp
└── battery_fail.bmp
cd u-boot
./scripts/pack_resource.sh ../kernel-6.1/resource.img
cp resource.img ../kernel/resource.img
# Source spelling, executed from Android root:
./mkiamge.sh

HDMI, Modem, Wi-Fi und Rotation

HDMI IN/RM3104G standardmäßig aus; Einstellungen unten. Wi-Fi bleibt im Schlaf verbunden; def_wifi_sleep_policy2→0 im Quell-rk3566_rgo-Overlay trennt. persist.wifi.sleep.delay.ms:standard15Minuten,0 sofort nach Display-Aus. rgo ist historischer Quellpfad, kein hier abgeleitetes Android14-Ziel.

# device/rockchip/rk3588/BoardConfig.mk
BOARD_HDMI_IN_SUPPORT := true
# device/rockchip/common/BoardConfig.mk
BOARD_HAS_RK_4G_MODEM ?= true
--- a/rk3566_rgo/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/rk3566_rgo/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -24,5 +24,5 @@
You can configure persist.wifi.sleep.delay.ms to delay closing wifi.
The default is 15 minutes, 0 means that the wifi is turned off
immediately after the screen is off. -->
- <integer name="def_wifi_sleep_policy">2</integer>
+ <integer name="def_wifi_sleep_policy">0</integer>
</resources>

Recovery:0/90/180/270°, Standard0; device/rockchip/common/BoardConfig.mk:ROTATION_NONE/RIGHT/DOWN/LEFT entsprechend. SurfaceFlinger ebenfalls0/90/180/270.

TARGET_RECOVERY_DEFAULT_ROTATION ?= ROTATION_NONE
SF_PRIMARY_DISPLAY_ORIENTATION ?= 0

AOSP-Remotemirrors

Nach repo init/Entpacken aosp fetch in .repo/manifests/remote.xml ändern:Quellbeispiel China Tsinghua, Ausland Google. Ursprünglich fetch=”./” review=”https://10.10.10.29”. „< remote“/abschließendes Semikolon aus PDF unten korrigiert; Verfügbarkeit/Berechtigung separat prüfen.

<remote name="aosp" fetch="./" review="https://10.10.10.29" />
<!-- Alternative A -->
<remote name="aosp" fetch="https://aosp.tuna.tsinghua.edu.cn" />
<!-- Alternative B -->
<remote name="aosp" fetch="https://android.googlesource.com" />

Data-Leistung und EXT4

Quelle empfiehlt fsync_mode=nobarrier bei Batterieprodukten für Tempo, warnt ohne Batterie vor Datenverlust bei Stromausfall. Batterie beseitigt nicht alle Risiken; Versorgung/Backups validieren. Beide fstab.in/fstab_go.in-Patches erhalten; letzterer enthält vermutlich falsches resgid=1065i:nicht blind anwenden. PDF-Umbrüche verbunden, Literal markiert erhalten.

cd device/rockchip/common
diff --git a/scripts/fstab_tools/fstab.in b/scripts/fstab_tools/fstab.in
index 2ec6c265..c890cc84 100755
--- a/scripts/fstab_tools/fstab.in
+++ b/scripts/fstab_tools/fstab.in
@@ -23,6 +23,6 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags},first_stage_mount
# For sdmmc
/devices/platform/${_sdmmc_device}/mmc_host* auto auto defaults voldmanaged=sdcard1:auto
# Full disk encryption has less effect on rk3326, so default to enable this.
-/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
+/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
# for ext4
#/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block
diff --git a/scripts/fstab_tools/fstab_go.in b/scripts/fstab_tools/fstab_go.in
index 582557f2..05c7653c 100755
--- a/scripts/fstab_tools/fstab_go.in
+++ b/scripts/fstab_tools/fstab_go.in
@@ -17,6 +17,6 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags},first_stage_mount
# For sdmmc
/devices/platform/${_sdmmc_device}/mmc_host* auto auto defaults voldmanaged=sdcard1:auto
# Full disk encryption has less effect on rk3326, so default to enable this.
-/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
+/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065i,fsync_mode=nobarrier latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
# for ext4
#/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block

data standardmäßig f2fs; Quelle schlägt EXT4 ohne Batterie zur Risikoreduktion vor, nicht als Garantie. rk3566r-Beispiel ändert Android-fstab und recovery.fstab; Umstellung kann Formatierung verlangen, Migration/Backup planen. Quellkontext first_stage ist bereits unvollständig, nicht erfunden ergänzt.

device/rockchip/common$ git diff
diff --git a/scripts/fstab_tools/fstab.in b/scripts/fstab_tools/fstab.in
index 6e78b00..a658332 100755
--- a/scripts/fstab_tools/fstab.in
+++ b/scripts/fstab_tools/fstab.in
@@ -20,6 +20,6 @@ ${_block_prefix}system_ext /system_ext ext4 ro,barrier=1 ${_flags},first_stage_
# For sdmmc
/devices/platform/${_sdmmc_device}/mmc_host* auto auto defaults voldmanaged=sdcard1:auto
# Full disk encryption has less effect on rk3326, so default to enable this.
-/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,quota,formattable,reservedsize=128M,checkpoint=fs
+#/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,quota,formattable,reservedsize=128M,checkpoint=fs
# for ext4
-#/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block
+/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block
device/rockchip/rk356x$ git diff
diff --git a/rk3566_r/recovery.fstab b/rk3566_r/recovery.fstab
index 7532217..cf789ac 100755
--- a/rk3566_r/recovery.fstab
+++ b/rk3566_r/recovery.fstab
@@ -7,7 +7,7 @@
/dev/block/by-name/odm /odm ext4 defaults defaults
/dev/block/by-name/cache /cache ext4 defaults defaults
/dev/block/by-name/metadata /metadata ext4 defaults defaults
-/dev/block/by-name/userdata /data f2fs defaults defaults
+/dev/block/by-name/userdata /data ext4 defaults defaults
/dev/block/by-name/cust /cust ext4 defaults defaults
/dev/block/by-name/custom /custom ext4 defaults defaults
/dev/block/by-name/radical_update /radical_update ext4 defaults defaults

Animation, App-Leistung und GPU-Diagnose

Animation/Töne:RKDocs/android/Rockchip_Introduction_Android_Power_On_Off_Animation_and_Tone_Customization_CN&EN.pdf. Beschleunigte Pakete in device/rockchip/rk3xxx/package_performance.xml; Namen mit aapt dump badging (file_path.apk), mode1 an/0 aus; Datei wird eingepackt. Antutu-Original unten enthält XML-Abstands-/Backslashfehler und doppelte full-Zeile; nachvollziehbar erhalten, keine fertige XML-Datei. GPU:RKDocs/android/Rockchip_User_Guide_Dr.G_CN&EN.pdf.

< app package="com.antutu.ABenchMark"mode="1"/>
< app package="com.antutu.benchmark.full"mode="1"\/>
< app package="com.antutu.benchmark.full"mode="1"\/>

OTP/efuse und Programmierstatus

Typ Quell-Chipliste
OTP RK3326, PX30, RK3566, RK3568, RK3588
EFUSE RK3288, RK3368, RK3399

EN ergänzt OTP RK3568S, CN nicht; ungeprüfter Quellunterschied, nicht zu anderem Chip umbenannt. Referenz:RKDocs/common/security/Rockchip-Secure-Boot-Application-Note-V1.9.pdf. cmdline fuse.programmed:1 signierte Firmware/programmiertes Hardware;0 signiert/unprogrammiert. Fehlt es, kann Firmware unsigniert oder Miniloader zu alt sein; kein Beweis für unprogrammiertes Hardware.

SELinux und Startkonsistenzwarnung

BOARD_SELINUX_ENFORCING=false deaktiviert Enforcement,true aktiviert; Abschalten schwächt Schutz, keine Produktionsempfehlung. Internal-problem-Warnung:abweichende system/boot/vendor-Fingerprints oder IO-Debugconfig. Ohne Debugbedarf normale Kernelkonfiguration bauen. Quellpatch versteckt Warnung, behebt aber keine Inkonsistenz; if (0 && …) ist ungültiges Java, nur als Quellfehler erhalten. Ursache beheben und Debugänderungen prüfen.

device/rockchip/common$
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -67,7 +67,7 @@ endif
# Enable android verified boot 2.0
BOARD_AVB_ENABLE ?= false
-BOARD_SELINUX_ENFORCING ?= false
+BOARD_SELINUX_ENFORCING ?= true
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 595c340..d4e495a 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -6555,7 +6555,7 @@ public class ActivityTaskManagerService extends
IActivityTaskManager.Stub {
} catch (RemoteException e) {
}
- if (!Build.isBuildConsistent()) {
+ if (0 && !Build.isBuildConsistent()) {
Slog.e(TAG, "Build fingerprint is not consistent, warning user");
mUiHandler.post(() -> {
if (mShowDialogs) {

Ethernet, AVB und IO-Debugging

Etherneteinstellungen standardmäßig verborgen; BOARD_HS_ETHERNET=true ergänzen. AVB:RKDocs/common/security/RK356X_SecurityBoot_And_AVB_instructions_CN.pdf. IO benötigt standardmäßig deaktiviertes DEVMEM. Kontrollierter Debugbuild:„# CONFIG_DEVMEM is not set“ aus mkcombinedroot/configs/android-14.config bzw.android-14-go.config entfernen; Android zusätzlich beide kernel/configs-Patches unten. Physischer Direktzugriff schwächt Isolation;nicht pauschal produktiv aktivieren.

--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -146,3 +146,6 @@ endif
ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)
DEVICE_MANIFEST_FILE := device/rockchip/$(TARGET_BOARD_PLATFORM)/manifest_ab.xml
endif
+# for ethernet
+BOARD_HS_ETHERNET := true
cd rk3562_Android14.0/kernel/configs
diff --git a/android-6.1/android-base.config b/android-6.1/android-base.config
index 5de76f0..6dcdf86 100644
--- a/android-6.1/android-base.config
+++ b/android-6.1/android-base.config
@@ -2,7 +2,6 @@
# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
# CONFIG_ANDROID_PARANOID_NETWORK is not set
# CONFIG_BPFILTER is not set
-# CONFIG_DEVMEM is not set
# CONFIG_FHANDLE is not set
# CONFIG_FW_CACHE is not set
# CONFIG_IP6_NF_NAT is not set
wlq@sys2206:~/rk3562_Android14.0/kernel/configs$ git diff
diff --git a/u/android-6.1/android-base.config b/u/android-6.1/android-base.config
index 29b9e98..c1b21cf 100644
--- a/u/android-6.1/android-base.config
+++ b/u/android-6.1/android-base.config
@@ -2,7 +2,6 @@
# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
# CONFIG_ANDROID_PARANOID_NETWORK is not set
# CONFIG_BPFILTER is not set
-# CONFIG_DEVMEM is not set
# CONFIG_FHANDLE is not set
# CONFIG_FW_CACHE is not set
# CONFIG_IP6_NF_NAT is not set

SN, LZ4 und weitere Funktionen

SN beginnt mit Buchstaben,maximal14Byte. Kernel-LZ4-Fehler kann alte Hostversion bedeuten; Quelle verlangt1.8.3+, prüfen mit lz4 -v. Vorgeschlagenes Ersetzen von /usr/bin/lz4 durch Android-Binary verändert Systemtool; Kompatibilität/Wiederherstellung prüfen. Ausgabe enthält auch refusing to read from a console.

LZ4-Buildfehler

LZ4-Buildfehler - Originalabbildung;PDF-Seite 56 (EN).

wlq@ubuntu:~$ lz4 -v
*** LZ4 command line interface 64-bits v1.8.3, by Yann Collet ***
refusing to read from a console
sudo cp out/host/linux-x86/bin/lz4 /usr/bin/lz4
Funktion Referenz
Samba RKDocs/android/Rockchip_Introduction_Android_Samba_CN.pdf
NFS-Boot RKDocs/android/patches/customized_functions/nfs_boot_patch_v1.1.0.zip
Unabhängige Displays/Touch RKDocs/android/patches/customized_functions/Android11异显开发说明.zip
Getrennter Displayton RKDocs/android/patches/customized_functions/Dual_Audio_v1.0.zip

RK3528-DDR4BIT-PCB-Loaderbeispiel ändert nur FlashData auf4BIT unten; ergänzt RK3528 nicht zur SDK-Supporttabelle.

diff --git a/RKBOOT/RK3528MINIALL.ini b/RKBOOT/RK3528MINIALL.ini
index a7e3779..6a952cf 100644
--- a/RKBOOT/RK3528MINIALL.ini
+++ b/RKBOOT/RK3528MINIALL.ini
@@ -14,7 +14,7 @@ Path1=bin/rk35/rk3528_usbplug_v1.03.bin
NUM=2
LOADER1=FlashData
LOADER2=FlashBoot
-FlashData=bin/rk35/rk3528_ddr_1056MHz_v1.05.bin
+FlashData=bin/rk35/rk3528_ddr_1056MHz_4BIT_PCB_v1.05.bin

Anhang A:historische Buildumgebung

Anhang stammt aus älterer AOSP-Anleitung, auch im CN-PDF englisch. Ubuntu14.04/15.04,JDK8,Mac sind historisch, keine geprüften Android14-Hostanforderungen; GKI verlangt separat Ubuntu20.04+. Alte Paketbefehle sind keine aktuelle Installationsempfehlung. Quelle nennt Linux/Mac statt Windows, verweist auf Life of a Patch; $ sind Prompts, Click-to-copy/Dreifachklick Quell-Webhinweise, keine Artikelfunktion.

Zuerst Branch wählen; Anforderungen hängen davon ab. Build Numbers listet Branches, master-Beispiel ohne Branchangabe. Linux-Anleitung gilt laut Quelle für alle/master; historische Tests Ubuntu LTS14.04/Debian testing, andere Distributionen können Tools besitzen. Gingerbread2.3.x+ benötigt64-Bit, ältere Versionen konnten32-Bit. Requirements nennt vollständige Ubuntu/Mac-Voraussetzungen. AOSP-master enthält OpenJDK in prebuilts/jdk/; ältere Branches benötigen separate passende JDK-Installation.

Historische Ubuntu≥15.04-Befehle installieren OpenJDK8. Für14.04 laut Quelle keine unterstützten Pakete,15.04 funktionierten,15.10/16.04 mit Verfahren nicht.64-Bit-.deb von old-releases.ubuntu.com mit SHA256 prüfen; hier nicht heruntergeladen.

sudo apt-get update
sudo apt-get install openjdk-8-jdk
Paket SHA256
openjdk-8-jre-headless_8u45-b14-1_amd64.deb 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
openjdk-8-jre_8u45-b14-1_amd64.deb 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
openjdk-8-jdk_8u45-b14-1_amd64.deb 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c

dpkg je Paket, fehlende Abhängigkeiten mit apt-get -f install. Optional java/javac per update-alternatives wählen. Im PDF verklebte Befehle unten getrennt. Bei Java-Versionsfehlern verweist Quelle auf Wrong Java version.

sha256sum {downloaded.deb file}
sudo apt-get update
sudo dpkg -i {downloaded.deb file}
sudo apt-get -f install
sudo update-alternatives --config java
sudo update-alternatives --config javac

Historische64-Bit-Ubuntu14.04-Abhängigkeiten unten. CN ergänzt libssl-dev/liblz4-tool/python-dev, die EN fehlen. SELinux-Analyse:python-networkx; ART-Hosttests mit LDAP:libnss-sss:i386.

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip python-pyelftools python3-pyelftools device-tree-compiler libfdt-dev libfdt1 libssl-dev liblz4-tool python-dev

Historische GNU/Linux-USB-Regel erteilt benanntem Nutzer Zugriff. Als root /etc/udev/rules.d/51-android.rules anlegen, durch autorisierten Nutzer ersetzen, Gerät neu verbinden. Quelle berichtet Ubuntu8.04.x/10.04.x; andere Versionen eventuell anders. Referenz:http://source.android.com/source/initializing.html.

# adb protocol on passion (Rockchip products)
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0600", OWNER="<username>"

Anhang B:SSH-Schlüssel

B-1:RSA-Schlüssel erzeugen, user@host durch E-Mail ersetzen. id_rsa/Passphrase geheim halten, nur id_rsa.pub an SDK-Administrator geben. Screenshots sind Quellenbeispiele, keine hier erzeugten Schlüssel.

ssh-keygen -t rsa -C "user@host"

RSA-Schlüsselerzeugung

RSA-Schlüsselerzeugung - Originalabbildung;PDF-Seite 60 (EN).

Erzeugte Schlüsseldateinamen

Erzeugte Schlüsseldateinamen - Originalabbildung;PDF-Seite 60 (EN).

B-2:keychain installieren, eval-Zeile in ~/.bashrc ergänzen, neu anmelden und ggf.Passphrase eingeben. id_rsa ist Privatdatei. Für gewöhnliche Schlüsselnutzung sudo/root vermeiden, sofern Eigentümer-/Agentfolgen unklar.

sudo aptitude install keychain
vim ~/.bashrc
# Add to ~/.bashrc:
eval `keychain --eval ~/.ssh/id_rsa`

B-3:Quelle verwendet dieselbe Identität auf mehreren autorisierten Rechnern durch sichere Kopie von id_rsa nach ~/.ssh/id_rsa. Ein Privatcredential wird vervielfältigt;nicht an Dritte/unvertrauenswürdige Rechner geben. Falscher Schlüssel erzeugt Fehler, korrekter erlaubt Clone. Bei Quellfehler „Agent admitted failture to sign using the key“ ssh-add ~/.ssh/id_rsa ausführen.

Falsche Identität/Authentifizierungsfehler

Falsche Identität/Authentifizierungsfehler - Originalabbildung;PDF-Seite 61 (EN).

Clone mit korrekter Identität

Clone mit korrekter Identität - Originalabbildung;PDF-Seite 61 (EN).

ssh-add ~/.ssh/id_rsa

B-4:man ssh_config. Quelle kopiert System-ssh_config nach ~/.ssh/config und setzt IdentityFile ~/.ssh1/id_rsa zum Identitätswechsel. Bestehende Nutzerkonfiguration vorher sichern; Kopie würde Einstellungen überschreiben.

man ssh_config
cp /etc/ssh/ssh_config ~/.ssh/config
vi .ssh/config
# Relevant ssh_config directive:
IdentityFile ~/.ssh1/id_rsa

ssh_config-Handbuch

ssh_config-Handbuch - Originalabbildung;PDF-Seite 62 (EN).

Alternatives IdentityFile

Alternatives IdentityFile - Originalabbildung;PDF-Seite 62 (EN).

B-5:Server kann Downloads/IPs je Schlüssel überwachen und bei Auffälligkeiten sperren. Privatkey schützen, nicht an Dritte weiterautorisieren. B-6:Public-Key-Datei an fae@rock-chips.com zur SDK-Zugriffsbeantragung senden. Hier keine E-Mail, Schlüsselerzeugung oder Anfrage ausgeführt.

Dieses Thema entdecken → · Lernpfade →