[KERNEL] [15/04/10][5.1/3G+WIFI][Fix for empty directories after mount] [V18] - Nexus 7 Android Development

Hey Guys,
mkasick released in his thread a fix for the mounting problems in Android >= 4.2.
Description of the issue:
mkasick said:
Android >= 4.2 breaks Dalvik-apps that mount file systems to be shared with other apps. This includes CifsManager, Mount Manager, essentially anything that mounts cifs shares, FUSE file sytems, etc. The symptom is that the mounted contents appear fine to app that peforms the mount operation (assuming the app itself provides the ability to browse the contents), but every other app only sees an empty directory at the mount point.
Click to expand...
Click to collapse
As I said - mkasick released a solution - so I compiled my own kernel. Now we can again easy mount cifs and others! All old apps should work. Only limitation: the mount point needs to be outside of /storage (and also /mnt/sdcard/). Fix for this: Mount within /data/media/0 -- android will redirect the mount so you can access the mounted-files from this folders.
The kernel is a "stock kernel" and also includes:
mkasick Patch
Built-In cifs, md4, utf8, nfs, f2fs (Since V17)
kexec hardboot patch (The full patch, allows boot as host and as guest)
As Modules: .ko: snd-usb-audio and all of its devices (Installed, but not modprobe'd since V17)
[Since V16/Android 5.0.2] Fix for baseband_xmm_power wakelock on tilapia (see Hints and Bugs since V16 / Android 5.0 / Lollipop ; for Android 4.4.4 see this post)
mkasick recommends in his thread to patch dalavik, but for the stock-roms it is easier to patch the kernel.
Known Bugs:
Since Android 5.0.X/V16: SELinux is now blocking the access of cifs/nfs even in read. Also nfs isn't loaded at boot time anymore. For more information look below.
Since Android 4.4.X: There is a known bug with mounting cifs (you can't write). The solution is (try at your own risk) here. If you want to do this workaround at boot-time, you can flash the zip linked here.
With SuperSU >= 1.50 && < 1.65 the mounted folders are empty. Please update! (For more Info see hide-box "SuperSU Information" below)
Hints and Bugs since V16 / Android 5.0 / Lollipop:
SELinux, cifs and nfs
SELinux is since Android 5.0 "more" enforced. Because of that, even the read on nfs / cifs isn't working anymore without disabling selinux by "setenforce permissive" as root. Be careful, disabling selinux is an security hole. USB is still working with selinux at enforcing.
Because of the same reason the nfs and sound modules are not loaded at boot anymore. Because I don't want to mess around with selinux at boot time, you can modprobe them yourself, if you need it. Run the following commands as root to use nfs / sound modules (a installed busybox is required):
Activate sound modules:
Code:
busybox modprobe snd-usb-audio
Activate NFS File System:
Code:
busybox modprobe nfs
Workaround for baseband_xmm_power wakelock
Some people have massive issues with tegra3 + cellular devices with the baseband_xmm_power wakelock. The wakelock drains all the battery. With V16 I included a possible fix for this. The fix is based on the work of jfmcbrayer and Sgt. Meow. By default, the fix isn't active and the kernel uses the stock behaviour.
If you want to disable the wakelock entirely, you can flash this zip: CWM_activate_baseband_xmm_power_wakelock_workaround_vorcers_rev2.zip
I used this this workaround for some time with Android 4.4.4 and I had no issues. Well, I did not test the mobile data... Please tell me, if something isn't working (And the workaround is active). I just wanted to get rid of that battery drain. I was on flight mode all time.
Technical:
The workaround is enabled by echoing a number into a baseband_xmm_power module parameters:
Code:
echo 0 > /sys/module/baseband_xmm_power/parameters/bb_timeout
Possible Values:
< 0 - disable workaround, stock behaviour [Default (-1)]
= 0 - disable the baseband_xmm_power wakelock completely
> 0 - how long the wakelock can stay active, every time the wakelock is triggered, in 10ths of a second. Meaning: Value 5 = 500 ms, 10 = 1 second, 20 = 2 seconds....
You find the patch I used in the actual Patchset. (Included since Android 5.0.2)
Downloads
(Kernels since v8 are only tested by me for the 3G version (tilapia) - but should also work with wifi (grouper).)
The flash of the kernel shouldn't break anything, but I recommend to backup your system.
Download-Links for grouper and tilapia:
Android 5.1: Kernel: Grouper: boot-grouper-vorcers-gf5d7b8b-v18.zip ; Tilapia: boot-tilapia-vorcers-gf5d7b8b-v18.zip
Android 5.0.2: Kernel: Grouper: boot-grouper-vorcers-g6ff7a51-v16.zip ; Tilapia: boot-tilapia-vorcers-g6ff7a51-v16.zip
Android 4.4.4: Kernel: Grouper: boot-grouper-vorcers-g1e42d16-v13.zip ; Tilapia: boot-tilapia-vorcers-g1e42d16-v13.zip
In V11 the kernel modules are placed in /data instead of /system. If you are upgrade from < V11 and you want to delete the modules in /system, you can delete the folder "/system/vorcers_kernelmodules" manually, or you use this CWM-Zip to delete.
Download-Links only for grouper: (try on tilapia at your own risk)
Android 4.3: Kernel: boot-grouper-vorcers-g1e8b3d8-v7.zip Kernelmodules: integrated
Android 4.2.2: Kernel: boot-grouper-vorcers-g05b777c-v4.zip Kernelmodules: kernelmodules-vorcers-g05b777c-v2.zip
Extra-Links:
My Repository for this Kernel (also contains old versions): https://www.mediafire.com/folder/j9iocde4l20c7/Kernel
Stock-Kernels: https://www.mediafire.com/folder/d3mj3k3v61jzu/Stock Kernels
A zip which contains the Patches and modifications I made: https://www.mediafire.com/folder/kvdmcsl16x0ox/Sources
Integration wishes for new kernelmodules to support new hardware are always welcome (you will get .ko's for my kernel)
Have a lot of fun!
Sources:
http://forum.xda-developers.com/showthread.php?t=2106480 (Mount fix)
http://forum.xda-developers.com/showthread.php?t=2104706 (Hardboot patch)
http://source.android.com/source/building-kernels.html
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
http://nek0s.blogspot.de/2012/12/nexus-7-ramdisk.html
Changelog:
Android 5.1: gf5d7b8b-v18 (2015/04/10)
- Switched to gf5d7b8b / android-tegra3-grouper-3.1-lollipop-mr1
- Build-In nfs
- Disabled Module auto loading for snd-usb modules -- are still installed
- Added f2fs Filesystem, untested, standard is ext4
Android 5.0.2: g6ff7a51-v16 (2015/01/31)
- Switched to g1e42d16 / android-tegra3-grouper-3.1-lollipop-release
- Added Workaround for the baseband_xmm_power wakelock on tilapia (Please see "Hints and Bugs since V16 / Android 5.0 / Lollipop" for more information)
- NFS and Sound Modules are not loaded anymore by default but can loaded manual via "busybox modprobe nfs" / "busybox modprobe snd-usb-audio".
Android 4.4.4: g1e42d16-v13 (2014/06/06)
- Switched to g1e42d16 / android-tegra3-grouper-3.1-kitkat-mr2
Android 4.4.3: g4776c68-v12 (2014/06/03)
- Updated Grouper and Tilapia ramdisks for Android 4.4.3.
Android 4.4.2: g4776c68-v11 (2014/01/11)
- To save space in /system, the kernel-modules had been moved from /system/vorcers_kernelmodules to /data/vorcers_kernelmodules.
If you want to delete the modules in /system, you can use this zip: CWM_delete_system_vorcers_kernelmodules.zip
- Nothing else is new
Android 4.4.2: g4776c68-v10 (2013/12/11)
- Updated Kernel Config and Ramdisks. (Both changed in Android 4.4.2/KOT49H)
Android 4.4: g4776c68-v9 (2013/12/10)
- Created separate files for grouper and tilapia (their ramdisk differ, kernel not)
Android 4.4: g4776c68-v8 (2013/12/07)
- Switched to Android 4.4: g4776c68 ; KRT16O (?) ; android-tegra3-grouper-3.1-kitkat-mr1 KRT16S is gee1a0b2 / (?)(?) android-tegra3-grouper-3.1-kitkat-mr0 (?)(?)
Android 4.3: g1e8b3d8-v7 (2013/09/01)
- Modules Support for Android 4.3
- Packed all modules inside zip...
- I go back to the old version scheme and only count up the numbers...
Android 4.3: g1e8b3d8-v6 (2013/07/29)
- Forgot somehow UTF8
- Really added /proc/config.gz
Android 4.3: g1e8b3d8-v5-km-v4 (2013/07/25)
- Switched to Android 4.3: g1e8b3d8 ; jwr66v ; android-tegra3-grouper-3.1-jb-mr2
- This kernel has also: /proc/config.gz and an loadable module support (Stock has not)
- I also provided the patchset I used for Android 4.3
Android 4.2.2: g05b777c-v4-km-v2 (2013/02/19)
v4-Kernel (boot-grouper-vorcers-g05b777c-v4.zip):
- Switched to different version schema: boot-grouper-vorcers-<android-kernel-hash>-v<count of changes of kernel (overall)> ; For the kernelmodules it is: kernelmodules-vorcers-<android-kernel-hash>-v<count of changes of kernel-modules (overall)>. This means for you: if the number is higher, there is something new Version-Number at Changelog: <android-kernel-hash>-v<count of changes of kernel (overall)> -km-v<count of changes of kernel-modules (overall)>
- Added init.d (/system/etc/init.d/) support to the kernel/init.rc. If the directory exists, the scripts inside the directory get run via "run-parts" from busybox. This means: The script need to be runable (+x) and mustn't have an file-extension.
- Removed the mount of /mounts out of init.rc (is now in an script called by init.rc)
v2-Kernelmodules (kernelmodules-vorcers-g05b777c-v2.zip):
- Made a CWM flashable package which autoloads the modules in my kernel.
Android 4.2.1: v3 - boot-grouper-4.2.2-vorcers-v3.zip : (2013/02/15)
- Switched to Android 4.2.2 - Kernel, jdq39, g05b777c, android-tegra3-grouper-3.1-jb-mr1.1
- Added Modules for OTG-USB-Sound (see kernelmodules*.zip)
Android 4.2.0: v2 (2013/01/19)
- I added a tmpfs mount for /mounts, so you don't need to do "mount -o remount rw /" and create your inital-mountpoint yourself. /mounts is writeable by all apps. (done in init.rc)
Android 4.2.0: v1 (2013/01/19)
- inital release
SuperSU Information:
Information for SuperSU Users
It seemed that SuperSU >= 1.50 && < 1.65 doesn't work correctly with this kernel. Well, the Version 1.65 seems to work again (The folders where empty after mount). The SuperSU Version 1.45 worked the best. If you want to use 1.45, you can download the old Flashable-Version here: http://download.chainfire.eu/343/SuperSU/UPDATE-SuperSU-v1.45.zip.
As I said, the version 1.65 seems to work again. It maybe can happen, that the folders gets empty, after some time. This has been noticed with Version 1.60. But 1.65 not (yet).
If you still have problems with the empty folders on my kernel, you should try superuser by koush.
koush's superuser is opensource and is the same as in cyanogenmod. And with that, the mount-technique is working without bugs: https://play.google.com/store/apps/details?id=com.koushikdutta.superuser
Some gimmick: One"click"mount-Shell-Script
Because I want to get rid of stickmount, I written a little shell-script to mount all connected devices. It is very similar to stickmount, but it supports: ext, fat32, ntfs. Well, ntfs only, if you provide the path to an ntfs-3g binary. (In the variable NTFS_BINARY) I used in the script the paragon-ntfs binary. Just install the Paragon-App.
Download V2.2: http://www.mediafire.com/download/rjmsdt06cf0cp6b/oneclickmountv22.sh.gz
Download V3: http://www.mediafire.com/download/xppx2m3awcf3oq3/oneclickmount-v3-20130221172223.tar.gz
glimmling created a tasker apk for this script. I but it still bases on v11 of the script.
from v3 on, ocm needs -m parameter. If you want the old behavior, use "-m auto"
from v3 on, ocm also mounts /dev/block/sdX partitons (e.g. /dev/block/sda), but only if my script can use a busybox with blkid with TYPE output. (I provided one)
I added in v3 an fstab-like future usable with -f <file> see my example.
Please be careful with the new v3. I works, but I would call it "beta"...
You can't run ocm >= v3 inside /mnt/sdcard. All files (except for ocm.fstab and ocm-library) need the x right. Copy the files too /data/local/, "chmod 777 *" them and run ocm from /data/local.
example for ocm.fstab.
syntax:
Code:
<device> <mountpoint> <fs-type> <options>
example:
It is is very importent that the options seperated by one space!
Code:
//192.168.100.1/username username cifs username=<username>,password=password,ro
192.168.100.1:/home/username nfs nfs nolock,ro
/dev/sda1 sda1 ntfs
Thanks to:
mkasick - for the patch
farhanito - for the basic code in the .zip
glimmling - for the tasker apk's running the One"click"mount-Shell-Script
jfmcbrayer / Sgt. Meow - for the baseband_xmm_power wakelock workaround

Hi and thanks for this!
I'm a Linux noob and have some questions.
If I understand it correctly, I don't need Stickmount anymore with your kernel. Do I need to mount an usb stick in the terminal or is there a way to automate this with tasker for example?
What is the correct mount command syntax?
The old way to mount a network share with cifs manager in 4.1.2 I used this guide with external modules:
http://forum.xda-developers.com/showpost.php?p=29055478&postcount=10
Can you please show an example configuration for Cifs Manager, when I use your kernel?
Many thanks!

You still can use stickmount. You will see no difference, because stickmount uses the old "debuggerd" method. (Well, I did not test stickmount with the new fix, but it should work...)
For cifs:
I already included cifs in my kernel. You don't need to load them anymore. You can now easy use cifs manager, if you are mounting under /mounts (with the v2 of my kernel)
Here an screenshot of an configuration I use with CifsManager:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
It is only important, to use a path in /mounts/. As I tested, CifsManager automatically creates the mount-point inside /mounts/.
It is possible, that applications which doesn't support browsing in file system, can't access /mounts. But some provide an option to the start directory or something like that (OfficeSuite for example) the directory just need to be set to /mounts. This is the reason, why stickmount uses an mountpoint inside /mnt/sdcard ... I am using OI Filemanager. It is a quite nice application. It also supports starting apps with the selected file.
I hope, I could help you.

AW: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
Thank you.
Cifs is working for me now, but I want to get rid of stickmount.
Since android 4.2.x I always get empty folders with stickmount, even with the latest version. I want to replace it with a new method. But I don't know the mount command and the device name to mount a standard usb-stick.
mount [devicename?] /mounts/usb ???
EDIT: I replaced stickmount with usb otg helper http://forum.xda-developers.com/showthread.php?t=1588940. Now I can see the files of a mounted usb-stick in every app, no more empty folders.
Gesendet von meinem Nexus 7 mit Tapatalk 2

Ah. I forgot USB-OTG helper. Well, with this app, the mounting of devices already worked without the fix. It also uses the "debuggerd" workaround like stickmount. You will need the kernel-fix only for mounting cifs.
I stay at my new oneclickmount-shellscript, because I want to know what the applications do ^^ I don't trust stickmount and usb-otg-helper...

AW: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
Can you please share your script?
Gesendet von meinem Nexus 7 mit Tapatalk 2

Look in the first post, I attached it there

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
Thanks vorcers,
Here is flashable zip of v2
http://www.mediafire.com/download.php?gnn4n5p8plhdkv8
Md5= 0394f49ae911ec7a2d7cf845c5916fb6
Hope you can figure out the /storage problem
Every other kernel should implement this fix
Sent from my Nexus 7 using Tapatalk 2

This is a great! Question, since the mount point needs to be outside of /storage and /mnt/sdcard does that mean I can not use this to mount app data? ex. gameloft, etc (using Directory Bind)

It would be really awesome if a fix or hack to this issue (empty directories if app is not launched before mounting) could be found without requiring a kernel patch.
I tried the debuggerd method supposedly used by StickMount and found that it didn't work: app still sees empty mount if its process is started after mount.
Btw, app sees mounts if its process is started before because mounts are propagated in that case. They are just not inherited on process creation due to how zygote spawn app processes and initializes their mounts.
I never understood how hacking debuggerd could work to fix this issue as this is not much different to me than running a shell script invoking adb shell in loopback mode (requires root), since debuggerd and adbd run with identical priviledges:
Code:
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb connect localhost
adb shell mount ....
I've found a workaround that involves hijaking the obb directory by mounting whatever you want over /mnt/shell/emulated/obb. This directory is systematically bind mounted by the Zygote process in <external storage root>/Android/obb (see source code) when it spawns an app's process
Unfortunately this hack is not very usable because it has the side effect that any app expecting its data in the obb directory will not find it. And you can only mount one filesystem here.
Conclusion: with the new 4.2 multiuser support, Google made miserable all apps dealing with mounting.

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
I havent tried this kernel yet, but it might appear by simply set the mount point to /data/media/0/MOUNTNAME
Might appear in storage that way.
worked for me using sshfsandroid mounting the pc harddrive over the wifi.
EDIT: I just flashed this kernel and its working the way I said. THANKS A BUNCH.:thumbup:
Sent from my Transformer TF101 using Tapatalk HD

Half-OT: Did someone tested with the new fix the superuser-function in non-primary accounts?
----------------------------------
farhanito said:
Thanks vorcers,
Here is flashable zip of v2
http://www.mediafire.com/download.php?gnn4n5p8plhdkv8
Md5= 0394f49ae911ec7a2d7cf845c5916fb6
Hope you can figure out the /storage problem
Every other kernel should implement this fix
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
Very nice, If you don't object, I would use your zip in the future as base and would only offer .zip's.
Doncabezon said:
This is a great! Question, since the mount point needs to be outside of /storage and /mnt/sdcard does that mean I can not use this to mount app data? ex. gameloft, etc (using Directory Bind)
Click to expand...
Click to collapse
As mkasick said in his patch, also fixing the /storage/ folder, can cause other problems:
mkasick in his patch said:
Unfortunately bind mounts from outside /storage may retain the recursive-shared property (bug?). This means any additional namespace-specific bind mounts (e.g., /storage/emulated/0/Android/obb) will also appear, shared in all namespaces, at their respective source paths (e.g., /mnt/shell/emulated/0/Android/obb), possibly leading to hundreds of /proc/mounts-visible bind mounts. As a workaround, mark /mnt/shell/emulated also as recursive-slave so that subsequent bind mounts are confined to their namespaces.
Click to expand...
Click to collapse
To "fix" the /storage problem, only 6 lines of the patch need to be removed. But it also can break the multiuser-feature. I will test it in the next days.
bubbleguuum said:
It would be really awesome if a fix or hack to this issue (empty directories if app is not launched before mounting) could be found without requiring a kernel patch.
Click to expand...
Click to collapse
As an alternative (which is not really an alternative...) is to use the dalavik patch. But I think the Kernel-Patch is easy for stock.
Anyway, I think there will never be a 100% solution without patching. Only Google can solve this problem, by changing their multiuser architecture... (Or they mark by stock the root folder as non-slave, but that wouldn't fix the /storage problem...)

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
What if I don't need multiuser support. Don't care much if it becomes broke, since my son has a kindle and my wife dare not touch my tablet save for playing Temple Run Brave
Sent from my Nexus 7 using xda premium

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
vorcers said:
----------------------------------
Very nice, If you don't object, I would use your zip in the future as base and would only offer .zip's.
Click to expand...
Click to collapse
Of course, no problem
Sent from my Nexus 7 using Tapatalk 2

Thank you so much for that kernel! That is exactly what I have been looking for!

I added .zip's and released a new oneclickmount.sh version. :highfive:

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
YayYouFixedIt said:
I havent tried this kernel yet, but it might appear by simply set the mount point to /data/media/0/MOUNTNAME
Might appear in storage that way.
worked for me using sshfsandroid mounting the pc harddrive over the wifi.
EDIT: I just flashed this kernel and its working the way I said. THANKS A BUNCH.:thumbup:
Sent from my Transformer TF101 using Tapatalk HD
Click to expand...
Click to collapse
So using this method, directory bind works?
Sent from my Nexus 7 using xda premium

Re: [KERNEL][WIFI][4.2.X] Included "Fix for empty app-mounted directories"
Actually it did seem too. No idea why. Both on the n7 and tf101 for sshfsandroid only.
But eventully I just made it mount to /Removable/pcharddrivefoldermountpointnamelong examplee and that was OK for me too. Ssomone mentioned it can be mounted anywhere outside storageed
EDIT: only using this kernel and I am using dirty aokp2.8 ATM.
I just checked again and the bind works as /data/media/0/PC which wouldnbe good if you want to download directly from dolphin into the PC.

vorcers said:
I added .zip's and released a new oneclickmount.sh version. :highfive:
Click to expand...
Click to collapse
Just wanted to give a HUGE THANKS for compiling your kernel and making it available, to farhanito for the flashable zip, and of course to mkasick for the concept
CIFS Manager works like a charm, and DeaDBeeF Player can see my shares, so me=HAPPY!
Nice to be on 4.2.1 now.
Y'all rule :highfive:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I'll just add that Mount Manager also works like a charm, automounting under /mounts whatever shares you define.

I created a new oneclickmount version, with some bug-fixes.
http://forum.xda-developers.com/attachment.php?attachmentid=1690089&d=1359582536
They appeared if you use more then one device at the nexus parallel. It simply only mounted one device.
I also set the standard-mountpoint to /data/media/0/mounts. With that, we can use our files also in /mnt/sdcard. :highfive: (Android re-directs it...)
This also works for bind's. I could bind /mounts/ to /data/media/0/mounts . It also works... Maybe someone helps that for using some games.

Related

CifsManager works on SGS Galaxy 3 (CIFS module compiled successfull for Android 2.1)

What is CIFS module ?
It is needed to mount SAMBA/CIFS filesystems (windows directories share over network)
Requirements:
- Naos or Teos phone ROOTED
- Android 2.1 (Eclair)
- CifsManager (with root access, available on market)
- Cifs module compiled successfull (cifs.ko, you can download it below)
Follow these steps:
1. Put cifs.ko on your phone on your sdcard (or better on "/lib/modules")
2. Open CifsManager.
3. Go to "Settings..." then tick "Load via insmod", configure "Path to cifs.ko" to where you put cifs.ko file on your phone and close "Settings..."
4. Finally go to "Add New Share..." and enter your information.
Note: Share Path -> Carefull to put an IP not a dns name (invalid argument error) and it is case sensitive.
Now you can browse your share docs with an explorer app.
Very useful to play video, music without download the file (seeking works).
Removed : Module compiled for kernel 2.6.32 (Froyo)... I am workin on it.
psyckotic said:
- Naos or Teos phone ROOTED
Click to expand...
Click to collapse
What does that mean?
Nice... How have you build the module ?
psyckotic said:
What is CIFS module ?
It is needed to mount SAMBA/CIFS filesystems (windows directories share over network)
Requirements:
- Naos or Teos phone ROOTED
- Tested only on firmware [I5800XXJH1]
- CifsManager (with root access, available on market)
- Cifs module compiled successfull (cifs.ko, you can download it below)
Follow these steps:
1. Put cifs.ko on your phone on your sdcard (or better on "/lib/modules")
2. Open CifsManager.
3. Go to "Settings..." then tick "Load via insmod", configure "Path to cifs.ko" to where you put cifs.ko file on your phone and close "Settings..."
4. Finally go to "Add New Share..." and enter your information.
Note: Share Path -> Carefull to put an IP not a dns name (invalid argument error) and it is case sensitive.
Now you can browse your share docs with an explorer app.
Very useful to play video, music without download the file (seeking works).
Click to expand...
Click to collapse
plz provide detail instruction in comp and phone
I will create a new thread to explain that.
I am workin on optimize that module and try to compile other modules.
I have test the module on a Naos phone (GT-5801) with firmware [I5800XXJH1] with root access.
I don't want to test other firmware.
But i think it works with all firmware with kernel 2.6.29 (without extraversion added).
Also works with XXJK1 (Kernel 2.6.29 #2).
For all those asking what this is all about: just have a look into the description of CIFSManager.
psyckotic said:
I will create a new thread to explain that.
I am workin on optimize that module and try to compile other modules.
I have test the module on a Naos phone (GT-5801) with firmware [I5800XXJH1] with root access.
I don't want to test other firmware.
But i think it works with all firmware with kernel 2.6.29 (without extraversion added).
Click to expand...
Click to collapse
Mh.. I think there might be a way to boot a Froyo firmware with 2.6.29 kernel no ? Since the SDK emulator use a 2.6.29 kernel..
psyckotic said:
I will create a new thread to explain that.
I am workin on optimize that module and try to compile other modules.
I have test the module on a Naos phone (GT-5801) with firmware [I5800XXJH1] with root access.
I don't want to test other firmware.
But i think it works with all firmware with kernel 2.6.29 (without extraversion added).
Click to expand...
Click to collapse
hey willing to try on froyo but need tute for that cas cant get a thing do we need usb or wifi will work plz give a detailed tutorial
I think it is possible to compile it for kernel 2.6.32 because it depends only from kernel source and arch-type cpu (armv6l for sgs galaxy 3)
psyckotic said:
I think it is possible to compile it for kernel 2.6.32 because it depends only from kernel source and arch-type cpu (armv6l for sgs galaxy 3)
Click to expand...
Click to collapse
If you compile i am willing to test...
psyckotic said:
I think it is possible to compile it for kernel 2.6.32 because it depends only from kernel source and arch-type cpu (armv6l for sgs galaxy 3)
Click to expand...
Click to collapse
AFAIK Samsung didn't publish (yet) the kernel sources which belong to the leaked firmwares (you cannot use a stock kernel as it is a derived (patched) version).
dude we need a guide for this
psyckotic said:
What is CIFS module ?
It is needed to mount SAMBA/CIFS filesystems (windows directories share over network)
Requirements:
- Naos or Teos phone ROOTED
- Tested only on firmware [I5800XXJH1]
- CifsManager (with root access, available on market)
- Cifs module compiled successfull (cifs.ko, you can download it below)
Follow these steps:
1. Put cifs.ko on your phone on your sdcard (or better on "/lib/modules")
2. Open CifsManager.
3. Go to "Settings..." then tick "Load via insmod", configure "Path to cifs.ko" to where you put cifs.ko file on your phone and close "Settings..."
4. Finally go to "Add New Share..." and enter your information.
Note: Share Path -> Carefull to put an IP not a dns name (invalid argument error) and it is case sensitive.
Now you can browse your share docs with an explorer app.
Very useful to play video, music without download the file (seeking works).
UPDATE: Module stripped: Size 270ko instead of 3Mo
Click to expand...
Click to collapse
divinesahil said:
dude we need a guide for this
Click to expand...
Click to collapse
indeed! This would be nice! As i found out by now you need to download the cross compiler and kernel sources from samsung open source:
opensource.samsung.com and search for i5800!
let's hope that they publish the sources for 2.6.32 soon!
mizch said:
AFAIK Samsung didn't publish (yet) the kernel sources which belong to the leaked firmwares (you cannot use a stock kernel as it is a derived (patched) version).
Click to expand...
Click to collapse
I don't their sources for this module.
This module works in software mode not in hardware.
I only need to know the cpu used in the phone...
I compiled it with the original kernel sources.
dabubu said:
indeed! This would be nice! As i found out by now you need to download the cross compiler and kernel sources from samsung open source:
opensource.samsung.com and search for i5800!
let's hope that they publish the sources for 2.6.32 soon!
Click to expand...
Click to collapse
Let's try the module compiled for 2.6.32 kernel (Froyo)
PS: How can i change the thread title (pm me)
got pm... ;-)
do you compile against aosp sources or where you got 2.2 kernel sources from?
FadeFx said:
got pm... ;-)
do you compile against aosp sources or where you got 2.2 kernel sources from?
Click to expand...
Click to collapse
Like i said before i don't need all the kernel sources for this module. I only need cpu information because there aren't many differences between kernel 2.6.29 and 2.6.32
But it needs to be tested... i don't try it on froyo.
Google has modified the Linux kernel in some regions and in not necessarily compatible ways, e.g. in terms of power saving techniques. So a stock kernel's module may work, but it is not guaranteed in all situations. However, I see no adverse effects from your cifs.ko.
But as long as Samsung sources are available (as they are for Eclair on opensource.samsung.com), I would always prefer their kernel sources. They come with a compiler and all the needed tools which guarantee full binary compatibility.
On the other side -- your module is working, so it's probably unnecessary to bother. Thank you for your time to build a module I now use on a daily basis to mount my Linux/Samba home server.
I'm getting a "no such device" error with froyo! But it never worked for me so i don't know if it is the module or my fault somewhere else.
"mount: Invalid Agrument" error. Pls help!!!!
- My phone firmware DDJG6 kernel 2.6.29 #2
- rooted
- copied cifs.ko to /sdcard/cifs/cifs.ko (change to insmod and edit path to /sdcard/cifs/cifs.ko) as well. My cifs manager version: 1.4.1 by F3d0r @ XDA 2010
@ my PC ip 192.168.0.226 (windows 7) share full read/write (everyone) folder name: test and this folder only content 01 mp3 file, so my share path must be:
192.168.0.226/test
mount point: /sdcard/cifs/test (cifsmanager automatically generate folders)
save => mount => error "mount: Invalid agrument"
Pls help.
TIA
P/S: using es file explorer i still can browse inside 192.168.0.226 but offcourse audio and video must be download to the phone NO direct playing!!!!! CIFS is the only and the best solution.

Linux in Android! DesirAPT is at Beta Test! [9 Feb]

Well, as an introduction to topic, you could read the following entry:
http://forum.xda-developers.com/showthread.php?t=1296186
So far, when using "-static" directive for compiler, the applications could be compiled without doing of these steps, so why do I try this? Well, a statically linked executable is embedding all the required libraries to itself, so it's generally too huge. Also, if you compile all the applications statically, you probably link the same library (like C library, for instance) twice or more for every application you compile. This is definitely unnecessary.
It's why, for a few days now, I'm trying to compile the whole GlibC suite for Android (ARM devices, to be precise). The motive behind it is simple: since all Linux applications rely on full-fledged C library (rather than trimmed version like Bionic), if I compile it for this device, I can run every application; given that its compiled for the device.
Since it's Linux kernel underneath, we don't have to worry about changing whole system from Android to native Linux (hopefully )
So far what I did was following (I'm going to write the steps more systematically once I've time, so don't worry if those steps are too vague for you ):
1- Make a toolchain for ARMv7 architecture (which Desire CPU rely on). You can use crosstool-ng etc. or (if you're masochistic enough ) try to make your own.
2- Compile GlibC with this new toolchain of yours, store the compiled libraries in a folder where you can easily access (I keep mine at Desktop/glibc-arm for instance)
3- Edit Ramdisk of the Kernel. To do this, first you must extract the boot.img; then extract the ramdisk, edit init.rc to accordingly, so the libraries can be searched in a folder other than /system/lib (say, /data/lib). You can tweak PATH env-variable while you're at it as well . This is necessary because /system partition isn't big enough to carry all GlibC lib in it, so we can copy the library to some other folder (like /data/lib) and then make the system search for libraries there as well. The point is, since I'm using Data2ext; my data is large enough for this. I'd recommend the same to you if you're willing to go on this road.
After the editing of init.rc, reconstruct ramdisk; make a boot.img with it and flash it to the device.
4- Copy the libraries to the folder of you picked.
5- Compile some test apps (like Hello world etc ) with your cross compiler and place them to your device as well.
6- Test if they're running.
What I've found so far, the cross compiled executable (like simple Hello world), when dynamically linked, gives "no such file or directory" error when tried to be run at the device (WTF, right ). However, when when I do run it with the cross-compiled ld-linux.so (the linker of C library) it runs perfectly. So what I should do to overcome this is, somehow inform the system that this ld-linux.so binary should be used.
I'll keep you updated as I try new things
Till next time, happy Android'ing
ADDENDUM 1:
EUREKA! Found the solution! It's as simple as symbolically linking the library folder of your GlibC as /lib to root file system. You can edit ramdisk accordingly to do this process automatically.
Another thing I'm going to try is finding a way to change the path of the dynamic-linker option of my cross compiler accordingly. Apparently, the cause of the problem was the compiler, telling the application to look for the dynamical linker at /lib/ld-linux.so.3; while it was at /data/lib (in my case). I can put ld-linux.so.3 to /system/lib and change compiler accordingly; but I don't know which way would be the best for flexibility: symbolic linking of /lib to library dir; or putting dynamic linker to /system/lib (the dynamic linker can look for libraries at the "custom" libdir already, since $LD_LIBRARY_PATH is already showing it).
Will try some tweaks now. If I can make it all work, I'll see if I can make a flashable zip or something (also will write whole process step by step
-------------------------------------
ADDENDUM 2!!
Well, I kept you waiting a lot, but wow, was this process head spinning. This was the first time I actually wrote a recovery script; first time I had to use AWK, SED or regex; and first time I wrote such a long scripts Well, whatever, we're done for now..
There are two zip files attached to the end of this thread: One is an installer and other is uninstaller. Just flash the recovery zip and reboot the phone. Your native C or C++ applications should run flawlessly (only added support for this two language for now) if all other dependencies are also met
Happy Android'ing guys; and well, I'd appreciate if you'd buy me a beer for that (or just click thanks, or just say thanks.. If you did all of those, you're my hero )
Here is the hero of the post :
Glibc for Android v0.9.5
Uninstaller for GlibC
NOTE: Uninstallers erase only files, not directories. Ergo, you might need to erase them yourself (had to do it for not to erase your own binaries and such).
HERE'S HOW YOU'RE GOING TO MAKE TOOLCHAIN YOURSELF (making a toolchain):
http://forum.xda-developers.com/showpost.php?p=18356849&postcount=5
CHANGELOG
Code:
Version 0.9.5:
* Ramdisk-boot image editing tools are included in the package, for some systems might not have it.
-------------------
Version 0.9.4:
* A bugfix for a script syntax error which causes GlibC to pass the installation checks but make binaries give "not found" error.
* A bugfix for Bash, not working well, so causing system to freeze at boot.
-------------------
Version 0.9.3:
* A major bugfix for the bug that was causing bootloops.
* A bugfix for scripting errors inside the recovery zip, causing half-installation
-------------------
Version 0.9.2:
* A small patch added that will allow GlibC to be installed with Apt-get without problems.
* Made compatible with the Sibere's new Data2SD solutions
-------------------
Version 0.9:
* Moved configuration files from /data/etc to /system/etc
-------------------
Version 0.8.1:
* Removed a symlink which may cause some Android apps use wrong version of library.
-------------------
Version 0.8:
* Complete recompilation.
-------------------
Version 0.7:
* Fixed a bug which causes Sibere's Data2sd unrecognized if Droidzone's flasher is not used
* Fixed a bug with the installation of locales.
* Included a basic busybox binary and flash_image to make library installation successfull in all recovery systems - was causing problems in some systems
-------------------
Version 0.6:
* Standart C++, MPRF, GMG and MPC libraries are added to the package
* Library profiling support is added
* All libraries are recompiled with PIC (position independent code) for better portability.
-------------------
Version 0.5:
* LibGD included in package - it's a picture manipulation library
* GlibC Version 2.14 - I'm sure even your Ubuntu-Debian machines have older versions now :)
* Locale support added. Your C/C++ programs can use it freely.
-------------------
Version 0.4:
* /tmp support added, necessary configurations are done
* Package manager support is implemented, allows users to install to both MTD and SD-ext in coexistent way (no more had to choose!).
* Developed a flexible structure, thus allowing libraries to be installed with a helper application (it's going to be shipped later)
-------------------
Version 0.3:
* Stripped libraries and binaries for make them smaller
-------------------
Version 0.2:
* Installs to the MTD Partition instead of sd-ext. Needed for inital-time programs to run correctly.
-------------------
Version 0.1:
* Initial version
-----------------------------------------------------
Thank you very much for donations of:
Mr. Brochard and Mr. Huemer
I really appreciate it.
Eureka! Found an overcome!
Well, forgot to say this: if you want the compiled applications to be installed to some place if possible, create a "defaultinstall" file under sd-card root and write "EXT" (for sd-card) or "MTD" (for internal MTD storage) to the file (note that all uppercase).
Install manager first checks this file and if not found, uses default setting found in package (which I wrote /sd-ext generally for not-so-essential stuff ). You can use this functionality to override this setting.
Note that, some libraries and stuff cannot be installed to a different location - package manager handles this and acts accordingly; so don't worry about it
PS: The stuff I keep calling Package Manager is actually just bunch of scripts, so it's not like I wrote a whole suit
Sounds Interesting
Some compiled applications!
Well, if we're not going to use it, then why did we compiled it, right?
NOTE: The following packages don't have any specific order of installation: you can install them at any order you wish. The only exception is APT - it should be installed after DPKG, or otherwise your system will think you didn't install it
For those who hates command-line interfaces: DesirAPT (the APT front-end for Android) is here DesirAPT v1.0.0
For those who would like to run Enlightenment WM in Desire - this is the mediator application for Android: LinuxInAndroid APK
Note that it requires APT and it's dependencies, along with super user privilages.
---------------------
PACKAGE: NCurses Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: It's a shell extension library which is used to format shell (or terminal output) like colorful texts, and such. Default shell might not use it (but it's definitely something necessary for new applications like nano, like "new" bash etc.)
HOW BIG IS IT: Approx. 3.4 Mb.
WHERE TO DOWNLOAD: NCurses Lib. 5.5.9
UNINSTALL?: Available at NCurses Uninstaller
CHANGELOG:
Code:
v 0.4.1 :
* Made Compatible with Sibere's new Data2SD solutions.
------------------------
v 0.4 :
* Complete recompilation with UTF-8 and wide-char support
------------------------
v 0.3 :
* Fixed the Sibere data2sd un-recognization bug
* Added flasher files into the binary for support of all recovery systems.
------------------------
v 0.2 :
* Adding package manager support
------------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Bash
DEPENDENCIES: GlibC Library, NCurses Library, Readline Library
WHAT DOES IT DO: It's the main command interpreter for a linux system (also Android). Normally, Android is also shipped with it, but it's a very lightweight and trimmed version (also annoying - it doesn't support tab completion!). This is 4.2 version (latest now).
HOW BIG IS IT: Approx. 3.8 Mb.
WHERE TO DOWNLOAD: Bash 4.2
UNINSTALL?: Available at Bash Uninstaller/reverter
EXAMPLE OF A COOLNESS: You can change your shell label (the one shows before $ or # sign) by assigning PS1 environment variable. For instance, this : PS1="[\w]\$ " (with quotes) will show your current working directory at every prompt
(More at: http://www.lifeaftercoffee.com/2006/10/31/customize-your-bash-prompt/ )
NOTES: The bash will run the commands that you write initially on /etc/profile automatically. You can define your PS1 values, environment variables (be careful to add "export" before them) there for whole system )
Code:
v 0.7.2 :
* Made Compatible with Sibere's new Data2SD solutions.
------------------------
v 0.7.1 :
* Included automatic bash_completion file (stolen from Ubuntu :D) into package - now even apt-get packages are auto completed!
-------------------------
v 0.7 :
* Recompiled with LibReadline for history and auto-completion abilities.
------------------------
v 0.6 :
* Added Locale support
------------------------
v 0.5 :
* Complete recompilation with new schematics
* HOME directory set to /data/home by default
------------------------
v 0.4 :
* Fixed the Sibere data2sd unregnization bug
* Added flasher files into the binary for support of all recovery systems.
------------------------
v 0.3 :
* Added package management support
---------------------
v 0.2.2:
* Added ENV variable, thus support for /etc/profile shell starter file. You can define new environment variables there which is valid for all system (you don't need to change ramdisk each time now!)
--------------------
v 0.2 :
* "Jobs" support fixed
---------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Busybox Binary
NOTE: Busybox with GlibC dependency is no longer supported, because package update mechanisms require some command interpreter independent of the updated package. In order to support GlibC Update, Busybox binary will no longer be updated with GlibC support. I recommend you to revert back to static, or Bionic-linked Busybox with the link below.
UNINSTALL: Available at Busybox old version reverter
---------------------
PACKAGE: Zlib Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: It's compression library that is used with various applications like Git, Apt, DPKG etc.. It's recommended to keep it there
HOW BIG IS IT: Approx. 350 Kb.
WHERE TO DOWNLOAD: ZLib 1.2.5
UNINSTALL?: Available at ZLib Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug causing system library to clash with the installed one
* Fixed a bug causing Segmentation Faults in some cases
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: ReadLine Library
DEPENDENCIES: GlibC Library, NCurses Lib.
WHAT DOES IT DO: Readline is a command line and history manager library that's used in some command line tools like socat. I personally don't know what else uses it
HOW BIG IS IT: Approx. 1.4 Mb.
WHERE TO DOWNLOAD: Readline 6.2 - v0.1
UNINSTALL?: Available at Readline Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: OpenSSL Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: OpenSSL Library is Secure Socket Library that is used in various secure applications and web browsers.
HOW BIG IS IT: Approx. 5.9 Mb.
WHERE TO DOWNLOAD: OpenSSL 1.0.0e
UNINSTALL?: Available at OpenSSL Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug causing system library to clash with the installed one
* Fixed a bug causing OpenSSL to do Segmentation Fault and crash
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: APT - Advanced Package Tool
DEPENDENCIES: GlibC Library, Curl Library, Zlib library
WHAT DOES IT DO: APT is a front-end for DPKG which installs, removes, updates etc. packages easily. APT also supports dependency tracking, and automatically removal of unneeded packages.
HOW BIG IS IT: Approx. 1.8 Mb.
WHERE TO DOWNLOAD: apt 0.8.10.3
UNINSTALL?: Available at apt Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Apt now assumes required packages are pre-installed; thus doesn't re-download them unnecessarily ..
* Changed repo host - configuration in sources.list is changed.
--------------------
v 0.1.1 :
* Configuration files are added. Apt-is ready to use out-of-the-box now..
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Cryptography Package
DEPENDENCIES: GlibC Library , Zlib Library, PTH Library, Readline library
WHAT DOES IT DO: This package contains some cyrptographic libraries necessary for various applications. If you're to use APT, it's recommended to install this package, for since it also carries GPG package inside. Package includes
GnuPG (2.0.18), LibGPG-error (1.9), LibGcrypt 1.5.0, LibKSBA (1.2.0), LibAssuan (2.0.2)
HOW BIG IS IT: Approx. 8.2 Mb.
WHERE TO DOWNLOAD: crpyto package
UNINSTALL?: Available at crpyto Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: cUrl
DEPENDENCIES: GlibC Library, OpenSSL Library, Zlib library
WHAT DOES IT DO: cUrl is a secure web client that supports HTTPS protocol. Package includes also libcurl which provides secure web connection API
HOW BIG IS IT: Approx. 916 Kb.
WHERE TO DOWNLOAD: cUrl 7.23.1
UNINSTALL?: Available at cUrl Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Re-Initial Release
---------------------
PACKAGE: Dpkg - Debian Package Manager
DEPENDENCIES: GlibC Library, Zlib library, Tar binary, Linux Utils
WHAT DOES IT DO: Dpkg is the main package for Debian package managing structure. DPKG is the responsible application for installing, removing and updating packages. Using with Apt (or other front-end) DPKG allows users to install new packages easily.
HOW BIG IS IT: Approx. 7.5 Mb.
WHERE TO DOWNLOAD: dpkg 1.16.1.2
UNINSTALL?: Available at dpkg Uninstaller
CHANGELOG:
Code:
v 0.4 :
* Fixed a bug which was causing GlibC not to upgrade from APT.
--------------------
v 0.3 :
* Links renewed
--------------------
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug that causes some big archives not to install
* DPKG now informs system that GlibC, OpenSSL, Ncurses libraries are already installed (necessary for DPKG anyway)
---------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: PTH - Portable Threads Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: PTH is a POSIX compliant thread library that is used in some linux applications.
HOW BIG IS IT: Approx. 251 Kb.
WHERE TO DOWNLOAD: pth 2.70
UNINSTALL?: Available at pth Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Tar Archiver
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: TAR is and old and multi-purpose compression format used in various places. This tar suite is designed to be 100% compatible with the PC one (busybox one is not so good at this).
HOW BIG IS IT: Approx. 3.7 Mb (1 MB in System partition).
WHERE TO DOWNLOAD: Tar 1.23
UNINSTALL?: Available at Tar Reverter
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Linux Utilities
DEPENDENCIES: GlibC Library, Ncurses Library
WHAT DOES IT DO: This package includes low-level linux tools that is necessary for a system to run in well manner. Busybox do provide many of those, but they are quite crippled versions - so high level applications may crash using busybox ones (like DPKG).
HOW BIG IS IT: Approx. 5.6 Mb
WHERE TO DOWNLOAD: Linux Utils 2.20
UNINSTALL?: Available at Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
Where the hell is the other packages?
Since we know have an APT repository for our distributions, in order to follow all the packages from one source, they won't be published in zip form anymore. In order to obtain them, or update them if you have older versions, you can use apt :
Code:
apt-get install <packagename>
The packages distributed can be list with the following command:
Code:
apt-cache dumpavail | grep Package:
OR, you can use DesirAPT to do these works.
See you around!
NOTE
Before you start anything, don't forget to install build-essentials package. Under ubuntu, the command necessary for it is: sudo apt-get install build-essential - I don't know about other distros..
-------------------------
Well, as promised, now we should write the steps; right?... Now, before we begin, I should really warn that the process is really head spinning if you're to do all by yourself; so take heed to the warnings I give you (I learned the hard way)
Well, first thing is first, we need a Cross Compiler Toolchain, properly built that allows us to build applications, libraries etc. There is one toolchain that's already given to you with Android Native Development Kit (called NDK) but that one is quite restricted because it's built with support for Bionic (trimmed C library that is presented in Android), not Glibc or uGlibC. If you want to develop more native-like applications (especially linux programs) you need GlibC or uGlibC. You can try to build these libraries with that toolchain too, but don't do that, because it's going to fail as well. The reason is that some sort of Chicken-Egg problem is eminent in GlibC-GCC compilation
Let's put the steps to be followed first to build a nice toolchain. I assume you're using Linux - because the tools are developed for this platform only. If you're going to use them in Windows, you need Cygwin or such tools but I can't supply help about that, for since I didn't use them before at all. Google is your friend about this
(Note, the packages I wrote at this list are available at GNU's website www.gnu.org freely, open source)
1- We're going to build "binutils" first. This package includes some important stuff like assembler, linker, archiver (for libraries) etc..
2- We're going to build GCC's prerequisites. These are GMP, MPRF and MPC packages.
3- We're going to build a "bootstap" gcc (God, I hate that name. I like to call it "naked gcc" more ). This GCC just converts source codes to pure assemblies: thus cannot generate linkages or such. We're going to use it to build "actual" tools we're going to use.
4- We're going to extract Kernel source/headers - use Desire Kernel's here. There is some copying, and such to be done tho.
5- We're going to make GlibC headers installed, which will allow us to build more "complex" gcc, which can link applications with those libraries when the library binaries are given (so such thing is there yet, but we fool it )
6- We're going to build a very limited GlibC which will give us support for building more "complex" gcc.
7- We're going to build GCC again. This is called "Pass 1 GCC" or "GCC Stage 1". This GCC can link applications to libraries, with the information in Kernel headers and library headers (it's why we give it the headers, so it can create applications suitable with the Kernel architecture).
8- We're to build actual GlibC now. This glibC will be used for our compiled applications, statically or dynamically. You can, at the end of this step, copy the files to your devices and they would work, but picking files here is harder, so I'd recommend you to leave this alone for now
9- We're going to build "Pass 2 GCC" or "GCC Step 2" This is a full fledged GCC that can do anything we want
Complex isn't it? This is precisely why I recommend you to use Crostool-NG. The other tools (like Buildtools or Crosstool) (sadly) don't create GlibC based toolchains, or use old versions of them, so using this one is recommended. This package automatically will download, setup and link your all toolchain without you worrying about something (believe me, this is what you need. I gave 8 days without this to create a working GCC and Crosstool-NG made another one to me in 50 minutes. )
Well, however, Crosstool-NG won't create "nice" applications (they'll run allright, but they won't be optimized) without some settings done, so, let's go there. First, we need to install Crosstool-NG itself. To do that; go to http://crosstool-ng.org/ website, download and extract it to some place. Even though the steps are written in Crosstool website, you don't need all commands there (like setting PATH is unnecessary). The commands you should use is, after CD'ing to the Crosstool dir;
./configure --prefix="</some/place>"
make
make install
cd "</some/place/bin>"
./ct-ng menuconfig
I used prefix as /home/ahmet/crosstool for instance. Note that this is not going to be where your toolchain is, this is where your "toolchain creator" is .
---- NECESSARY KERNEL HEADER CHANGES ----
OK now, before we start compiling; we need to make some folder moving, copying etc. in Kernel directory. This is needed, because tree structure changed a tad in 2.6 kernels and unless you compiled this kernel before, some directories won't be in their correct place for our cross compiler. Switch to the directory which you extracted the kernel image. Now, from now on, I'm going to assume you're an Qualcomm/MSM board (like Desire, Nexus One etc.) user; but if you're not, change my descriptions accordingly:
1- Go to <kernel dir>/arch/arm/include folder. Copy "asm" directory and paste it into <kernel dir>/include directory.
2- Go to <kernel dir>/arch/arm/mach-msm/include folder. Copy "mach" directory and paste it to <kernel dir>/include/asm directory. It's going to complain that there is another mach folder there and will ask if you want to merge/overwrite. Say yes to all questions.
Now our kernel headers folder is showing a Desire device. Note that if you're not a Desire user, you should use your cpu folder instead of ARM and your board manufacturer in mach-xxxxx instead of mach-msm.
Note this kernel directory, we're going to use it to configure crosstool..
--- CONFIGURING CROSSTOOL ---
After issuing the commands, the crosstool-ng will give you a configuration menu. Most of the setting here are unchanged, but the ones you should change are given below.
1- Paths and misc options
a) Try features marked as EXPERIMENTAL (this is needed to build a toolchain with the latest GlibC support) -> Enabled
b) Local Tarballs directory -> The folder address that you want downloaded stuff to be kept. You might use them again (like for compiling GlibC again for device, you will use them
c) Save New Tarballs -> Enabled ( so that new downloaded files aren't erased )
d) Working Directory and Prefix directory -> Normally you don't have to change them, but you can if you want to install your toolchain to some other location. CT_TARGET signifies your target name (like arm-msm-linux-gnueabi - arm is cpu model, msm is vendor (can be anything), linux is showing the binaries are for linux system (you can use android, but then you'll get not GlibC but Bionic) and gnueabi shows you're going to use open-source EABI structure for your executables. The other option is ELF but EABI is more flexible (because also supports ELF).
e) Strip all toolchain executables -> do it if you don't want to debug GCC itself. this makes toolchain smaller of size, and a tad faster.
The other options can stay the way they are, or you can change them accordingly here. You can get help with ? key, and if you don't understand anything, just leave them default - there are very complex things there that you don't need to know if you're not planning to be a expert on subject
2- Target options
a) Target Architecture -> arm should be selected, cos Desire uses ARM. If you plan to make toolchain for, say, powerpc, pick that.
b) Endianness -> Should be little. ARM processors in Desire uses little endian system.
c) Architecture level -> "armv7-a" this is should be written. Desire uses ARMv7 based instructions and if you leave here empty, the applications will be built with armv5 support - they're still going to run but not use advanced v7 features.
d) Use Specific FPU -> "neon" . Desire uses NEON structure for floating point arithmetic, and if you leave here empty, the applications will not use Desire's FPU abilities (everything will be software based, which is slower)
e) Default instruction set mode -> arm . You can use thumb here for allegedly faster code but not every build system supports it. Leave it ARM.
f) Use EABI -> enabled. EABI is necessary for most flexible desing of binaries.
The other settings be as they were.
3- Toolchain options
a) Tuple's vendor string -> You can leave here empty if you don't want to; it's not necessary to use a string here. I used "msm" but you can write anything. This string here is used in toolchain name as arm-xxxxx-linux-gnueabi, so make it short, I recommend
b) Tuple's alias -> make it something short like "arm-linux" This alias string is used to make calls to your toolchain easier. Instead of writing arm-msm-linux-gnueabi-gcc everytime, you can use arm-linux-gcc to compile your applications. Can write anything here (like toolchain if you want to use toolchain-gcc to compile your applications)
The other settings can stay as they are, for since default values are the best in our case. You can tweak them only if you know Desire cpu like the back of your hand
4- Operating system
a) Target OS -> Use "linux" if you want the applications to run in Android and Linux; use "bare metal" if you're to compile low level applications which won't use linux headers. Default is linux.
b) Get Kernel headers from -> say "pre installed" because otherwise it's going to download standard Linux headers from internet. We needed some changes, so this option is compulsory to be "pre installed"
c) Path to custom headers directory/tarball -> Path to your kernel source folder - which you made changes above. WARNING: I say specifically extracted, because standart tarball won't work for us. We're going to make some changes in kernel directories, which is non-standart (Instructions were above).
d) This is a tarball -> No . We're going to use extracted folder.
e) Build shared libraries -> say "yes"; because we want dynamic linkage, not static one
f) Check kernel headers -> say "no" otherwise some unnecessary check causes compilation to stop.
5- Binary utilities
a) Binutils version - pick the latest one, 2.20.1a. If you use older versions with newer GCC/GlibC, it's not going to succeed.
Leave others as they are, they are not big deal..
6- C Compiler
a) GCC Version -> pick 4.6.1 for since it's the latest and most bug free. Just stay away from 4.5
b) Pick the languages you want support for. I've read online that Java is a tad troublesome in Android platform, for since Java in Android uses Dalvik, not Sun systems. You can try it at your second toolchain if you want Definitely pick C++ tho
c) Link libstdc++ statically -> say yes; it really saves you from big configure scripts later - apparently needed to avoid PPL problems as well
d) Compile lidmudflap/libgomp/libssp -> say no. These libraries are not the most suitable libraries for ARM platform (at least at cross-compiler level. You can compile them later, if you want, with your cross-toolchain.)
You can leave others as default
7- C library
a) C library -> gLibC (recommended). You can use other libraries which are eGlibC (embedded Glibc, like Bionic) and uGlibC (micro-glibc) too, but GlibC is the most spanning solution above those. The libraries are bigger, but they support more.
b) glibC version -> Use 2.13 (experimental) it compiles just fine, and you get a new version of GlibC. Not the newest, but that's ok
c) Threading implementation -> nptl (recommended) . You can use linuxthreads too, but nptl is more advanced ( like giving support to Thread-Local-Storage and such)
d) Force Unwind Support -> Enabled . If you don't use this option, for since we're making this toolchain from scratch, it's going to give you error during compiling that it couldn't find necessary headers (we're building them now, dumbass!)
Leave others default if you don't know what they're about
8- Companion Libraries
Well, go and pick the latest versions, even though when it says "Experimental", otherwise your GCC compilation will give you error about these libraries being old.
After setting these settings, press ESC key twice till it goes way back and ask if you want to save configuration; say yes.
--- STARTING COMPILATION ---
Now to start compilation write
./ct-ng build.
This is going to take approx. 45 minutes, so go watch some episodes of Big Bang Theory or something. Normally, there should be no errors but if there is; most probably either you made a wrong configuration, or didn't set your kernel folders well. Try again with other settings, google your problem etc..
After this process, you're going to have a cross-compiler at your use at /home/<username>/x-tool/arm-<vendor>-linux-gnueabi/bin folder. Note that Crosstool-NG automatically makes this folder read only to make you prevent screwing your toolchain You must edit your path variable to show "/home/<username>/x-tool/arm-<vendor>-linux-gnueabi/bin" folder as well for less headaches during compiling later
Whilst compiling other application, most used configure options you're going to use is "--host=arm-<vendor>-linux-gnueabi" and "--prefix=/some/folder/you/want/this/application/copied". After compilation, you can send binaries to your phone from prefix folder.
More options about GCC and Configure is available at GCC and Autoconf man pages; check them as well
Happy cross-compiling people
Woah, amazing work, congrats!
Sent from my HTC Desire using XDA App
Interesting..It answers some of my unanswered queries regarding cross compiling.. Thanks...Please keep documenting your progress.
THIS POST IS ONLY FOR THE BRAVE MAN
These are packages which are compiled; but not installed and/or tested by myself. Please test them and inform me if they work (PM me if they work or not; it's better that way ).
--------------
NO PACKAGES HERE! Frankly, I did test virtually all of them. They might not work as expected maybe, but at least they don't impede functions of device
Developer Log
Now while preparing a suitable (and as flexible as it can) recovery zip; I realized that instead of editing ramdisk, I can also use init.d script to link /lib to /data/lib. This also allows some flexibility to user (i.e. move library folder around -if needed- and edit init.d script accordingly and still have a running system).
What baffles me most is PATH env-variable. Apparently, if I set it at init.d level, it's not exported quite well - apparently, there is a user mode switch between init.d script run and ramdisk loading process (because PATH variables at Ramdisk are exported to all applications, whilst init.d ones are not) and the only way to set PATH variable for all processes is editing Ramdisk (AFAIK)...
And another point: what if kernel doesn't support init.d? (Go to hell if you're reading this post with a kernel which doesn't ) Ramdisk solution is quite general (i.e. works for everyone) but it's a little harder to edit with scripts and not as flexible as init.d method. I think it's safe to assume that there is init.d support at this level
Maybe I can create two versions (init.d one and ramdisk one) of recovery zip's.. Keep in touch guys..
theGanymedes said:
Now while preparing a suitable (and as flexible as it can) recovery zip; I realized that instead of editing ramdisk, I can also use init.d script to link /lib to /data/lib. This also allows some flexibility to user (i.e. move library folder around -if needed- and edit init.d script accordingly and still have a running system).
What baffles me most is PATH env-variable. Apparently, if I set it at init.d level, it's not exported quite well - apparently, there is a user mode switch between init.d script run and ramdisk loading process (because PATH variables at Ramdisk are exported to all applications, whilst init.d ones are not) and the only way to set PATH variable for all processes is editing Ramdisk (AFAIK)...
And another point: what if kernel doesn't support init.d? (Go to hell if you're reading this post with a kernel which doesn't ) Ramdisk solution is quite general (i.e. works for everyone) but it's a little harder to edit with scripts and not as flexible as init.d method. I think it's safe to assume that there is init.d support at this level
Maybe I can create two versions (init.d one and ramdisk one) of recovery zip's.. Keep in touch guys..
Click to expand...
Click to collapse
Well, what's the difference between init.d and ramdisk, when init.d support means running busybox runparts from ramdisk?
Droidzone said:
Well, what's the difference between init.d and ramdisk, when init.d support means running busybox runparts from ramdisk?
Click to expand...
Click to collapse
Well the difference is caused by Unix variable propagation.
Normally, when ramdisk is loaded and init.d scripts are starting to run (with run-parts binary) the exported variables are valid only for the scripts that run-parts do run. Since Linux only allows child processes to inherit variables from host, when runparts finishes job; defined variables within the scripts vanish.
When you add variables to Ramdisk (init.rc) directly, since variables become declared from init directly (and since init runs all the processes on boot) the variables automatically become available for all processes.
That's the difference I meant
Got it..So the variables from init.rc persist till shutdown..
Droidzone said:
Got it..So the variables from init.rc persist till shutdown..
Click to expand...
Click to collapse
Precisely. It's why the variables (even those which defined by export keyword) are vanished when the system booted up (unless defined in ramdisk)
Well, I've gotta learn RegEx one day anyways
Recovery zip is done! Now, I should test it on my device first
I'm also going to make a uninstaller script I think. It's really messy to clean this up otherwise
Android binaries and dependencies
I've examined the dependencies of all the binaries in /system/bin and /system/xbin in Android system. Too sad that the list contains some non-standart libraries (that's not that bad, sure you can find their sources).
Also, another problem is that you need to compile the binaries themselves from the source code as well (with the GlibC libraries) - which is near to the compiling the whole ROM itself - I'm not even sure if we can find source code (will check the Android source code itself when I've time)
The dependencies in my system, for instance, are as follows:
So that's a no-go for people with closed source system...
@theGanymedes, do you know if the system can mount ext4 at init.rc level (on early init) without using busybox?
Well, it can, but the kernel needs ext4 modules (or direct support). I checked the native mount source, it actually does nothing much more than simply calling kernel's ioctl or mount system call..
I think a simple tweak at ramdisk is all you need for that (and a supporting kernel, of course )
Weird thing about previous issue is, I have the source codes of most utilities, I can compile them too, but I don't have proper makefiles and I'm too lazy to write them myself - that's a lot of trial and error.
Well, apparently, we're not going to be able to switch from Bionic to Glibc completely. I think I can make them coexist tho.
theGanymedes said:
Well, it can, but the kernel needs ext4 modules (or direct support). I checked the native mount source, it actually does nothing much more than simply calling kernel's ioctl or mount system call..
I think a simple tweak at ramdisk is all you need for that (and a supporting kernel, of course )
Click to expand...
Click to collapse
Yup, my compiled kernel has direct support.
This is how mtd is mounted..
mount yaffs2 [email protected] /data nosuid nodev
And this is how I mount ext4 from init.d:
/system/xbin/busybox mount -t ext4 -o barrier=0,noatime,nodiratime,nosuid,nodev,nobh,nouser_xattr,noauto_da_alloc,commit=50 /dev/block/mmcblk0p2 /data
I need to change it to init.rc (init) language...
theGanymedes said:
Weird thing about previous issue is, I have the source codes of most utilities, I can compile them too, but I don't have proper makefiles and I'm too lazy to write them myself - that's a lot of trial and error.
Well, apparently, we're not going to be able to switch from Bionic to Glibc completely. I think I can make them coexist tho.
Click to expand...
Click to collapse
Earlier this month, I was trying to compile dosfstools for Android. But got stuck at static cross compile with ndk gcc
Droidzone said:
Earlier this month, I was trying to compile dosfstools for Android. But got stuck at static cross compile with ndk gcc
Click to expand...
Click to collapse
So, I'm not barking for the hollow tree here.. That's a relief. Seeing that this post is not that active, I was starting to think I'm working in vain..
Well, now, apparently init version of mount is quite restricted about options. The ones it supports are given in mount.c as:
Code:
"async", "atime", "bind", "dev", "diratime", "dirsync", "exec", "move", "recurse", "remount", "ro", "rw", "suid", "sync", "verbose"
I'm checking the mount.c source as we speak. I'm going to inform you if I can find something.
EDIT: BTW, also "no"+options are recognized (like noatime)
ADDENDUM:
The internal mount is exactly the same as the mount we use at busybox. So, most probably, it's the same was in init script.
Try this line
Code:
mount ext4 /dev/block/mmcblk0p2 /data noatime,nodiratime,nosuid,nodev,nobh
Notice that I erased some flags. You might also try to add them, but check if this line works first.

