(SHIFTphone 8) crDroid 12.9 Unofficial (Android 16QPR2)

Ene

Active member
Original poster
21 Oktober 2020
185
Germany / Bavaria

crDroid 12.9 (Unofficial)​


crdroid.png

General

I compiled crDroid for the SHIFTphone 8!

Prerequisites

  • unlocked bootloader (using this guide)
  • (for the initial installation, a PC with fastboot configured according to this guide)

Download

https://drive.google.com/file/d/1y0gwSSORGadyGVrVlH-ciIl1rzLSoGU-/view?usp=sharing

Installation

Extract Payload

  1. extract the payload.bin file form the downloaded crDroidAndroid-[...]-otter-v12.[...].zip
  2. download payload-dumper-go from here
  3. put the payload-dumper-go executable in the same folder as the payload.bin
  4. execute payload-dumper-go payload.bin

Flash Partitions

  1. reboot the device into bootloader mode
  2. check if the driver is correctly installed and the device is detected using fastboot devices
  3. ⚠️ this will wipe all your data ⚠️
    inside the folder where the extracted images reside, execute these commands
    Code:
    fastboot flash super super_empty.img
    
    fastboot flash abl_a abl.img
    fastboot flash aop_a aop.img
    fastboot flash bluetooth_a bluetooth.img
    fastboot flash boot_a boot.img
    fastboot flash cpucp_a cpucp.img
    fastboot flash devcfg_a devcfg.img
    fastboot flash dsp_a dsp.img
    fastboot flash dtbo_a dtbo.img
    fastboot flash featenabler_a featenabler.img
    fastboot flash hyp_a hyp.img
    fastboot flash imagefv_a imagefv.img
    fastboot flash keymaster_a keymaster.img
    fastboot flash modem_a modem.img
    fastboot flash multiimgoem_a multiimgoem.img
    fastboot flash qupfw_a qupfw.img
    fastboot flash qweslicstore_a qweslicstore.img
    fastboot flash shrm_a shrm.img
    fastboot flash tz_a tz.img
    fastboot flash uefisecapp_a uefisecapp.img
    fastboot flash vbmeta_a vbmeta.img
    fastboot flash vbmeta_system_a vbmeta_system.img
    fastboot flash vendor_boot_a vendor_boot.img
    fastboot flash xbl_config_a xbl_config.img
    fastboot flash xbl_a xbl.img
    
    fastboot flash abl_b abl.img
    fastboot flash aop_b aop.img
    fastboot flash bluetooth_b bluetooth.img
    fastboot flash boot_b boot.img
    fastboot flash cpucp_b cpucp.img
    fastboot flash devcfg_b devcfg.img
    fastboot flash dsp_b dsp.img
    fastboot flash dtbo_b dtbo.img
    fastboot flash featenabler_b featenabler.img
    fastboot flash hyp_b hyp.img
    fastboot flash imagefv_b imagefv.img
    fastboot flash keymaster_b keymaster.img
    fastboot flash modem_b modem.img
    fastboot flash multiimgoem_b multiimgoem.img
    fastboot flash qupfw_b qupfw.img
    fastboot flash qweslicstore_b qweslicstore.img
    fastboot flash shrm_b shrm.img
    fastboot flash tz_b tz.img
    fastboot flash uefisecapp_b uefisecapp.img
    fastboot flash vbmeta_b vbmeta.img
    fastboot flash vbmeta_system_b vbmeta_system.img
    fastboot flash vendor_boot_b vendor_boot.img
    fastboot flash xbl_config_b xbl_config.img
    fastboot flash xbl_b xbl.img
    
    fastboot format:ext4 metadata
    fastboot format:f2fs userdata
    fastboot --set-active=a
    fastboot reboot recovery
    pause

Update

Just flash the OTA ZIP in the recovery

Source


Building

