SHIFT SHIFT6mq (shift-axolotl): Difference between revisions
No edit summary |
Add instructions on how to boot other OS in dual-boot setup |
||
Line 229: | Line 229: | ||
$ # Reboot into postmarketOS | $ # Reboot into postmarketOS | ||
$ fastboot reboot | $ fastboot reboot | ||
</syntaxhighlight> | |||
The phone will now always boot into postmarketOS until you switch slots with fastboot again: | |||
<syntaxhighlight lang="shell-session"> | |||
$ fastboot --set-active=b | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 18:37, 14 August 2022
![]() SHIFT SHIFT6mq (axolotl) | |
Manufacturer | SHIFT |
---|---|
Name | SHIFT6mq |
Codename | shift-axolotl |
Released | 2020 |
Hardware | |
Chipset | Qualcomm SDM845 Snapdragon 845 |
CPU | Octa-core (4x 2.8 GHz Kryo 385 Gold & 4x 1.7 GHz Kryo 385 Silver) |
GPU | Adreno 630 |
Display | 1080 x 2160 AMOLED |
Storage | 128 GB UFS 2.1 |
Memory | 8 GB |
Architecture | aarch64 |
Software | |
Original software | Android 10.0 |
postmarketOS | |
Category | community |
Pre-built images | yes |
postmarketOS kernel | Mainline |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage |
No data |
SD card |
No data |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
Works |
Audio |
Broken |
Camera |
Broken |
Camera Flash |
No data |
Connectivity | |
WiFi |
Works |
Bluetooth |
Works |
GPS |
Broken |
NFC |
Broken |
Modem | |
Calls |
Broken |
SMS |
Works |
Mobile data |
Works |
Miscellaneous | |
FDE |
Works |
USB OTG |
Broken |
HDMI/DP |
No data |
Sensors | |
Accelerometer |
Broken |
Magnetometer |
No data |
Ambient Light |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Contributors
Users owning this device
- Amartinz (Notes: Main device)
- Caleb (Notes: postmarketOS porting)
- Craftyguy
- DylanVanAssche (Notes: postmarketOS)
- IonAgorria (Notes: LineageOS - OK, Main driver)
- Linmob (Notes: postmarketOS edge dual boot with Calyx)
- Maxnet (Notes: daily driver with Android Distro (for now))
- Pabloyoyoista
- PL (Notes: Main device, running ShiftOS L (mostly AOSP Android))
Boot modes
By holding various button combinations while booting the device can be made to boot into different modes.
Unplug from USB, power off the device and press and hold the below buttons to enter the specific boot mode.
Boot mode | |||
---|---|---|---|
Fastboot | Y | Y | N |
Recovery | Y | N | Y |
EDL | Y | Y | Y |
Bootloader
Unlock bootloader
To unlock the bootloader, you need to allow unlocking it via enabling OEM unlocking
within Android.
- Go to Settings within Android and select
About
- Tap on
Build number
seven times to enable developer options - Go back and select
System
,Advanced
and scroll down toDeveloper options
- Enable
Advanced restart
andOEM unlocking
- Reboot into bootloader by long pressing the power button, selecting
Restart
andBootloader
After it has successfully rebooted into Fastboot mode
, initiate unlocking the bootloader using fastboot
:
$ fastboot flashing unlock
Please follow the prompts on the screen to finish unlocking the bootloader.
WARNING: This will erase your data, please back up important data before unlocking the bootloader. |
Customization
Custom AVB key
This is not fully relevant for postmarketOS, as AVB is currently unsupported, but documented for the future. |
The bootloader has support for setting an user provided AVB key to allow relocking the bootloader if an OS with proper support is flashed.
This is realized with exposing a virtual partition avb_custom_key
where the custom user key can be flashed to:
$ fastboot flash avb_custom_key avb_key.bin
For more information please refer to the commit FastbootCmds: oem device-info: check if user public key is set
.
Mainline support
Bootloaders since version 202205227
support additional fastboot oem
commands to enable certain Quality of Life improvements when running mainline.
For example this will ignore the slot retry count, until we have userspace support for marking bootup attempts as successful.
To enable mainline support:
$ fastboot oem enable-mainline-support
To disable mainline support:
$ fastboot oem disable-mainline-support
To check the current status of mainline support:
$ fastboot oem device-info
(bootloader) Mainline support enabled: true/false
Fastbootd
Fastbootd is a userspace implementation of Fastboot. For axolotl it is located within the recovery.
To access it, you can boot the recovery and select a menu option to enter fastbootd mode. Optionally you can also enter it via ADB and Fastboot:
$ # Enter fastbootd via adb
$ adb reboot fastboot
$ # Enter fastbootd via fastboot
$ fastboot reboot fastboot
You can only access dynamic partitions within fastbootd.
As fastbootd lives within the recovery, you need a valid recovery image installed in the currently active slot to access it. |
Installation
Follow the installation guide's "Initialization" section, using shift
as the vendor and axolotl
as the codename but stop before following flashing instructions, as these are different for axolotl.
There are currently different ways to install postmarketOS (only select one).
Installation on userdata partition
Installation on userdata is the most generic and universally supported way, however it does not allow for dual boot or utilizing the full flash storage of the device.
Reboot into Fastboot mode
and install postmarketOS:
$ # Flash rootfs to userdata partition
$ pmbootstrap flasher flash_rootfs --partition userdata
$ # Flash kernel to boot
$ pmbootstrap flasher flash_kernel
$ # Erase dtbo partition, as it conflicts with our mainline kernel
$ # Note: this operation takes some time to complete
$ fastboot erase dtbo
$ # Reboot into postmarketOS
$ fastboot reboot
fastboot can sometimes misbehave, if any of the fastboot commands fail you should run fastboot reboot bootloader (or reboot manually using the interface on the device) and then repeat the failed command. |
Installation on super partition
WARNING: This is currently work in progress and actively worked on. |
First select a slot (a
or b
) you want to install postmarketOS on.
This guide assumes you want to install onto the a slot. Replace a with b depending on the slot you want to install on. |
To install on super
partition, a valid recovery with proper fastbootd
implementation needs to be installed into the slot, which you want to install postmarketOS on.
You can download the stock recovery image, provided by the manufacturer and install it within Fastboot mode
:
You can select the slot to install on via appending _SLOT to the partition name (for example boot_a , boot_b , ...). |
$ # Install recovery in "a" slot
$ fastboot flash recovery_a recovery_stock.img
Enter Fastbootd
and ensure it is working as expected:
$ # Set "a" as active slot and reboot to fastbootd
$ fastboot --set-active=a
$ fastboot reboot fastboot
$ # Verify current slot is "a"
$ fastboot getvar current-slot
After you verified fastbootd
works in the slot you have selected, you can install postmarketOS:
$ # Flash rootfs to system_a partition
$ pmbootstrap flasher flash_rootfs --partition system_a
$ # Flash kernel to boot
$ pmbootstrap flasher flash_kernel --partition boot_a
$ # Reboot to bootloader, as erasing dtbo is not working in fastbootd
$ fastboot reboot bootloader
$ # Erase dtbo_a partition, as it conflicts with our mainline kernel
$ # Note: this operation takes some time to complete
$ fastboot erase dtbo_a
$ # Reboot into postmarketOS
$ fastboot reboot
The phone will now always boot into postmarketOS until you switch slots with fastboot again:
$ fastboot --set-active=b
Partition map
1|axolotl:/ # blkid /dev/block/zram0: UUID="663a3d49-89cc-4d71-8c4c-9ad121939171" TYPE="swap" /dev/block/sda2: UUID="e31914f5-d01b-4e08-97bd-d8e0f406764d" TYPE="ext4" /dev/block/sda8: UUID="91f68f2a-3821-47bf-8d9d-7d705b2d5ab0" TYPE="ext4" /dev/block/sda9: UUID="d5b3f5fa-dbd4-4cc5-9b9d-8550ad9c74a7" TYPE="f2fs" /dev/block/sde4: SEC_TYPE="msdos" UUID="00BC-614E" TYPE="vfat" /dev/block/sde5: SEC_TYPE="msdos" UUID="00BC-614E" TYPE="vfat" /dev/block/sde9: LABEL="dsp" UUID="af32c008-2a39-7e5b-a5dc-201456d93103" TYPE="ext4" /dev/block/sde26: SEC_TYPE="msdos" UUID="00BC-614E" TYPE="vfat" /dev/block/sde27: SEC_TYPE="msdos" UUID="00BC-614E" TYPE="vfat" /dev/block/sde31: LABEL="dsp" UUID="af32c008-2a39-7e5b-a5dc-201456d93103" TYPE="ext4" /dev/block/sde54: SEC_TYPE="msdos" LABEL="LOGFS" UUID="D273-55EA" TYPE="vfat"
axolotl:/ # df -h Filesystem Size Used Avail Use% Mounted on tmpfs 3.7G 1.5M 3.7G 1% /dev tmpfs 3.7G 0 3.7G 0% /mnt /dev/block/sda8 11M 160K 11M 2% /metadata /dev/block/dm-1 1.2G 849M 476M 65% / /dev/block/dm-2 971M 489M 482M 51% /system_ext /dev/block/dm-0 1.8G 378M 1.4G 21% /product /dev/block/dm-3 732M 482M 250M 66% /vendor tmpfs 3.7G 8.0K 3.7G 1% /apex tmpfs 3.7G 524K 3.7G 1% /linkerconfig /dev/block/sda2 27M 0.9M 26M 4% /mnt/vendor/persist /dev/block/sde5 64M 704K 63M 2% /vendor/bt_firmware /dev/block/sde4 120M 115M 5.0M 96% /vendor/firmware_mnt /dev/block/sde9 27M 24M 3.1M 89% /vendor/dsp /dev/block/dm-8 101G 1.7G 100G 2% /data tmpfs 3.7G 0 3.7G 0% /data_mirror /data/media 101G 1.7G 100G 2% /mnt/runtime/default/emulated /dev/fuse 101G 1.7G 100G 2% /mnt/user/0/emulated
See also
- pmaports!2703 Initial merge request
- pmaports!2738 Mainline bringup
- Device package
- Kernel package
- OEM bootloader (edk2) sources