[T-Mobile, Samsung Galaxy SIII] Deviant Ollam:
don't worry... you're surely not an idiot. i don't know what kind of person it takes to run the Galaxy S III as stock, but i surely couldn't ever be content with that bloated, awful environment. I nearly puked when i first started mine up, and i immediately shut the phone off and couldn't wait to get home to start modding it.

yes, the non-working camera seems to be one of the biggest problems that people have when running non-stock Android on the Galaxy S III.

ah, so i presume that you are browsing the file system either from your windows box or by using a "typical" file manager app on the phone. in either case, you are not seeing the whole picture.

here's a brief overview of a few details...

When Android devices have an SD card or microSD card present, the file system will often treat this as an /sdcard directory (that's right off the root of the whole filesystem)

even devices that do not take any removable media often still allocate a partition of their internal memory to this purpose, and thus on something like the Nexus 7 tablet you'll have an /sdcard directory even when there is no card slot

some devices, like our Galaxy S III phones, actually do both. there is an internal partition for users to access and also a microSD card slot

in that case, the root of the file system will have a /storage directory and within that there will be /sdcard0 (internal partition) and /sdcard1 (microSD card, if present)

... in ALL of these cases, when you plug your Android phone into a computer or even when you browse the device with a "typical" file manager app, all you can view are the /sdcard directories. What you need is a way to "break out" of those directories and go "deeper" into the file system (or, technically, one would really call that "higher up" in the directories) so that you can start by viewing just the root directory (simply the "/" and nothing else) and then see utterly the whole device directory tree.

To do that, most power users like to rely on better file manager apps. Two of the most popular are: Root Explorer and ES File Explorer

I think you'll find that most folk here (or at least i can say "most folk whom i know") prefer Root Explorer. Its interface is clean and it allows very fast toggling between Read-Only and Read/Write mounting. (that's also an issue that comes up, i'll explain) ES File Explorer does all the same tasks (and i think comes as part of some ROM packages i've seen) but just doesn't pop for me in the same way. ES File Explorer is totally free, however. Root Explorer used to be (and you can still surely find links to the old versions or just email me and i'll send it to you) but the current version now costs a dollar or something.

If you have full root access on your phone, you can easily use an app like one of those file managers to view the WHOLE file system, from the root directory on down. You will see that there is a /data directory (a directory named "data" just within the "/" root directory of the device) and THIS data directory is where you'll need to place those SlimISP files. If you're running a custom Android rom you should already have root access on your phone so this should work.

When people do NOT have root access of their phone, they run into problems copying/moving files in some ways. The /system directory, for example, is often mounted as Read-Only and therefore you can't push things into there. But with root-enabled file manager apps like the ones mentioned above, that's not a problem.

Your /data directory should not have any such restrictions. You should be able to move the SlimISP files into there (from your /sdcard directory or wherever they are right now) but once you do, you will have to set the permissions properly.

If you've never worked within a UNIX environment, the concept of permissions is a little different from how an O/S like Windows treats it, but it's not a totally foreign notion. Essentially, there are three kinds of permissions and three categories to which they can be applied...

Permissions: Read, Write, Execute

Categories: Owner, Group, All

... the details of all this get a little weighty for our discussion here, but suffice it to say that when you view a UNIX-based file system, it's typical to see strings of letters next to file names. Like this: rw-rw-r-x or rwxr--r-- etc etc. These are triplets of letters, representing whether the Read, Write, or Execute permission exists for people in the three categories. The letters (and hyphens, if the permission does not exist) are all mashed together in a long string.

So in our two examples in the above paragraph, in the first case (rw-rw-r-x ... maybe you can try to visualize it this way: rw- rw- r-x) the Owner of the file has Read and Write but not Execute perms. Others in the same group as the owner have these same permissions. And the "all" group has Read and Execute permissions but Write is not set. (which is a pretty odd permission set overall, hah). In the second example i posted (rwxr--r-- ... visualize it this way: rwx r-- r--) the owner has full Read/Write/Execute but others in the owner's group and also the "all" group only have Read permissions. Is that a little clear?

Overall, we don't have to get into details like that too deeply. Just know that when you copy or move the SlimISP files into your /data directory, there is a chance they will arrive with unhelpful permissions. While i myself have never narrowed down exactly which permissions are necessary to make the camera work, you can't go wrong (in this case*) by just setting them all. My SlimISP files all are set to rwxrwxrwx and the camera works for me. One day i'll drill into the file system and actually start revoking permissions and renaming files to see EXACTLY which file and what permissions worked for me. For now, just setting them all is fine.

So, hopefully that will help you out! Sorry the post was long-winded. It just seemed like you really wanted to learn.

* NOTE - While setting full permissions on a random camera driver file is fine on a phone that doesn't get used by other people, this is NOT a healthy attitude or wise course of action to ever take if, say, you're administrating a computer or running a network or something. Getting frustrated that something isn't working can be rough, but it's basically never a good idea to solve the problem by throwing up your hands and saying, "screw it... give EVERYONE and ALL PROCESSES permissions on this damn resource because I don't know why the hell it's failing."

That's a recipe for trouble and for security breaches. Can't count the number of times i've seen a firewall config with an "any any" rule thrown in there because some dumb sysadmin couldn't be bothered to actually troubleshoot why some oddball service wasn't working correctly. Heh, and i've usually seen these firewall configs when called in on post-intrusion audit jobs.