Yep, today SIF JP updated to v4.0.3. It adds some new features, like up to x4 exp, and gold but also needs 4x LP. While that’s a good feature, it causes crash if the data is mounted on SD card.





After some investigation, they removed the “android.permission.WRITE_EXTERNAL_STORAGE” permission which is necessary for the databind to work. In this case, you need to use another application like Link2SD. I also guess that Foldermount won’t work anymore since it uses “mount -o bind” method.





Link2SD is not my option because I can’t install more apps in my phone now, so I decided to create my own workaround. Some overview of my phone, It’s running Android 4.2.2 with 4GB of phone storage (1.5GB goes to user storage, 1GB goes to app storage, and the rest is system reserved). 1GB of app storage is nearly not enough for today (as I’m writing this, there’s 100MB remaining), my user storage is filled with SIF EN datas which is enough to fill it up, so I use SD card for this, although you can use other.





Anyway before doing this, please read everything in here before proceed.







For my workaround, I need these:

Root access



Busybox installed in your Android phone

Linux command knowledge

Developer mode on and USB debugging enabled so we can use ADB

ADB of course

When we got the tools we need, let’s start. Please umount the SIF JP files data at first.







Create an empty (not sparse) file with size around 2GB. Since my SD card is formatted with FAT32FS, that means the file can’t bigger than 4GB. Most SD card is formatted with FAT32FS, so you can go up to 3.9GB for this, but since I also have less space in my SD card, I use 2GB. I use this command to create empty 2GB file in my SD card



# dd if=/dev/zero of=/sdcard/klb.android.lovelive.ext2 bs=1048576 count=2048

It may take some time. For me, it takes about 15 minutes (WTF). Once it’s done, let’s setup the loop devices so we can mount our empty file as block device.





In my case, my phone does support loop device feature. I just created a loop device for SIF JP with this

# busybox mknod -m 0777 /dev/block/lovelive_loop b 7 127

Entering “losetup” command



# busybox losetup /dev/block/lovelive_loop /sdcard/klb.android.lovelive.ext2

Now, format the file as EXT2 file system

# busybox mkfs.ext2 -m 1 -v /dev/block/lovelive_loop



And, mounting it to SIF JP data directory

# mount -t ext2 /dev/block/lovelive_loop /data/data/klb.android.lovelive/files/

If you got error around the first or the third command, that means your phone might not support loop devices. Unfortunately, you need Android with loop devices capable for this to work, so you can stop. Sorry.





Now we have the EXT2FS file (path: /sdcard/klb.android.lovelive.ext2) mounted to /data/data/klb.android.lovelive/files which means we’re one step more closer. If you didn’t have any backup of your SIF JP data or want to redownload everything from beginning, simply start your SIF JP and it will download all files again. You can skip backup & restore steps below.



But, if you have backup of your SIF JP data files, copy it to “/data/data/klb.android.lovelive/files”. Well, simply copying it won’t work and you have to deal with permissions, lol. Ok let’s fix those thing.





Once you copied all SIF data to “/data/data/klb.android.lovelive/files”, now “cd” to that directory. Now we need to know your “SIF JP” uid. It can be fetched with “dumpsys” command.



# dumpsys package klb.android.lovelive | grep userId

> userId=10116 gids=[3003]

Here, in my case, SIF JP uid is “10116″. Let’s type these commands

# chmod -R 666 external

# chmod -R 666 install

# chown -R 10116:10116 external

# chown -R 10116:10116 install

# chmod 700 external

# chmod 700 install



Note: some “chmod” or “chown” might doesn’t support the “-R” flag. In that case, use “busybox chmod” or “busybox chown” instead.





It may take some time, then let’s you’re done. Start SIF and you’ll good. This workaround might causes your SIF run more more slower, but at least it’s a workaround.







If you have any question, please send me a private message in reddit instead. (My username in reddit is “AuahDark”).