To compile it yourself you just have to follow these simple steps (and need a beefy PC)

  1. install Ubuntu (you can use Windows On Linux 2)
  2. execute the following commands
    1. install programs
      Code:
      sudo apt install repo bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick lib32ncurses-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses6 libncurses-dev libsdl1.2-dev libssl-dev libwxgtk3.2-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev -y
    2. configure git
      Code:
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
      
      git lfs install
      git config --global trailer.changeid.key "Change-Id"
    3. configure ccache
      Code:
      rm ~/.cache/ccache
      mkdir -p ~/.cache/ccache/tmp
      echo export USE_CCACHE=1 >> ~/.bashrc
      echo export CCACHE_EXEC=/usr/bin/ccache >> ~/.bashrc
      echo export CPU_SSE42=false >> ~/.bashrc
      
      ccache -M 50G
    4. configure working directory (note that mine residents in the folder /home/android/shift8, change accordingly)
      Code:
      mkdir -p /home/android/shift8/crdroid
      cd /home/android/shift8/crdroid
      
      repo init -u https://github.com/crdroidandroid/android.git -b 16.0 --git-lfs --no-clone-bundle
      
      mkdir -p /home/android/shift8/crdroid/.repo/local_manifests
      cat <<EOF >>/home/android/shift8/crdroid/.repo/local_manifests/otter.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <manifest>
        <project path="device/shift/otter" remote="github" name="LineageOS/android_device_shift_otter" revision="lineage-23.2" />
        <project path="kernel/shift/qcm6490" remote="github" name="LineageOS/android_kernel_shift_qcm6490" revision="lineage-23.2" />
        <project path="vendor/shift/otter" remote="github" name="TheMuppets/proprietary_vendor_shift_otter" revision="lineage-23.2" />
      </manifest>
      EOF
      
      repo sync  --current-branch -j8 --force-sync --force-checkout --force-remove-dirty --prune --auto-gc
    5. optional - increase SWAP size (to 80GB) to prevent out of memory crashes
      Code:
      sudo -s
      swapoff -a
      rm /swapfile
      fallocate -l 80G /swapfile
      chmod 600 /swapfile
      mkswap /swapfile
      swapon /swapfile
  3. build! (and fix the incorrect ARCH_VARIANT before it)
    Code:
    git -C ./device/shift/otter reset --hard HEAD
    git -C ./device/shift/otter clean -d --force
    sed -i 's/TARGET_2ND_ARCH_VARIANT := armv8-a/TARGET_2ND_ARCH_VARIANT := armv8-2a/' "./device/shift/otter/BoardConfig.mk"
    source build/envsetup.sh
    brunch otter