[APP][18.01.2017] StickMount v3.50 [ROOT]

Automatically mount and dismount USB sticks on various devices like the Galaxy Nexus, Nexus 7 and Nexus 10. The Nexus 4 is not supported - this is an issue with the device, not with StickMount !
!!! REQUIRES ROOT !!!
Various Nexus and "stock Android" devices do not automatically "mount" mass storage devices (such as USB sticks). StickMount has been made to solve this problem, and give you access to the files on your USB connected storage from all your apps.
StickMount is known to work on many devices, but is built only with Nexus devices in mind.
Once StickMount is installed and you connect a USB stick with a USB host / OTG cable, the device will show you a popup if you want to open StickMount. It is advised to tell the device that you want to do this by default.
If you have just installed StickMount and you already had a USB stick connected, you must manually launch the program, or disconnect/reconnect the USB stick for StickMount to start working.
Mass storage devices are mounted to /sdcard/usbStorage/xxxx/.
(Pro) Kill apps preventing unmount
Sometimes an app has a file in use located on the USB device, and won't let go of it. This can prevent StickMount from unmounting the USB device. It will seem like the device stays connected (this is harmless). StickMount Pro provides an option that attempts to kill (terminate) all the apps that are preventing the unmount from succeeding.
(Pro) Media scan
StickMount Pro supports triggering the media scanner on each (un)mount action. This will automatically make the files on your USB device available in apps like Gallery and Music. Please note that the media scanner is not a visible process on all Android devices - it might actually work silently in the background without any visual cues. It may take a minute for your files to show up, so don't panic if they don't show immediately.
Even if you have this option enabled, you can prevent folders from being scanned by placing an empty file called .nomedia in that folder. If you put it in the root of the USB device, the entire device will not be scanned.
(Pro) Mount as partition label
Instead of using the block device name (sda1, sda2, sdb1, etc) for the partition, use the partition label as mount name. If the label is not available, fall back to the partition uuid (unique id). Only if that is not available either, use the block device name as mount.
This helps to keep your files in the same and easily identifiable place!
(Pro) Create symbolic links
Create symbolic links in /mnt and /storage to the actual mounts in /sdcard/usbStorage/, handy with some file managers and some apps that auto-detect storage locations.
Filesystem support
The filesystems supported depends on your device firmware. On most devices, at least vfat/fat/fat32 and ext2/3/4 are supported. On the latest Android versions, ntfs is also supported in read-only mode. Some devices also support exfat out the box, but most do not.
StickMount can utilize the ntfs-3g and mount.exfat-fuse binaries to add support for ntfs (untested) and exfat, but these are not included. If you place the ntfs-3g or mount.exfat-fuse files in the root of your internal storage ( /sdcard ), StickMount will automatically use them.
You can find the needed files here:
ntfs-3g
mount.exfat-fuse
Troubleshooting
For some users, the app appears not to work, while in fact it is the device itself or the cable not working. One OTG cable is not the other OTG cable. If you have a USB stick with a light on it, it should light up when you connect it to the Galaxy Nexus using your OTG cable. If it does not, either your cable or your Nexus is faulty. 99 out of 100 times it is going to be your cable. That the cable works fine with another device does not mean anything! Cables known to work on a one devices may not work on another device.
SD card unmounting: If your SD card unmounts when unmounting a USB device, you have a bug in your kernel. This is not a bug in StickMount !
Download
StickMount
StickMount Pro (add-on, requires the free StickMount app)
Changelogs
18.01.2017 - v3.50
- (C) 2017
- Handle HTTP redirects when downloading additional tools
23.03.2016 - v3.40
- (C) 2016
- Improve systemless SuperSU compatibility
- Add mount cleanup option
09.10.2015 - v3.33
- Basic M compatibility
13.12.2014 - v3.26
- Minor su policy adjustment
30.11.2014 - v3.25
- Fix unmount+kill issue on L
16.11.2014 - v3.23
- Fix exFAT write issue on L
15.11.2014 - v3.22
- Fix exFAT mount issue on L
06.11.2014 - v3.20 - RELEASE NOTES
- Basic L theming
- Updated SELinux handling, fixes a number of mount/read/write issues on enforcing devices
01.07.2014 - v3.10
- Android "L" Preview compatibility
23.03.2014 - v3.01
- Fix possible force close
23.03.2014 - v3.00
- (Pro) Make mounts available by label or uuid instead of block device name
- (Pro) Make mounts available through /mnt and /storage
- White notification icon for KitKat
10.02.2014 - v2.50
- Fixed a number of (un)mounting issues
- Fixed one possible cause of /sdcard disappearance
- Anticipate and work-around '4.5' issues
- Suggest FS support add-on download
08.02.2014 - v2.40
- Forced a number of commands to toolbox, prevent busybox confusion
- Add mount master usage if available, and warning if not
On Android 4.3 and 4.4, using SuperSU v1.93 or newer is advised, as it provides some features that greatly improve reliability of (un)mounting, versus older versions of SuperSU or other Superuser management apps.
02.11.2013 - v2.30
- Android KitKat 4.4 related fixes
14.12.2012 - v2.20
- Adjustment to NTFS mounting
- UTF-8 mount adjustment (now enabled by default for new users)
- Changed (un)mounting strategy to repetitive scan
- Rearranged preference order
- Adjusted partition detection
- Reworked notification (Jelly Bean +)
- Toast notification no longer shown if turned off in preferences
02.12.2012 - v2.10
- More Android Jelly Bean 4.2 related fixes
- Only works for primary user
- Twitter/G+ spam now included
20.11.2012 - v2.0
- Android Jelly Bean 4.2 related fixes
- Various bug fixes
- Various text changes
- exFAT mounting if "mount.exfat-fuse" is present
- Fixed mounting sdXXYY (as opposed to sdXY) block devices
- (Pro) Kill processes that are preventing unmounting
- (Pro) Trigger media scanner on (un)mount
09.07.2012 - v1.5
- "The Jelly Bean Update"
- ActionBar restored (by many requests !)
- Modified permissions
- Async mounting
- Force holo theme
11.03.2012 - v1.3
- Modified NTFS mounting process
- Various texts adjusted
- App no longer quits on rotate
- ActionBar removed (double title)
- Added codepage and UTF8 options (experts only, will mount with default options on failure)
02.01.2012 - v1.2
- Modified mounting process
- Support different partition layouts
- Support mounting extX partitions
- Support mounting ntfs partitions (if kernel module present and loaded)
20.12.2011 - v1.1
- Added option to disable visual notifications of (un)mounting
- Fixed a number of possible crashes
Oh, hell yes....
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Working perfectly on GSM 4.0.2. Thanks Chainfire!
i believe this requires custom kernel with USB-OTG enabled?
i tried this on stock 4.0.2, the usb port is just not kicking out any power still.
As stated, rooted ICL53F should work.
Any chance of an option to disable the notification icon as well as the pop ups?
Chainfire said:
As stated, rooted ICL53F should work.
Click to expand...
Click to collapse
tried on my stock rooted 4.0.2, first of all, its not requesting for root permission.
and second of all, nothing happen when i plugged in a usb stick. the usb stick did not even lit up.
any ideas?
qwerp_ said:
tried on my stock rooted 4.0.2, first of all, its not requesting for root permission.
and second of all, nothing happen when i plugged in a usb stick. the usb stick did not even lit up.
any ideas?
Click to expand...
Click to collapse
Doesn't light up... are you using the right cable? I think my USB stick lit up even when I was using the original no-USB-host Nexus kernel ?
Chainfire said:
Doesn't light up... are you using the right cable? I think my USB stick lit up even when I was using the original no-USB-host Nexus kernel ?
Click to expand...
Click to collapse
i am using the usb-otg cable from my xoom. (which works on my xoom. original cable from motorola).
Weird. As I said, it works on my stock rooted Galaxy Nexus (no custom kernel, the ICL53F kernel but rooted). And your USB lighting up actually has nothing to do with StickMount. The device already talks to the USB stick - the only thing StickMount does is mount the partition.
Chainfire said:
Weird. As I said, it works on my stock rooted Galaxy Nexus (no custom kernel, the ICL53F kernel but rooted). And your USB lighting up actually has nothing to do with StickMount. The device already talks to the USB stick - the only thing StickMount does is mount the partition.
Click to expand...
Click to collapse
weird for me. thanks for the support anyway.
for some reason, it just won;t supply any 5+ to the usb devices.
can i know what usb-otg cable you using?
WhiterThanWhite said:
Any chance of an option to disable the notification icon as well as the pop ups?
Click to expand...
Click to collapse
Maybe v1.1. I like to see them, but I can understand if you don't
Hello Chainfire,
Thank you for all your help so far. I am trying this, using the OTG cable that worked with my Motorola Xoom. Unfortunately, it is not working. The drive lights up, but it does not mount the partition.
Galaxy Nexus (CDMA) - Rooted
ROM: Android Revolution HD 2.1.1 LTE
Android Version: 4.0.2 (ICL53F)
Kernel version: 3.0.8-gaaa2611 [email protected] # 1
dahotz said:
Hello Chainfire,
Thank you for all your help so far. I am trying this, using the OTG cable that worked with my Motorola Xoom. Unfortunately, it is not working. The drive lights up, but it does not mount the partition.
Galaxy Nexus (CDMA) - Rooted
ROM: Android Revolution HD 2.1.1 LTE
Android Version: 4.0.2 (ICL53F)
Kernel version: 3.0.8-gaaa2611 [email protected] # 1
Click to expand...
Click to collapse
Do you know the filesystem of the stick ? fat32 ? ntfs ? ext ?
I should probably make a log function for info I need, heh.
is there any chance the mount location can be changed so it's not within the /sdcard folder? Perhaps /mnt unless that isn't the proper place to for mounted devices?
The reason I ask is for backing up the /sdcard. It would be easier to copy /sdcard to a folder that wasn't within the /sdcard path.
Chainfire said:
Do you know the filesystem of the stick ? fat32 ? ntfs ? ext ?
I should probably make a log function for info I need, heh.
Click to expand...
Click to collapse
It is formatted FAT32.
Luxferro said:
is there any chance the mount location can be changed so it's not within the /sdcard folder? Perhaps /mnt unless that isn't the proper place to for mounted devices?
The reason I ask is for backing up the /sdcard. It would be easier to copy /sdcard to a folder that wasn't within the /sdcard path.
Click to expand...
Click to collapse
The reason this stuff is usually under /sdcard is because all programs that can work with the external storage can then access it...
i can confirm it works!
Awesome stuff, works 100% with 4.0.2 and 4.0.3
Sent from my Galaxy Nexus using Tapatalk

