[ROM][Android10][RockPI 4] Android Q Firmware Release

I`m doing, wait two or three days.

5 Likes

Android 10 AOSP it’s open source!!

4 Likes

I have the issue:

davemf@i7-8700-64gb-ram:~/ROCK_Pi4c$ repo init -u https://github.com/radxa/manifests.git -b rockchip-android-10 -m android-q-release.xml
Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 1, done
remote: Finding sources: 100% (31/31)
remote: Total 31 (delta 11), reused 31 (delta 11)
Unpacking objects: 100% (31/31), done.
From https://gerrit.googlesource.com/git-repo
   65f51ad..50a81de  master     -> origin/master
 * [new tag]         v2.9       -> v2.9
repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.

... A new version of repo (2.8) is available.
... New version is available at: /home/davemf/ROCK_Pi4c/.repo/repo/repo
... The launcher is run from: /usr/bin/repo
!!! The launcher is not writable.  Please talk to your sysadmin or distro
!!! to get an update installed.

Downloading manifest from https://github.com/radxa/manifests.git
warn: .repo/manifests: Not replacing locally modified commit-msg hook
remote: Enumerating objects: 210, done.        
remote: Counting objects: 100% (210/210), done.        
remote: Compressing objects: 100% (67/67), done.        
remote: Total 1081 (delta 151), reused 202 (delta 143), pack-reused 871        
Receiving objects: 100% (1081/1081), 593.33 KiB | 635.00 KiB/s, done.
Resolving deltas: 100% (705/705), done.
fatal: manifest 'android-q-release.xml' not available
fatal: manifest android-q-release.xml not found

How to fix it?

Change to
repo init -u https://github.com/radxa/manifests.git -b rockchip-android-10 -m rockchip-q-release.xml

3 Likes

Also no update.img after build project:

C/system.img --partition vendor:readonly:264634368:rockchip_dynamic_partitions --image vendor=out/target/product/RockPi4C/vendor.img --partition product:readonly:289423360:rockchip_dynamic_partitions --image product=out/target/product/RockPi4C/product.img --partition odm:readonly:552960:rockchip_dynamic_partitions --image odm=out/target/product/RockPi4C/odm.img --sparse --output out/target/product/RockPi4C/super.img"
2020-09-13 00:24:00 - common.py - INFO    : lpmake I 09-13 00:23:56 11618 11618 builder.cpp:949] [liblp]Partition system will resize from 0 bytes to 907767808 bytes
lpmake I 09-13 00:23:56 11618 11618 builder.cpp:949] [liblp]Partition vendor will resize from 0 bytes to 264634368 bytes
lpmake I 09-13 00:23:56 11618 11618 builder.cpp:949] [liblp]Partition product will resize from 0 bytes to 289423360 bytes
lpmake I 09-13 00:23:56 11618 11618 builder.cpp:949] [liblp]Partition odm will resize from 0 bytes to 552960 bytes
2020-09-13 00:24:00 - build_super_image.py - INFO    : Done writing image out/target/product/RockPi4C/super.img

#### build completed successfully (01:59:25 (hh:mm:ss)) ####

rm: cannot remove '/home/davemf/ROCK_Pi4c/rockdev': No such file or directory
davemf@i7-8700-64gb-ram:~/ROCK_Pi4c$ 

super.img - Is it final android ROM for Pi4?

No, it’s vendor, oem and system combined.
Try creating rockdev then run ./mkimage.sh
Then in the rockdev folder rename the RockPi4B to Image and copy to RKTools/Linux/RK_Pack_Firmware and run mkupdate_rk3399.sh in this folder.

1 Like

before run ./mkimage.sh need to enter lunch command.
Which lunch is need for pi4c board? RockPi4C-userdebug is it right?

Yes that is right.
I forgot when you run the included script that it doesn’t save the commands for manual try later.
source build/envsetup.sh then
lunch RockPi4C-userdebug or lunch and select it from the list.

1 Like

Yes, it is work.
Thank you!

So, I have big issue with ROM.
I added gapps and gps.default.so library in /vendor/lib64/hw folder.
I built ROM with command ./build-rockpi-4c.sh and had the first issue.
I made this steps and got the update.img

Out folder contains all standart library and my gps.default.so file.

I flash my ROM and go to /vendor/lib64/hw folder. This folder contains libraries and HIDL services, but almost all have size 0. Gapps are work fine.
Why is it happened? Nothing to work!

@Lili
I see in Settings - Display - HDMI
The settings gets disabled then you can’t change the resolution.

1 Like

Thank you for your test.

I already know the problem.

How do you add these so’s?

Hello,
Is build-rockpi-4c.sh working?

I executed this script. but created image was uncomplete.
“device/rockchip/rk3399/RockPi4C/parameter.txt” don’t have system,vendor partition.
May I need to recreate parameter.txt?

@minami_uni
In Android 10 system, vendor, odm partitions are merged as one and called super.img so they won’t be in the parameter.txt anymore.

@mo123 Thank you for the reply. I’ll retry to build.

@Lili
Hope you can get gpt images to build too.
Also SDDiskTool v1.62 if you use SD Boot on RKFirmware images to burn firmware to a micro-sd card, it boots to recovery and doesn’t load Android.

I added with PRODUCT_COPY_FILES in RockPi4C.mk file, but it doesn’t matter, the standart library is empty too! Why? They have size in out folder, but size is ZERO in ROM.

PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/bootanimation.zip:product/media/bootanimation.zip \
    $(LOCAL_PATH)/lib_hw/gps.default.so:vendor/lib/hw/gps.default.so \
    $(LOCAL_PATH)/lib64_hw/gps.default.so:vendor/lib64/hw/gps.default.so \
    $(LOCAL_PATH)/lib64_hw/settings.conf:vendor/settings.conf

Is it normal log for ./mkimage.sh command?

davemf@i7-8700-64gb-ram:~/ROCK_Pi4c$ ./mkimage.sh
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
device/rockchip/common/device.mk:868: warning: Please set client id with your own MADA ID!
TARGET_PRODUCT=RockPi4C
TARGET_BASE_PARAMETER_IMAGE==
HIGH_RELIABLE_RECOVERY_OTA=false
BOARD_AVB_ENABLE=false
system filesysystem is ext4
create dtbo.img.... 
done.
create boot.img.... 
BOARD_AVB_ENABLE is false, make boot.img from kernel.
done.
create recovery.img.... 
BOARD_AVB_ENABLE is false, make recovery.img from kernel && out.
done.
create system.img.... BOARD_AVB_ENABLE is false, make system.img from out.
in=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/system.img out=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/system.img.out align=1024
Total of 297916 4096-byte output blocks in 14 input chunks.
Generating optimized sparse image done,total_chunk=12.
done.
create vbmeta.img.... BOARD_AVB_ENABLE is false,use default vbmeta.imgdone.create vendor.img...BOARD_AVB_ENABLE is false, make vendor.img from out.
in=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/vendor.img out=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/vendor.img.out align=1024
Total of 64623 4096-byte output blocks in 6 input chunks.
Generating optimized sparse image done,total_chunk=4.
done.create odm.img...BOARD_AVB_ENABLE is false, make odm.img from out.
in=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/odm.img out=/home/davemf/ROCK_Pi4c/out/target/product/RockPi4C/odm.img.out align=1024
Total of 1175 4096-byte output blocks in 2 input chunks.
Generating optimized sparse image done,total_chunk=2.
done.
copy super.img...
create misc.img.... done.
create uboot.img...done.
create trust.img...done.
create loader...done.
create resource.img...done.
create kernel.img...done.
create config.cfg...done.
create parameter...done.

@mo123 Do you have zero library size in /vendor/lib64/hw folder?

@davemf
I think more changes are needed for gps.
Perhaps try grep -r gps in the /device/rockchip and /vendor/rockchip/common folders to check.

Did you remember to add

diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk
index e49f228..883fc6f 100755
--- a/device.mk
+++ b/device.mk
@@ -23,6 +23,11 @@ PRODUCT_PACKAGES += \
     displayd \
     libion
 
+# GPS HAL
+PRODUCT_PACKAGES += \
+    android.hardware.gnss@1.0-impl \
+    android.hardware.gnss@1.0-service
+
 #enable this for support f2fs with data partion
 BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs

--- a/device/rockchip/common/manifest.xml
+++ b/device/rockchip/common/manifest.xml
@@ -185,6 +185,14 @@
         </interface>
         <fqname>@1.0::IHdmiCec/default</fqname>
     </hal>
-
+    <hal format="hidl">
+       <name>android.hardware.gnss</name>
+       <transport>hwbinder</transport>
+       <version>1.0</version>
+       <interface>
+           <name>IGnss</name>
+           <instance>default</instance>
+       </interface>
+    </hal>
 </manifest>