Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
I'm getting a parse error in 1mobile market when I try downloading apps on two separate phones...other than that seems to work fine.
If that's the error I think it is, (334 or something), then you should clear your play store and Google play services data then sign out and back in to your Google account. There's a tutorial on YouTube if you're having trouble.
Good! Thanks for the report. So the home and quick buttons are okay too? I know the script wouldn't cause the problem, but I want to make sure it's not some kind of conflict. With your old setup I guess there was some kind of conflict so it didn't work the first time. I won't try to look into what was causing the problem that time since with a clean(er) environment you were able to get it to work.so like I said I wanted to try your work on a clean install, only tested before out of curiosity. After a clean flash, followed the steps and hey! it worked! very nice
Work is not done yet. Still need to make a more reliable solution to delay loading of sensord. But I reserve the right to disappear if and when I run into a stumbling block I can't overcome.by the way dude thanks for not disappearing! and excellent work
forgot to mention that the home button and "q" button (top left) stopped working but I dont think that was a problem from your scripts.
Here's something that just floated to my attention...This is made to work on 4.1.2 right? So if the file structure is different in KK, would the scripts still do the flip? I was looking at some other forums with people doing the ext to int thing and some of the paths for 4.1.2 seem different...not sure if this is applicable. I'm Not really on with the scripting, just wondering...
Thanks. What rom(s) are you using on those phones?I'm getting a parse error in 1mobile market when I try downloading apps on two separate phones...other than that seems to work fine.
Thanks. What rom(s) are you using on those phones?
The multiple boot thing could be due to timing. This "hack" sorta sets up a race between the script mounting the /data partition and other services accessing /data. On first boot file copying took enough time that other services might have started using /data. The 2nd boot I'm not sure whether there was some kind of caching going on. On mine it worked, but I noticed more files being opened and the system accessing files I had deleted before the reboot (so files were obviously not there but were checked or whatever). So perhaps that delayed the booting a bit. So if that makes sense, after the 3rd boot those issues went away. In my current version, I am making the script boot even earlier. Doing that, I find I don't need to delay the normal loading of sensord. So if this tweak works with other roms too, then the installation would be simpler with only one binary and one script, just like before my testing build.All buttons working (home, Q, power). I noticed that on the first boot after setting up your mod that the settings didn't stick until I rebooted, i.e. the app's shortcuts on desktop (the ones I DL'ed testing if I could download stuff, the ones already there remained), the settings for the knock on/off, force GPU, etc. reset. On the third boot everything was gravy. I dont think its a glitch or anything, just due to the original swap, everything settling in. The apps didn't go *POOF*, they were there in the app drawer. So just an FYI for anybody else trying this that, for me, the third boot and after was the go point. Third boots the charm.
Anyway, I haven't done it yet, but after taking the SD card out (with phone off) it should revert back to internal at the point before the swap right? Or is that an issue at this stage?
Almost forgot, the play store worked after I cleared the cache but before It would stick on downloading (even though I downloaded an app AFTER the first one stuck so..). After cache was cleared seems ok...and the 1 Mobile Market app's original setting downloads to "external", after setting it to "internal" seems to be working.
likwid2, just want to thank you first. JVene's information was enough to make the idea work, but I'd have had to prepare for a bit of experimentation. Your confirmation that it works convinced me to try implementing directly on my phone and sped up my involvement.Anyway, sticking "stop sensord" prior to the mount command and "start sensord" after it works fine and is clean enough for me.
I see you've decided to hijack the boot process at a different point. Is this for compatibility with Xposed? Before I had discovered JVene's hack, I was also hijacking debuggerd by replacing it with a shell script and then executing the original binary at the end of the script. I think this is all that's necessary - no binary (script_caller) required. For some reason I moved away from this and started using JVene's method. Maybe because I like how it guarantees that the mount is performed prior to zygote loading.
WarrantyVoider said:It makes sense using this hack/mod you need to make apps store data internally, which is actually mapped to the external SD partition. I was hoping with enough external-as-"internal" /data storage KK's SD restriction wouldn't be an issue. So when you say SD card would be locked on CM11, what happens? Without the SD fix, is the ext4 partition on SD still mounted correctly as /data? If not, then I need to figure out how Android sets the lock. If it is mounted correctly and is working, is the problem only related to apps trying to access the external fat32 partition? I'll look into this a bit more to see how the restriction affects what I'm doing. Thanks for your testing and information. Very helpful.
... One more point. If all we want is to solve the storage problem on this phone, there might be an easier way. In init.f6mt.rc, we see /system/etc/init.qcom.post_fs.sh loaded as the "core" class and as root. So if it does what I think it does, we can just do mounting there. No modification to any binary necessary and no likely boot issues if the script only does sensible things. I haven't tried so I don't know if that works at all. Just a thought.
WarrantyVoider said:If you remove the SD card with the phone off, when you power on the phone it should boot with internal storage like you expect. Another way to make the phone boot with internal /data without removing the SD is to make the script not executable (600, -rw-------).
Having to rebuild Xposed each time a new version is released is too much maintenance work. Xposed needs to take control of Android's class loading mechanism, so it has legitimate reason to control app_process. I decided to move away from app_process because my concern is technically init services rather than Android itself.Xposed replaces the stock app_process with a modified version, which is why replacing it with JVene's breaks Xposed. JVene mentioned trying to get his functionality included in the Xposed source, but I guess nothing came of it. One option is to add "zinit" functionality to the Xposed app_process source and build it.
The reason JVene was concerned about ensuring completion of the copy and remount of /data prior to zygote loading is that once zygote loads, a whole mess of processes start accessing /data, including apps that access databases that don't like to be copied while open.
I'm not an expert on the Android boot process, but I'm assuming services are loaded concurrently. If they are, then hijacking somewhere other than app_process wouldn't guarantee that the copy and mount are performed prior to zygote loading. If they aren't loaded concurrently, then it's not a concern as long as you hijack a service that loads before zygote.
FWIW, I stuck an lsof command prior to killing sensord in my boot script and the only files open on /data were 4 files by sensord. It's possible that another service had already opened and closed files on /data, but it wouldn't be an issue unless something important was written to the files.
Edit: Nice find on init.qcom.post_fs.sh. I had initially looked for a call to a script on /system, but I wasn't very thorough and missed that. For this platform, that's probably the cleanest place to run a boot script (assuming it executes before zygote loads).
I want to take a deeper look at the problem with KK's SD restriction. I think the nice thing about having a large /data partition is not having to worry about using files on the external SD at all. This may require me to actually test on a rom with that restriction, but unfortunately, my Nook Color's CM11 doesn't seem to prevent my hack from working and my stock F6 is needed for remote support this week.Your welcome, glad to help! I got this F6 as a 2nd phone, mostly for fun-type things, and the storage was a serious damper on an otherwise great phone (considering price). As I stated previous, your swapmod is like a soothing balm on the friction burn of no storage and I can mess around without worrying (too much) about jamming the phone up.[/over-elaboration off}
The kitkat SD fix,from what I gathered, changes the permissions so that the SDcard can be accessed by user-installed APK's. Before the fix, no swap. Nothing seemed to happen. Same phone internal, with the fat32 position as external. After I used the fix, ext4 internal, fat32 external as expected. I used the fix on both KK (4.4.2) & CM11 (4.4.4)
here is the program I used
https://play.google.com/store/apps/details?id=nextapp.sdfix&hl=en
That's funny you mentioned /system/etc/init.qcom.post_fs.sh, I was using a modhack that enabled init.d to work proper when I was using Mounts2SD. All the other init.d's solutions I had tried failed to run the M2SD script properly (not sure why). After some thread exploration and trial-n-error I came to:
[SCRIPT/ZIP][N9005][4.4.2] Init.d Support wi… | Galaxy Note 3 | XDA Forum
The method worked, but it broke swapping functionality. I flashed back my nandroid and swap returned. I dont know what the problem was, but it was something I encountered, and when you mentioned qcom.post.fs.sh, I figured I would mention it.
Phone goes back to as-was with card out. Side note, I was messing around, used the init.d hack above (trying to install Killjoy mod)and on reboot I still was swapped, but the init.d wasn't working AND lost sensors. Restored my nandroid (when the sensors were working) but I had to re-flash the ROM to regain them (still had data on the EXT4 which came back).
Also, I enabled ART (CM11 ROM), and it worked with your mod, so there's that.![]()
#!/system/bin/sh
F=/cache/initd_test.txt
ps >> $F
lsof >> $F
Yeah, for end users, it'd be easier to use a flashable zip, or an apk, or at least an installation script. Right now I consider this still in development, and it's easier for me to zip up what I have and upload. People who know how to manually install this would have the knowledge to recover if something goes wrong. If I need to package this for more people, then I'll invest some time to make installation easier. I don't even know if anyone is waiting for an easier-to-install release, so for now I'm just working at my own pace.
Stock T-mobile F6, rooted with Towel Root, SuperSU installed.
I followed the steps in Post #220 and used MiniTool to set up the partitions on a SanDisk Ultra 32 gig card.
After formatting the card, I copied all the files from the "DataOnSD" zip (expanded) to the root of the Fat32 partition.
Then booted the phone, and moved/renamed the files as described in #220 and set permissions using ES File Explorer. I rebooted, and.....Nothing.
The FAT32 Part. shows, but the INIT file at the root of the FAT32 Part. never gets deleted and the internal storage stays at 1.72G. I tried several reboots, but nothing happens.
Anyone have any suggestions? I appreciate the help.
su
mkdir /cache/tempdir
mount -t ext4 /dev/block/vold/179:34 /cache/tempdir
umount /cache/tempdir
rmdir /cache/tempdir
exit
exit
Okay, I looked into the possibility of doing a flashable zip. Based on my brief study, edify only lets me copy a new file. What I need is to rename a file the rom is already using. I still need the original file to do its job so I can't simply replace it. I also can't just bundle a new one because I doubt it is universal for various roms. I would also need a way to copy files from internal storage or a backup archive to the external SD card. It's probably doable, but I'd have to spend some time understanding how to hack it. My intention is to first provide users some way to install this, using as few other tools as possible (so no need to install a new recovery and/or other paid apps just to solve the storage problem). In other words, flashable zips won't get a high priority. I'll revisit this possibility after I get other things I want to do working.
package_extract_file("FILENAME.sh", "/tmp/FILENAME.sh");
set_perm(0, 0, 0777, "/tmp/FILENAME.sh");
run_program("/tmp/FILENAME.sh");
#!/sbin/sh
# Mounting system
busybox mount -o remount,rw -t auto /system
# Renaming file
mv /system/etc/Warranty /system/etc/Voider
# Setting permissions
chmod 755 /system/etc/Voider