View Single Post
Old 12-11-2014, 02:52 PM   #37
frostschutz
Linux User
frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.frostschutz ought to be getting tired of karma fortunes by now.
 
frostschutz's Avatar
 
Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
Even without changing any of the rcS/sd/... scripts that do the mounting, it's possible to change both the internal and external storage to ext4.

I noticed that mount and dosfsck are located in /bin/, but PATH is /sbin:/usr/sbin:/bin:/usr/bin. Thus you can replace the mount and dosfsck commands with shell scripts in either /sbin/ or /usr/sbin/.

Example for /sbin/mount:

Code:
#!/bin/busybox sh

echo mount "$@" >> /mount.log

exec /bin/mount "$@"
So all this does is log the call and then execute the original binary in /bin/.

Here's the log:

Code:
mount -o remount,noatime,nodiratime /dev/mmcblk0p1 /
mount -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk0p3 /mnt/onboard
mount -t devpts devpts /dev/pts
mount -r -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk1p1 /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
mount -r -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk1p1 /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
Note the various proc, tmpfs, etc. mounts are missing from this log, since rcS for some reason calls mount with full path for those, so the PATH trick does not catch them. If there were any such calls for the vfat, you'd have to replace /bin/mount and exec /bin/busybox mount instead.

And the dosfsck log:

Code:
dosfsck -a -w /dev/mmcblk0p3
dosfsck -a -w /dev/mmcblk1p1
dosfsck -a -w /dev/mmcblk1p1
So you can hook into those calls and mangle the parameters any way you like. And it should even survive firmware updates.

Getting those scripts onto the reader is easy enough using KoboRoot.tgz. This method seems to be lacking an uninstall facility though. My iriver Story HD was nice enough to execute a shell script for every update, but if Kobo has something like it, I haven't found it yet. Naturally you could just use the same trick with a self-destructive script, hmmm...

Last edited by frostschutz; 12-11-2014 at 04:02 PM.
frostschutz is offline   Reply With Quote