This will take about an hour and about 350GB of Disk space [tested with 28 cores and 120GB Memory (40GB RAM + 80GB SWAP]. The build process sometimes crashes because it runs of memory (exit code 137), increase the SWAP size and run the brunch command again. The flashable ZIP can be found in /out/target/product/otter
 
Zuletzt bearbeitet:
Erstmal : RESPEKT @Ene 👍

Prerequisites

  • unlocked bootloader
Versteh ich das richtig - der Bootloader muss "dauerhaft" entsperrt bleiben ,also auch nach vollendeter Installation?!

Demnach würde dann (also wahrscheinlich) auch der Fingerabdrucksensor nicht funktionieren - oder?
 
  • Like
Reaktionen: Ene
Erstmal : RESPEKT @Ene 👍


Versteh ich das richtig - der Bootloader muss "dauerhaft" entsperrt bleiben ,also auch nach vollendeter Installation?!

Demnach würde dann (also wahrscheinlich) auch der Fingerabdrucksensor nicht funktionieren - oder?
Ohne custom AVB keys zum importieren würde das Gerät mit einem geschlossen bootloader nicht mehr starten. Da ich nicht plane meinen bootloader zu schließen, habe ich mich damit nicht näher auseinander gesetzt.

Trotz offenem bootloader funktioniert der Fingerabdruck scanner ohne Probleme, eine Anleitung dazu folgt in Kürze.
 
Hallo, ich habe es zwar versucht, aber ich bekomme den Fingerabdrucksensor nicht zum Laufen. Wie hast du das Problem gelöst?
 
Hallo, ich habe es zwar versucht, aber ich bekomme den Fingerabdrucksensor nicht zum Laufen. Wie hast du das Problem gelöst?
Dazu gibts nen eigenen Thread:
 
Ich weiß, das habe ich schon versucht, aber wenn ich „adb shell am start -n com.goodix.fingerprint.setting/com.goodix.fingerprint.setting.SPMT1Activity“ eingebe, blinkt die App kurz auf dem Bildschirm und funktioniert dann nicht. Ich habe nachgesehen und sie in /system/priv-app abgelegt, und sie ist unter „Apps“ sichtbar. Ich habe den ActivityManager verwendet und MainActivity gestartet, aber alles in dieser App ist leer.
 
Ich weiß, das habe ich schon versucht, aber wenn ich „adb shell am start -n com.goodix.fingerprint.setting/com.goodix.fingerprint.setting.SPMT1Activity“ eingebe, blinkt die App kurz auf dem Bildschirm und funktioniert dann nicht. Ich habe nachgesehen und sie in /system/priv-app abgelegt, und sie ist unter „Apps“ sichtbar. Ich habe den ActivityManager verwendet und MainActivity gestartet, aber alles in dieser App ist leer.
Ich hab die App nur unter Shift OS-G aufgerufen, daher weiß ich leider nicht wie sie sich unter einer Custom ROM (vor allem Version neuer als Android 15) verhält.
 
blinkt die App kurz auf dem Bildschirm und funktioniert dann nicht.
Hast du es mal mit

Code:
adb shell am start -n com.goodix.fingerprint.setting/com.goodix.fingerprint.setting.MainActivity

probiert?
Das startet die Hauptübersicht.
So bin ich unter ShiftOS-L rein nachdem ich in den Priv-Ordner geschoben hatte um zu kalibrieren.

Greetz
 
Wie auch LineageOS, /⁠e⁠/⁠OS, CalyxOS, iodéOS, AXP OS Pro und AXP OS Slim. Nur nicht offiziell gebaut, sondern inoffiziell von unserem lieben Forumsmitglied ene, das zu viel Zeit und zu gute Hardware zu Hause rumstehen hat 😉🙃 (nicht ganz ernst nehmen).
 
Wie auch LineageOS, /⁠e⁠/⁠OS, CalyxOS, iodéOS, AXP OS Pro und AXP OS Slim. Nur nicht offiziell gebaut, sondern inoffiziell von unserem lieben Forumsmitglied ene, das zu viel Zeit und zu gute Hardware zu Hause rumstehen hat 😉🙃 (nicht ganz ernst nehmen).
Ich war auf der Website. Da werden oder wurden echt viele Geräte unterstützt
 
Ich nutze crDroid zum Testen auf meinem alten Galaxy S10, läuft schön und es besitzt die eine oder andere tolle Funktion.

Mein Favorit wären die Funktionen und Spielereien von crDroid in der G-Version vom ShiftOS .
:)
 
Weil das degoogled ist. Er möchte aber Google und die volle Integrität haben.
Einfach Gapps flashen? Den bootloader könnte man auch schließen wenn ein dm-verity Schlüssel in vbmeta geflasht wird (hab mich damit aber noch nicht näher beschäftigt, basic integrity erreicht man aber auch mit offenem Bootloader iirc)
 
Aber auch mit geflashten GApps hat man nicht die volle Integrität. Vor allem nicht die neue (Name vergessen).
 
Aber auch mit geflashten GApps hat man nicht die volle Integrität. Vor allem nicht die neue (Name vergessen).
PlayIntegrity mit Hardware attestation? Die kann man mit PlayIntegrityFix + TrickyStore spoofen, was mit installieren Gapps aber gar nicht nötig sein sollte (solange der bootloader wieder geschlossen wird). Zumindest unterstützt crDroid das spoofen nativ (dann kann man aber such gleich microG nutzen).
 

Anhänge

  • Screenshot_20260417-080753_Einstellungen.png
    Screenshot_20260417-080753_Einstellungen.png
    211,2 KB · Aufrufe: 16
Hallo Ene,

die Bootloader Version hat sich auf V6.3 geändert. Die Fastboot Variante müsste dann beim nächstenmal auch aktualisiert werden.
Vielen Dank für Deine Arbeit. (y)