[TWEAK][APK][CWM][[Update 2.0.0]] Seeder entropy generator to provide lag reduction

Original Post | CWM
Guys check this out
Best result on Android 4.+
Description
Hey everyone,
So, I was experiencing significant lag as we all do from time to time, and decided I was going to get to the bottom of it.
After tracing and debugging for hours, I discovered the source of 90% of Android's lag. In a word, entropy (or lack thereof).
Google's JVM, like Sun's, reads from /dev/random. For all random data. Yes, the /dev/random that uses a very limited entropy pool.
Random data is used for all kinds of stuff.. UUID generation, session keys, SSL.. when we run out of entropy, the process blocks. That manifests itself as lag. The process cannot continue until the kernel generates more high quality random data.
So, I cross-compiled rngd, and used it to feed /dev/urandom into /dev/random at 1 second intervals.
Result? I have never used an Android device this fast.
It is literally five times faster in many cases. Chrome, maps, and other heavy applications load in about 1/2 a second, and map tiles populate as fast as I can scroll. Task switching is instantaneous. You know how sometimes when you hit the home button, it takes 5-10 seconds for the home screen to repopulate? Yeah. Blocking on read of /dev/random. Problem solved. But don't take my word for it .. give it a shot!
Update!
I've built a very simple Android app that bundles the binary, and starts/stops the service (on boot if selected). I'll be adding more instrumentation, but for now, give it a shot! This APK does not modify /system in any way, so should be perfectly safe.
This is my first userspace Android app, so bear with me!
Note that this APK is actually compatible with all Android versions, and all (armel) devices. It's not at all specific to the Captivate Glide.
Click to expand...
Click to collapse
Quote Original Post link - Click Here
UPDATE: Seeder_v7 is out, as suggested by pepoluan, it now detects for qrngd (built in rngd for Qualcomm Snapdragon-based devices), if it is there, then it will not start as rngd may conflict with it...the rngd binary is also using the latest version (it is turned off when screen is off)...users of previous versions can just flash it over...
INSTALLING
You need init.d support for this!
Download and flash:
http://www.androidfilehost.com/?fid=9390248398092764755
Here is a mirror... http://d-h.st/REX
How to use this script?:
After flashing, launch terminal emulator and type
Code:
su
seeder
You will get a menu like this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
NOTE: There will be NO app after flashing! This only installs the necessary binaries and scripts...
For those who cannot install via recovery:
You get a status 0 error -> replace the update-binary in Seeder_v6.zip with one from another zip that works with your device
OR
Use the new installation method!
Instructions:
1. Download Seeder_v7_non-CWM.zip from here:
http://www.androidfilehost.com/?fid=9390248398092764756
2. Extract the zip, you will get a folder named "install"
3. Place the folder in the root of your sdcard (/sdcard)
4. Launch terminal emulator, type:
Code:
su
cd /sdcard/install
sh install.sh
5. Ignore any error messages (those are only warnings, only happens to current users)
6. You are done! The script will auto-delete the "install" folder as it is not required anymore...
Sample output:
UNINSTALLING:
And now for the way to clean up Seeder_7:
Via recovery:
Flash Seeder_v6&7_Uninstall.zip:
http://www.androidfilehost.com/?fid=9390248398092764753
Via terminal:
1. Download Seeder_v6&7_Uninstall_non-CWM.zip:
http://www.androidfilehost.com/?fid=9390248398092764145
2. Extract it to the root of your sdcard (/sdcard), you should get a file named uninstall.sh
3. Launch terminal emulator and type this:
Code:
su
cd /sdcard
sh uninstall.sh
4. You are done! Everything gets cleaned up, including uninstall.sh...
Click to expand...
Click to collapse
Flash now works, you can now type in terminal to turn off/on and also easier remove. Up to u if ud like to try. Note" it may drain battery more" so please do not be going all against tweak. Thanks
FLASH THIS ON GINGERBREAD!?!?!(v1.4.0)
Thanks to Zen Arcade for making a flash for Gingerbread! His Post Here!
I took a look at the original CWM package and made the following changes:
1 - swapped in our update-binary
2 - changed the mount command in edify script (not really needed since system is already mounted in gb voodoo CWM recovery)
3 - removed all mount commands from init.d script (not required since you have to have /system mounted just to read the script)
Here's a link to the CWM flashable: http://d-h.st/Kaq
I'm running this on both my Infuses - no problems noted. At work now so will not have a chance to try with games for a couple more hours at least. Only down side I can note is that the rngd binary is about 1MB in size - a small sacrifice if it does eliminate lag events
Note that this package is for GB, but should work fine for 4.x roms as long as /system is mounted as part of recovery startup. Can someone test on a 4.x (CWM9/10) rom by flashing the zip and then checking /system/etc/init.d for a file named 91RNGD or /system/xbin for rngd? I've already tested on GB and it works fine there.
Thanks bradman for posting this - all credit and thanks to the original devs who posted this.
Click to expand...
Click to collapse
Sorry if this is a n00b question, but if you just install the .apk do you still need to change the permissions or does it take care of it for you?
dginsd said:
Sorry if this is a n00b question, but if you just install the .apk do you still need to change the permissions or does it take care of it for you?
Click to expand...
Click to collapse
Is best to just fix Perm to brr safe, easiest way to do so if you just install the app is to go to recovery/advanced/fix permissions and reboot
Sent from my SGH-I997 using xda premium
I stumbled upon this myself a few days ago and have been looking into it... I can easily implement it into my source builds, but want to see how it reacts first before doing so. And btw bradman... CM10.1 is smooth as **** with nothing needed... but if this makes it even better, then thats good to hear.
Anyone tried this on 2.3.6?
im aware its smooth good job! i was just testing it on infuse and i currently had ur rom so i just gave it a try to confirm it working on infuse
wawaweewa said:
Anyone tried this on 2.3.6?
Click to expand...
Click to collapse
ive heard it works on gingerbread. never tried. try a backup in recovery then flash. if anything goes wrong restore
bradman117 said:
ive heard it works on gingerbread. never tried. try a backup in recovery then flash. if anything goes wrong restore
Click to expand...
Click to collapse
I updated OP so that if flash doesn't work i have download files to manually do
bradman117 said:
ive heard it works on gingerbread. never tried. try a backup in recovery then flash. if anything goes wrong restore
Click to expand...
Click to collapse
that is what i am doing now! im on saurom jvu atm thanks for the quick reply ill let you know how it turns out
EDIT: i hope it works so my online game will run smoothly!
I must say, this relatively minor tweak provides a noticeable boost. I'm currently using Liquid Smooth RC9.11 with no further tweaks. After applying this tweak I've noticed faster loading times for a couple games, Google maps is much more responsive to massive view changes, web browsing is snappier, and as stated above almost no redraw delay when returning to the launcher after running a large app (like a game). I must say this under-powered and under-RAMmed little Infuse just keeps getting better and better thanks to all the work the devs here. Keep up the good work!
deathblade said:
Is best to just fix Perm to brr safe, easiest way to do so if you just install the app is to go to recovery/advanced/fix permissions and reboot
Sent from my SGH-I997 using xda premium
Click to expand...
Click to collapse
Thanks for the tip
dginsd said:
Thanks for the tip
Click to expand...
Click to collapse
so i just have to flash the zip in recovery then fix permission and that's it?
just flash it will do permission
Working CWM Flashable for Infuse GB
I took a look at the original CWM package and made the following changes:
1 - swapped in our update-binary
2 - changed the mount command in edify script (not really needed since system is already mounted in gb voodoo CWM recovery)
3 - removed all mount commands from init.d script (not required since you have to have /system mounted just to read the script)
Here's a link to the CWM flashable: http://d-h.st/Kaq
I'm running this on both my Infuses - no problems noted. At work now so will not have a chance to try with games for a couple more hours at least. Only down side I can note is that the rngd binary is about 1MB in size - a small sacrifice if it does eliminate lag events
Note that this package is for GB, but should work fine for 4.x roms as long as /system is mounted as part of recovery startup. Can someone test on a 4.x (CWM9/10) rom by flashing the zip and then checking /system/etc/init.d for a file named 91RNGD or /system/xbin for rngd? I've already tested on GB and it works fine there.
Thanks bradman for posting this - all credit and thanks to the original devs who posted this.
UPDATE - 2012/01/03
I've confirmed the documented improvement in speed at which Maps re-tiles the map display when making big location changes. Still testing other apps. Some games appear a big less laggy, although some disruptive lag events still occur (I suspect due to file system i/o scheduler delays rather than from lack of random/entropy data as addressed with this enhancement). I'll do some benchmarking over the weekend and report back with results.
Zen Arcade said:
I took a look at the original CWM package and made the following changes:
1 - swapped in our update-binary
2 - changed the mount command in edify script (not really needed since system is already mounted in gb voodoo CWM recovery)
3 - removed all mount commands from init.d script (not required since you have to have /system mounted just to read the script)
Here's a link to the CWM flashable: http://d-h.st/Kaq
I'm running this on both my Infuses - no problems noted. At work now so will not have a chance to try with games for a couple more hours at least. Only down side I can note is that the rngd binary is about 1MB in size - a small sacrifice if it does eliminate lag events
Note that this package is for GB, but should work fine for 4.x roms as long as /system is mounted as part of recovery startup. Can someone test by flashing the zip and then checking /system/etc/init.d for a file named 91RNGD or /system/xbin for rngd?
Click to expand...
Click to collapse
I currently cant test this but if it turns out to work ill put it on OP. i did hear from someone that the biggest difference on GB but i cant say that for y self because i have not tried yet
I gotta say, it's very smooth so far.
Works fine on Scott's CM10. PS shows the rngd process running. Thanks
Zen Arcade said:
Note that this package is for GB, but should work fine for 4.x roms as long as /system is mounted as part of recovery startup. Can someone test on a 4.x (CWM9/10) rom by flashing the zip and then checking /system/etc/init.d for a file named 91RNGD or /system/xbin for rngd? I've already tested on GB and it works fine there.
Thanks bradman for posting this - all credit and thanks to the original devs who posted this.
Click to expand...
Click to collapse
Sent from my SGH-I997 using xda premium
Heyyy Scott, check out this guys find
lordvincent 90 posted it..
Originally Posted by zeppelinrox
So I did a bit of digging and a bit of research and a bit of testing.
I really dunno if the tweak makes that big of an effect but I did discover a nice trick to have a nice fat entropy_avail with zero overhead.
One of the first pages I skimmed was http://linux.die.net/man/4/random which mentioned at the bottom these other files:
read_wakeup_threshold contains the number of bits of entropy required for waking up processes that sleep waiting for entropy from /dev/random.
write_wakeup_threshold contains the number of bits of entropy below which we wake up processes that do a select() or poll() for write access to /dev/random.
Normally, read_wakeup_threshold is 64 and write_wakeup_threshold is 128
I also wondered why most users report that their entropy_avail was by default in the 200ish range while mine was always by default over 300.
I had also found this page at linuxinsight. I had used that site alot when researching Kick Ass Kernelizer's sysctl tweaks.
So I thought, hey I wonder if I can use sysctl to set good values and low and behold, I looked in my script and I already have settings for both lol:
Code:
busybox sysctl -e -w kernel.random.read_wakeup_threshold=128;
busybox sysctl -e -w kernel.random.write_wakeup_threshold=256;
As you can see, I had doubled the default values - and that's why my entropy_avail was always over 300.
So I decided to mess with sysctl a bit.
Connected the phone to the laptop.
In one command prompt I watched the entropy_avail with this one liner:
Code:
while :; do cat /proc/sys/kernel/random/entropy_avail; sleep 1;done
In a second command prompt I did the sysctl thing...
I found that write_wakeup_threshold didn't effect entropy_avail at all.
But read_wakeup_threshold is a totally different story
I did
Code:
busybox sysctl -w kernel.random.read_wakeup_threshold=2048
The entropy_avail just started climbing....
All the way up to 3600+ and just stayed there. Never went down at all.
Actually, the more I did stuff with the phone, the faster the level would climb.
So it would never go down and would never get used.
I thought well maybe I should lower it so it does get used.
I kept lowering read_wakeup_threshold until it got down to 1200 and finally entropy_avail dropped to 2400+ and kept climbing until 3600 and then would drop to 2400 immediately and up again and so on...
I played with different values.
Setting it to 1000... entropy would go up to 3000 and then drop to 2000 and up to 3000 again....
Setting to 750.... entropy would go up to 2250 and drop to 1500 and up to 2250 again...
So the pattern is:
max entropy_avail=read_wakeup_threshold * 3
min. entropy_avail=read_wakeup_threshold * 2 (ie. read_wakeup_threshold * 3 - read_wakeup_threshold)
So it builds up 3 times the read_wakeup_threshold and then when it hits that limit, it drops the value of read_wakeup_threshold.
If you want to lock it it at the highest possible value (4096), you'd do:
Code:
echo 1366 > /proc/sys/kernel/random/read_wakeup_threshold
Or
Code:
busybox sysctl -w kernel.random.read_wakeup_threshold=1366
You can add either of those to any init.d script.
However, on my device, it won't go over 3600 so you can test for yourself how high yours will go.
If all you can get is 3600ish just go with 1200 (ie. 3600/3)
In Kick Ass Kernelizer I'm gonna make it like so:
Code:
busybox sysctl -e -w kernel.random.read_wakeup_threshold=1024;
busybox sysctl -e -w kernel.random.write_wakeup_threshold=2048;
That will make it bounce between 3072 max and 2048 min.
I'm making write_wakeup_threshold twice the amount of read_wakeup_threshold simply because that's what it is by default.
But hey, maybe I can save battery life if I make it 1280 just so it stays locked in at 3600+ and it doesn't have to keep rebuilding entropy_avail lol
So conclusion is: since there is a definite pattern on how entropy was being built up to a pre-determined level and dropped to a pre-determined level, it wasn't actually being used. That's just how it's programmed.
If the setting isn't there to "hold" all the entropy, it just drops/flushes it and force feeding it entropy won't make it not spit it out
So at least I found the setting that will make it hold it in lol
Maybe somebody would like to give it a try and test to see if it actually saves battery by setting read_wakeup_threshold to 1366.
Click to expand...
Click to collapse
lordvincent 90 posted it..
Just adding this, after reading the whole thread here it seems like this may be a simpler solution (and better on battery life)
Click to expand...
Click to collapse
Post Link -- http://forum.xda-developers.com/showpost.php?p=36208713&postcount=32
Zen Arcade said:
I took a look at the original CWM package and made the following changes:
1 - swapped in our update-binary
2 - changed the mount command in edify script (not really needed since system is already mounted in gb voodoo CWM recovery)
3 - removed all mount commands from init.d script (not required since you have to have /system mounted just to read the script)
Here's a link to the CWM flashable: http://d-h.st/Kaq
I'm running this on both my Infuses - no problems noted. At work now so will not have a chance to try with games for a couple more hours at least. Only down side I can note is that the rngd binary is about 1MB in size - a small sacrifice if it does eliminate lag events
Note that this package is for GB, but should work fine for 4.x roms as long as /system is mounted as part of recovery startup. Can someone test on a 4.x (CWM9/10) rom by flashing the zip and then checking /system/etc/init.d for a file named 91RNGD or /system/xbin for rngd? I've already tested on GB and it works fine there.
Thanks bradman for posting this - all credit and thanks to the original devs who posted this.
Click to expand...
Click to collapse
Anyone tried this?
Btw brad im on jvu saurom and flashed it fix permission but this is what i get
Tweak
This relatively minor tweak provides a noticeable boost. I'm currently using Liquid Smooth RC9.11 with no further tweaks. After applying this tweak I've noticed faster loading times for a couple games, Google maps is much more responsive to massive view changes, web browsing is snappier, and as stated above almost no redraw delay when returning to the launcher after running a large app (like a game). I must say this under-powered and under-RAMmed little Infuse just keeps getting better and better thanks to all the work the devs here. Keep up the good work!
BR

