Resize data partition
It turns out this particular modification isn't so difficult or dangerous. Data is the last partition (30th in this case), so it it merely needs to be deleted and recreated with new size. Just be careful with the starting block. Print the existing partition table beforehand.


reboot into recovery
make backup of data partition
copy parted utility to phone using adb push
enter adb shell and execute following code

chmod a+x parted
./parted /dev/block/mmcblk0
unit b
rm 30
mkpart primary ext4 2617245696 15634251263
name 30 userdata
quit

restore data from recovery