Samsung Galaxy Tab 2 10.1 (3G and Wifi) (samsung-espresso10)

Contributors

 * WilliamO7
 * Archbtw

Maintainer(s)

 * Mighty17

What works

 * Display
 * Weston
 * Touchscreen
 * USB
 * Wifi (if started up manually, there's still some problems on boot)
 * FDE w/ osk-sdl
 * Battery (Gnome 3 can read the battery percentage, whether it is discharging or charging and Charging-sdl does work. One small issue is that Gnome 3 cannot detect the battery time remaining)
 * Bluetooth service

What does not work

 * RIL (hasn't been setup yet, but Replicant got it going on the android side so it should be possible.)
 * 2D + 3D acceleration (so most UIs slow down to a crawl, such as plasma-mobile).
 * Note: There is community-patch to achieve this, but it's using non-free BLOBS. You may check out their website, but be aware that you do this on your own risk. This project is not associated with postmarketOS!! 
 * Currently the kernel is not mainlined, but the OMAP chip is supported, so it should be possible to mainline. Kernel is on mainline now.
 * Bluetooth service crashes; Running  and then   returns "crashed"
 * Audio does not work with both built-in speakers and headphone jack (Tested with Gnome 3)

To test/do

 * Audio
 * Graphics Acceleration
 * GPS/Compass/Sensors
 * RIL

How to enter flash mode

 * to enter into download/odin mode : Hold +.
 * to enter into recovery/TWRP mode : Hold +, and release  when you see the Samsung logo for the second time.

.

. build pmos for samsung-espresso10 and flash it to the device
.

then open a new terminal, or restart your session or restart your computer...
 * you will need to install pmbootstrap on your Linux Computer


 * and run :

Follow the pmbootstrap article to build your own image

you may need to :


 * Install  on your host Linux distribution (usually in an   package that you can install with your distribution's package manager),
 * Install  on your host Linux distribution (usually in a    package that you can install with your distribution's package manager), or install odin if using windows

in a way to
 * install TWRP on the device (you can download Galaxy Tab 2 common TWRP by Android-Andi)

.

the pure pmbootstrap classic way (partial)
.

this will create

"/home/username/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/samsung-espresso10.img"

and

"/home/username/.local/var/pmbootstrap/chroot_rootfs_samsung-espresso10/boot/boot.img"

then push it to the device

generate some partitions images for the device (works)
run :

 if you want to enable Full Disk Encryption 

add the " --fde" suffix to the command :

flash pmos.img to the /system partition (broken ?)
This action wraps various flash programs (e.g. fastboot and heimdall) with a common syntax, and automatically fills out the paths to the files previously generated during.

Boot your phone into the downloading mode (also called Odin mode), typically by holding the special button combination

+ while booting up then

and run :

By default, this will target the /FACTORYFS partition of your Galaxy Tab 2.

Beware that this will overwrite the existing installation and data on your phone!

if you prefer, flash pmos.img to the /data partition instead (broken ?)
because the default partition (typically "/system") is became too small for the generated image, it is possible to flash to another partition. Just be sure to erase any previous installations of postmarketOS in other partitions, because the init script will start with the first one that it encounters. (To delete a previous version simply install the known working OS, e.g. Android, on it, or wipe or format the partitions using TWRP if installed). And if you really know what you are doing, you might consider using  command). Using multiple partitions with LVM is planned.

this will target the /DATAFS partition of your Galaxy Tab 2.

Beware that this will overwrite the existing installation and data on your phone!

flash the boot.img to the /boot partition
reboot the device and enjoy...

.

flash pmos.img to the /system partition (broken ?)
$ heimdall flash --FACTORYFS samsung-espresso10.img

flash pmos.img to the /data partition (broken ?)
$ heimdall flash --DATAFS samsung-espresso10.img

flash the boot.img to the /boot partition (works)
$ heimdall flash --KERNEL boot.img

flash a boot.tar to the AP section (not tested)
.

running PostmarketOS from the /external_sd (works)
.

insert the MicroSDcard into your computer and find its name by running

$ lsblk

make sure it is the right one as you will overwrite everything on it. Use a path without partition number at the end,

such as /dev/mmcblk0, or /dev/sdd

generate pmos directly on a MicroSDcard (works)
 if you want to enable Full Disk Encryption 

add the " --fde" suffix to the command :

flash the boot.img to the /boot partition using pmbootstrap (warning ?)
insert the MicroSDcard into the device and boot into downloading mode

(also called Odin mode), by holding the special button combination

+ while booting up then

now reboot and enjoy...

flash the boot.img to the /boot partition using Heimdall (works)
insert the MicroSDcard into the device and boot into downloading mode

(also called Odin mode), by holding the special button combination

+ while booting up then

$ heimdall flash --KERNEL boot.img

reboot the device and enjoy...

flash the boot.img to the /boot partition using TWRP (works)
insert the MicroSDcard into your device, and boot it in recovery mode by holding the special button combination

+ while booting up, then release  when you sée thé Samsung logo for the second time.

using the mount feature, unselect all /partitions except "MicroSDcard",

using the install feature, switch to "install image" rather than "install ZIP"

navigate to the "/external_sd/boot.img", and flash it to the /boot partition

reboot system and enjoy... .

the pmbootstrap + recovery method (works)
this will create

"/home/user/.local/var/pmbootstrap/chroot_buildroot_armv7/var/lib/postmarketos-android-recovery-installer/pmos-samsung-espresso10.zip"

generate a recovery flashable .ZIP targeting /system partition (works)
according to Installation from recovery mode page.

By default, this will target the /FACTORYFS partition of your Galaxy Tab 2.

If your want Full Disk Encryption add the  argument.

generate a recovery flashable .ZIP targeting /data partition (works)
Note that the /system-partition is likely too small (1,4 GB), which will -for example- prevent the lightdm-windowmanager from starting up. The recovery-zip should be built to target the data partition!

this will target the /DATAFS partition of your Galaxy Tab 2.

sideload the pmos.zip using pmbootstrap + TWRP (broken ?)
This allows pushing the zip file on the fly directly from your computer.
 * Boot the device into TWRP mode
 * Unmount the partitions (Click on "Mount", then deselect all checkboxes)
 * Click on "Advanced / ADB Sideload", then "Swipe to start sideload"
 * Connect your phone to your PC
 * Start the sideloading process from your PC:

reboot and enjoy

sideload the pmos.zip using ADB + TWRP (works)
This allows pushing the zip file on the fly directly from your computer.


 * Boot device into TWRP mode
 * Unmount the partitions (Click on "Mount, then deselect all checkboxes)
 * Click on "Advanced / ADB Sideload", then "Swipe to start sideload"
 * Connect your phone to your PC
 * Start the sideloading process from your PC:

run the following commands. The special  is necessary, because   can't resolve the symlink on its own. :

reboot and enjoy...

installing the pmos.zip using TWRP via a SDcard (works)
Instead of sideloading, you can run

copy the  file to a SDcard. Insert it into your phone,


 * Boot the device into TWRP mode
 * Unmount the partitions (Click on "Mount, then deselect all checkboxes)
 * select "Install" Then navigate to the zip file and flash it.

reboot and enjoy...

use Community pre-built image (works)
works running from a SD card

as explained in Installation - Flashing - From SD Card Our device can boot a SD card, USB stick or other external storage.

preparation in a way to easily switch between Android_OS and PostmarketOS
from your actual Android_OS install file (AP_Stock_Samsung_Firmware.tar.md5 or Custom_Android_Based_OS.zip), extract the boot.img and copy it to your TWRP folder in internal storage (/sdcard/TWRP)

Download the pmOS pre-built image
from the download page

insert a MicroSDcard into your Computer
and find its name by running

$ lsblk

make sure it is the right one as you will overwrite everything on it. Use a path without partition number at the end,

such as /dev/mmcblk0, or /dev/sdd

decompress the downloaded file and write it to your MicroSDcard :
$ xz --decompress --stdout /path-to-pmos-samsung-espresso10.img.xz | sudo dd of=/dev/name-of-your-SDcard bs=4M status=progress

Wait until the command completes and eject the SD card.

If you are on Windows, see here.

insert the MicroSDcard into your device, and boot it into TWRP
using the mount feature, unselect all /partitions except "MicroSDcard",

using the install feature, switch to "install image" rather than "install ZIP"

navigate to the "/external_sd/boot.img", and flash it to the /boot partition

reboot system
The rootfs image will boot right into postmarketOS. You are done with installing postmarketOS, congratulations!

default login is user and password is 147147

to restore your Android_OS
boot the device into TWRP mode,

and simply using the install feature, switch to "install image" rather than "install ZIP"

navigate to the previously stored "/sdcard/TWRP/boot.img", and flash it to the /boot partition

to restore your PostmarketOS
boot the device into TWRP mode,

and simply using the install feature, switch to "install image" rather than "install ZIP"

navigate to the "/external_sd/boot.img", and flash it to the /boot partition

Partition layout
galaxytab2:~# fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/mmcblk1 Disk /dev/mmcblk1: 14.68 GiB, 15758000128 bytes, 30777344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 52444E41-494F-2044-4D4D-43204449534B Device            Start      End  Sectors  Size Name /dev/mmcblk1p1     8192    49151    40960   20M EFS /dev/mmcblk1p2    49152    53247     4096    2M SBL1 /dev/mmcblk1p3    53248    57343     4096    2M SBL2 /dev/mmcblk1p4    57344    73727    16384    8M PARAM /dev/mmcblk1p5    73728    90111    16384    8M KERNEL /dev/mmcblk1p6    90112   106495    16384    8M RECOVERY /dev/mmcblk1p7   106496  1540095  1433600  700M CACHE /dev/mmcblk1p8  1540096  1581055    40960   20M MODEM /dev/mmcblk1p9  1581056  4448255  2867200  1.4G FACTORYFS /dev/mmcblk1p10 4448256 29728733 25280478 12.1G DATAFS /dev/mmcblk1p11 29728734 30777309 1048576  512M HIDDEN

galaxytab2:~# mount /dev/mapper/mmcblk1p10p2 on / type ext4 (rw,relatime) /dev/dm-0 on /boot type ext4 (rw,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) tmpfs on /run type tmpfs (rw,nosuid,nodev,size=203440k,nr_inodes=819200,mode=755) dev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=10240k,nr_inodes=124636,mode=755) mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime) configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755) cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cgroup on /sys/fs/cgroup/elogind type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/libexec/elogind/elogind-cgroups-agent,name=elogind) tmpfs on /run/user/10000 type tmpfs (rw,nosuid,nodev,relatime,size=101716k,nr_inodes=25429,mode=700,uid=10000,gid=10000)

Links
PostmarketOS LineageOS: Mainline kernel:
 * Samsung Galaxy Tab 2 7.0" (samsung-espresso7)
 * 3G Edition
 * Wifi Edition
 * Replicant's 3G and Wifi Edition
 * Device package
 * Kernel package
 * WIP dts here