Viciouss' brain.txt

Starting the Samsung Galaxy Note 10.1 Journey

When I began working on the Note 10.1 at the end of 2018, I thought it can’t be that difficult to patch the device up. Add some lines here, fix a compiler issue there. I’m a software developer after all, how difficult can kernel and Android development be? Oh boy was I wrong.

I started from not even knowing how to compile a kernel. Luckily, the XDA community has a large forum dedicated to topics like this. I found a tutorial and got going.

Fast forward some weeks and a lot of tutorials later, I was going through the old 3.0.x sources from the Note 10.1. The kernel being 7 years old at the time with all the code Samsung introduced, more #ifdefs than I can count and a lot of unusual approaches to solve their user space needs, the learning curve was a roller coaster. From This looks like fun! to You know nothing Jon Snow in mere seconds. It was quite demotivating at times.

Fast forward again, I somehow stumbled across forkbombs blog (archive.org) - and from there the goal was clear. There was no way around getting the Note 10.1 into mainline. The first thing I’d need to start would be a serial connection, unfortunately the Note 10.1 has a 30pin proprietary connector, but it is shared across a hand full of devices. For example on the Galaxy Tab - my day was saved.

After some amateur soldering and wiring things up to a CP2102 module, I got my first lines on the serial connection:

Samsung S-Boot 4.0 for GT-N8000 (Jan  5 2017 - 16:48:45)

EXYNOS4412(EVT 1.1) / 2044MB / 0MB / Rev 6 / N8000XXSDQA7 /(PKG_ID 0xc071018)

BOOTLOADER VERSION : N8000XXSDQA7

BUCK1OUT(vdd_mif) = 0x05
BUCK3DVS1(vdd_int) = 0x20
cardtype: 0x00000007
SB_MMC_HS_52MHZ_1_8V_3V_IO
mmc->card_caps: 0x00000311
mmc->host_caps: 0x00000311
[mmc] capacity = 30777344