[DISCONTINUED][MOD][GB][SENSE][BETA][Reverse-mount][09 May '13]CyanicSense

*/Haters gonna hate/*
ROM currently "DISCONTINUED". But, the init.rc tweak remains :fingers-crossed:
Hi to all those who are reading this! Lemme answer a few questions before I get started.
First of all, What kinda name is this???
TBH, I haven't yet thinked of a name for this... So, I just named it Stock ROM MOD
And, the name has been thought of! The name is... CyanicSense! Why this name? More details later
What does this do?
Though this is gonna be as stock as possible, the major feature that I had planned out for this is reversed-mount. As you might know, stock ROMs definitely do have mounts2sd (which might give some trouble in setting up), but, complete reversed-mount (i.e. the /sd-ext partition mounted as the /data partition as the int2ext script does, hasn't been achieved yet (on stock ROM). So, practically, this does that stuff.
How is this even possible?
Believe me. This ain’t no magic. Simple init.rc tweak… Mounting the mtdblk0p2 partition, which is basically the sd-ext partition as we better know it, in the /data folder does the trick. In CyanogenMod, this is done via the famous int2ext script…This is a more or less similar command, done during startup. Just make some changes to init.rc, and Voila!!! Your sd-ext is mounted in the /data partition.
So, why make a new thread for this???
Erm, but that ain’t the end of story here. I am planning on some more features. Current features are minimal, reversed-mount, and updated apps. Yep. Updated apps, not one but all of them. I can assure you that you will have every single update including Google Play Store v4.0.xx in this ROM. Also, applications which were basically “stub’s” have also been updated, so that you wouldn’t have to download any more apps. P.S. I have added a small file explorer, named “Explorer”, by Speed Software, the same people who brought about “Root Explorer”. Planning to replace it with OI File Manager in next build, if people prefer it
So, those were the two features of this ROM. Also, I am planning to work on some other features, which mainly include, init.d script support, and, removing bloatware. Currently, there are around 10 apps which I don’t use, and presume that most other users wouldn’t be using it either. So, I am gonna either make them uninstallable, or remove them completely, so that one can get more /system space More features might come up too. You can request new features, but… be reasonable
Is it safe???
I can’t answer that question, but, I am guessing the answer is yes. Why I think so??? Because I am using this as my daily driver for the past few days. Also, “reverse-mount” via scripts like int2ext, and mounts2sd do the same thing, so, I don’t think its gonna create problems
Will it make my phone laggy?
Not sure. Works fine in my Class 4, 8 GB memory card. Anything Class 4 and above, I assure you it wouldn’t “visibly” lag.
What about gaming?
Well, this is the part where you come in. I don’t use my phone for gaming, so, I can’t be sure whether Temple Run 2 is lagging, or its I who can’t play it properly But, one fact can be sure that Stock ROM isn’t always the best choice for gaming.
Anything else left?
Yeah… This build is… kinda heavy. 160+ MB is definitely too big for the “stock” ROM. It is because of all the updated apps which were included. I will try to make subsequent builds lighter, and more bloatware free
Now that Q&A Section is over, let’s get back to business. The simple init.rc tweak is explained in the next post.
Instructions:
Pretty basic. Wipe everything, except SD-Card, and flash the ROM.
The following video might give you a slight idea
P.S.: Recovery used: TWRP 2.5.0.0 (http://forum.xda-developers.com/showthread.php?t=2123503)
Bugs:
I need help with that If you encounter any bugs, please report immediately in this thread.
Downloads:
Link: http://www.mediafire.com/?8grcxx1rbngr6g2
Here is the link… 162 MB approx. Why so big? You are the typical TLDR case. Read the Q&A section above.
Beta Link: http://forum.xda-developers.com/showpost.php?p=41966646&postcount=19
Any issues, please post in this thread. I will try to fix it, ASAP
init.rc tweak that I used:
First of all, get a stock boot.img, and boot_img tools from here: https://github.com/sakindia123/boot-image-tools
Unpack it to some location safe, and, copy-paste the boot.img into this folder.
Then, run the following commands:
Code:
mkdir -p unpack
Code:
./unpackbootimg -i ./boot.img -o unpack
Code:
mkdir -p boot
Code:
cd boot
Code:
gzip -dc ../unpack/boot.img-ramdisk.gz | cpio -i
Code:
cd ../
Thus, you will have the ramdisk of your boot.img in the "boot" folder. Open up that folder, and open "init.rc" with any of your favourite editor.
Now, search for this line:
Code:
mount yaffs2 [email protected] /data
Replace that line with this:
Code:
mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev noatime nodiratime barrier=0 data=ordered commit=15 noauto_da_alloc nouser_xattr errors=continue
Now, I know you are confused... I too was, at first. So, let me make things clearer for you...
This is basically a mount command, which is executed in this order
mount [type of partition] [partition] [mount directory] [options]
So, the partition type is ext3, to be made more compatible with most devices.
/dev/block/mmcblk0p2 is the sd-ext partition.
/data is the folder we are going to mount the partition in.
nosuid and nodev: Allow an ordinary (i.e., non-root) user to mount the filesystem if one of his groups matches the group of the device.
noatime and nodiratime: Access timestamps are not updated when a file is read. So, there is no writing on the partition everytime the disk is read.
barrier=0
This enables/disables barriers. barrier=0 disables it, barrier=1 enables it. Write barriers enforce proper on-disk ordering of journal commits, making volatile disk write caches safe to use, at some performance penalty. The ext3 filesystem enables write barriers by default. Be sure to enable barriers unless your disks are battery-backed one way or another. Otherwise you risk filesystem corruption in case of power failure.
data=ordered
Specifies the journalling mode for file data. Metadata is always journaled.
commit=15
Sync all data and metadata every 15 seconds.
noauto_da_alloc
does give a slight performance increase, especially when working with databases..
nouser_xattr
Support "user." extended attributes (or not).
errors=continue
Define the behaviour when an error is encountered.
Reserved, for screenshots
Yo, screenshots will occupy this post
Reserved,
in case i forgot anything to say
i admit, i typed this in a hurry...
credits are yet to be given, so... please don't flame here
Nice work bro.
For I understand it, is a stock ROM with memory script by you only, yes?
Sorry my english lvl xDDD....
Good job
Edit: well.. must say brother you did good work..
Rom is purely stock with only this tiny mod..
No bugs till now
This ain't no memory script.
TBH, I haven't even enabled init.d support yet. This is solely related to boot.img's init.rc... Which initiates reverse mount when you start your phone.
Nice tut. One thing that the rom is 1.43.xx based, right?
Sent from my HTC Explorer A310e using xda app-developers app
Yes.
@rcane said:
Nice tut. One thing that the rom is 1.43.xx based, right?
Sent from my HTC Explorer A310e using xda app-developers app
Click to expand...
Click to collapse
Stock ROM, version: 1.43.720.2
Brother.. here's a big problem..
The data folder of the Rom is now empty and all the app's apk files and app data installed can't be accessed using the root explorer..
And it is no where.. o can't find them..
Did you make a link to the data folder while mounting the ext partition to data..??
Sent from noob machines
I recommend using another application.
P.s. you will find it in the data folder only. It won't be in the sd-ext folder.
P.s. sorry for the short reply. I ain't at home currently
Sent from my HTC Explorer A310e using xda app-developers app
I used solid explorer..
I got them.. but on es file explorer.. the folder is still empty..
And also there is no sd-ext folder in root... Because you didn't make one..
Sent from noob machines
Did you enable Root Explorer or so...
AFAIK, even in the latest update, root exploration should be first enabled.
Press menu key, and in tools option, there will be the "root explorer" option, or a similar option.
Enable that, and then, you will be able to browse the data partition.
P.S.: if you don't get a superuser request, it will not work.
OK got it...
Thanks brother...
I got my mistake... it works now..:good:
Ohk, tiny flashable zip's coming up!!! HELP NEEDED!
These zips will be of this kind:
Flash ROM.
Flash custom zip
This will be made for stock ROM myself...
Meanwhile, need help for other ROMs. Anyone interested, please reply in thread.
me..
vineethraj49 said:
These zips will be of this kind:
Flash ROM.
Flash custom zip
This will be made for stock ROM myself...
Meanwhile, need help for other ROMs. Anyone interested, please reply in thread.
Click to expand...
Click to collapse
if u find something i can do , feel free to tell..
Thanks
artistaditya said:
if u find something i can do , feel free to tell..
Click to expand...
Click to collapse
Need help for NextGEN, Xenon, Ateeq, and Explode, and any other sense based ROM that I missed :silly:
I need some info about these ROMs, preferably in the following format:
init.d support: yes/no
mounts2sd used?
If yes, application included or not?
Post this information along with boot.img of those ROMs
Not a stable internet, so, can't possibly download all those files.
I have this..
vineethraj49 said:
Need help for NextGEN, Xenon, Ateeq, and Explode, and any other sense based ROM that I missed :silly:
I need some info about these ROMs, preferably in the following format:
init.d support: yes/no
mounts2sd used?
If yes, application included or not?
Post this information along with boot.img of those ROMs
Not a stable internet, so, can't possibly download all those files.
Click to expand...
Click to collapse
Sorry i dont have access to all the roms but i can give you information on Nextgen and jaggyrom..
--JaggyRom [specific version 3.2.1 lite]
1.) init.d support - yes
2.) apps2sd script used [without gui]
boot.img here- jaggyrom_boot.img
--NextGen [specific version 1.5]
1.) init.d support - yes
2.) mounts2sd script used [without gui]
boot.img here- nextgen_boot.img
Note to Beta testers! Cyanic Sense Beta is out!
What you need to test for:
Bugs.
Overlay issues.
Unreadable text.
That's it!
How to report:
Name of Application.
What you were trying to do.
A screenshot, if it is about overlay issues or unreadable text, along with the name of the application.
Link: http://www.mediafire.com/download/a4c74u6tk8c34wx/cyanic_sense_beta_v001.zip
Screenshots
vineethraj49 said:
What you need to test for:
Bugs.
Overlay issues.
Unreadable text.
That's it!
How to report:
Name of Application.
What you were trying to do.
A screenshot, if it is about overlay issues or unreadable text, along with the name of the application.
Link: http://www.mediafire.com/download/a4c74u6tk8c34wx/cyanic_sense_beta_v001.zip
Click to expand...
Click to collapse
Seems the OP forgot to add the "obligatory" screenshots
No worries here I am xD
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Click to expand...
Click to collapse
Seems OP is working great,waiting for future updates!

Categories

Resources