Related
At the android-platform group, we've been hashing out a scheme for adding in official apps-to-sd support to AOSP. We have a couple of google engineers following along/helping out and are now at a state where the initial testing implementation (we're using an incremental development approach) steps are defined in a fairly simple manner and we are ready to start at it from an actual implementation details/start coding perspective.
The actual thread is located here: http://groups.google.com/group/android-platform/browse_thread/thread/bf0709c157451cd9
Basically, if implemented, it will do the following;
1) totally obsolete current hacker apps2sd approaches by allowing actual sdcard removal from device.
2) ultimately ship with devices stock (when in a state where it is easy to use, stable, and at least as secure for non-root users as internal storage currently is).
3) keep application data on the same device as the actual application with no side-effects (like internal apps being broken while waiting for second partition to mount).
4) allow MULTIPLE sdcards containing apps to be swapped on the same device.
5) allow sdcard containing apps to be swapped between DIFFERENT devices.
Note: 4 and 5 are not in the initial implementation, first proof of concept and working system, then enhancement with additional features. 4 and 5 are not requirements for inclusion in AOSP, but they are cool features that ultimately should be implemented.
What we need:
Several good developers, web storage w/source/patch management, etc.
Anyone interested, please read the thread to get an idea of the current state of thought, and please don't pollute that thread with nonsense. There is a current state of organization, and though not set in stone, it should be considered as NOT open for major architectural changes (i.e., the google engineers don't have any major problems with the proposal that we can't work through). Minor glitches and implementation details will be handled along the way. If you must pollute a thread with nonsense, use this one.
Really? Nobody AT ALL is interested?
This is the *ONE* major feature missing from AOSP!
Id PM twistedumbrella and cyanogen and shafty
JAC would prolly be interested but hes been busy with personal stuff i guess?
Just keep bumping this thread to keep it at the top. this needs to be done, and is long overdue on android...
It's a must
I'm sorry that I'm not a developer. Good speed!
I really don't think a2sd is a good solution at all (I've been following the discussion at android groups), rather, I believe the lack of an a2sd solution will eventually lead to device manufacturers to increase the amount of internal storage available on the device for applications (this is what this project is all about, isn't it, not enough storage for apps?) like Samsung did with it's Galaxy.
We shouldn't assume that a device is going to be used a particular way because then we'll run into problems. We shouldn't assume that an user will want to have their device used that particular way, be it partitioned or with a custom, secure filesystem stored in the SD. How do we explain that they'll lose some of their sdcard to app storage? If we make it automatic, how do we allow the user to disable it if they do not want it? How do we make it if an user wants to have one SD card with apps on it and another one without them?
Again I believe we should let the demand for more storage drive the evolution for the next android devices instead of just making it work and have manufacturers ignore the real need for increased internal storage.
I disagree with it not being a good solution. Technology is always advancing, but people can't always follow suit with what is the latest. Be it financials or whatever, Having this as an option will allow older hardware to run more efficiently, Bring costs down for manufacturers and give everyone more options.
@Jubeh, All the questions you raised I believe could be addressed, Have a new settings menu and let them choose. If they select it, it will give it pop up saying "x amount of space will be reserved on your SD card for app storage".
And with AOSP, Android is not just a mobile phone os anymore, It is a mobile platform. Imagine if you buy and download apps on your phone, You save them to your SD card because of this suggested add-in. Now you also own a media tablet that runs android, For example something with a bigger screen usually used for movies and gaming, Now if we had this you could put your sd card in that device and have all your apps like that. I think that would be an amazing feature for android.
I can think of big issues being encryption, piracy seems like it would be easy to accomplish with something like this, but again this should still be addressed and at least attempted to make available. It would be a huge step for the android platform. My 2 and a 1/2 cents worth
I dont think its a bad idea at all...
Jubeh while i agree with your ideas, we definitely need to get more on board memory. But things like apps, and even most cache's shouldnt hinder or take up precious phone storage. I mean seriously, are we hoping for gigs in the near future? Probably not, lol. But the apps2sd is something we can and should change now, to help bring on future ideas.
And what about those already locked into their devices, or where purchasing a newer improved version isnt feasable? Its hard to rationalize a new smart phone every year, even though we all do it, lol. But some bought the g1 hoping to not have to purchase a new device for multiple years, dont they deserve some kind of back compatablity as well?
Whether it should or should not be implemented is not open to debate. The objective is to actually IMPLEMENT it -- in a manner that meets the stability and security requirements of AOSP. One way or another, community needs WILL implement this system, problem is that the current implementations are just crazy HACKS --- unstable, unreliable, etc. As someone who WILL be installing applications to sdcard, *I* want the system to actually WORK PROPERLY, and I'm sure that not only most everyone else (with VERY VERY few exceptions...) does.
Also, the fact that anyone (jubeh) would bring up those completely retarded points about "assumptions regarding use cases" proves in no uncertain terms that they didn't read the thread linked to (even if they did make themselves look completely retarded by replying in it).
In other words jubeh: If you don't read before you reply, you will make yourself look like an a$$. Now run along.
Oh, and what did I say about keeping the NONSENSE out of that thread? Really... you need to learn to READ.
lbcoder, I have to hand it to you. You killed your project quicker than anybody else possibly could have. While many users wouldn't necessarily agree with what jubeh said, he was raising what he considered were valid points in a fairly reasonable manner. Instead of pointing out that you had already worked on those points and that you didn't want to rehash them, you trashed him (three times) and made it pretty clear that you would be an a$$ to work with. I wish you luck in finding devs who want to put up with that.
I think either member have the right to say what they please.
While lbcoder was a bit harsh, I can understand his frustration.
They're both senior members however, and have both have contributed MASS amounts to the comunity. If they want to hash out a problem so be it.
All its doing is keeping this thread at the top
sykokenndogg said:
I think either member have the right to say what they please.
While lbcoder was a bit harsh, I can understand his frustration.
They're both senior members however, and have both have contributed MASS amounts to the comunity. If they want to hash out a problem so be it.
All its doing is keeping this thread at the top
Click to expand...
Click to collapse
i agree. this should DEFINITELY stay at the top non-rooted g1 users at the very least should have these a2sd AOSP updates... and everyone else can just get the regular updates because they have enough internal memory
lbcoder said:
the current implementations are just crazy HACKS --- unstable, unreliable, etc.
Click to expand...
Click to collapse
Not to fill this thread with more nonsense but I have to disagree with you on saying the current apps2sds are just crazy hacks. Hacks? yes. Crazy, unstable, and unreliable? No. The new roms that are out currently automatically move your apps to your ext partition on startup if the ext partition is there. If not then the apps will not move there. The fact that you can dual mount your sd now also illiminates any FCs while you have the phone mounted to a pc. I am not saying that the method can not improve but anyone that is currently running an Enom or Cyan rom can tell you if you didnt personally create the partition then you would have no idea that the apps were on the sd.
Agreed, A2SD is stable
If you follow the directions, Apps2SD is more stable than most of the apps on it, imho.
I think the problem that people are having with stability involve the several ways to get there, the fact that each is a multi-step process, and Android users seem to run the gamut from someone who could hack into Sun Microsystem's payroll to someone who just got their first ,uh, smartphone. Most of us tend toward the latter. If you wrest the control from the user and automate it, then I think we'd see the last of A2SD instability.
Internal memory isn't just for apps, and I think it'll grow regardless. People like high numbers on boxes. WM (WP?) has had this since pre-turn of the century, and the demand for more phone memory hasn't decreased. As a matter of fact, the ROMs just grew, and grew, and grew.
Hey, it's cheaper, it's pretty much just as fast, and if it's easy, people will be able to figure out what the different partitions are once they get them and have to manage them, so it'll teach the masses. I'm all for it. Can't code for diddly, but I like the idea.
Yeah. Bump.
Edit: Yes, you will catch more flies with honey. In the friendliest way I can say it, lose the 'tude, or you'll lose out on a lot, lot, lot of other stuff, and you likely won't be able to figure out why things aren't working out for you. You can't really look back and say what might've been, either. You can, and please do, still say what you need to say, maybe even more, but *how* you say it really matters.
a2sd is FAR from being a stable, reliable, sane solution to the device's storage problem, I've said it time and time again.
Being "Senior Member" is in no way a measure of reliability, experience, or knowledge. I could fill 10,000 posts with 4/5ths of them being "Reported 10 chars" and be a senior member. Also, although I've tried to help where I can, I don't think I've yet contributed anything significant, mainly to avoid the barrage of posts afterwards asking how to make it work... and that brings me back to topic; the storage of apps on SD-card would be hell for carrier's support lines. The implementation is mostly non-existent in MASS MARKET headsets, and although you're right to point out that Android is making strides beyond the phone market, I believe the implementation would be shunned by google for several reasons; the formerly mentioned carrier support hell, both carriers and manufacturer's desire for handsets to become obsolete, google's desire to keep android appealing to both carriers and manufacturers, and possible competition in the thin-portable client and netbook spaces against it's own upcoming Chrome OS.
At this point already, the hope that the feature will "2) ultimately ship with devices stock" is pretty, pretty slim.
As opposed to what most members here might think, we're in the minority (rooted Dream users), and although a2sd does cater to some rooted users, we're still talking about the minority of Dream devices out there (since really, it seems the only reason behind implementing a2sd is the Dream's stock 70 MB app storage space, most other devices at least double that amount). Normal people (read: not us geeks) change devices often almost as a fashion statement, so any solution, if it did make it as an update, would be to support the desire of a small fraction of an almost obsolete device.
Besides, even starting with the way apps are currently handled by the device, it would require a major re-working of the platform to get this monstrosity working. Currently, apps are handled in two spaces, system apps, which can't be un-installed, and user apps, which can be un-installed, updated, etc, but not by the user, but by the package-manager. A better solution would be a third app space for sd-card installed apps. The system/package manager would not install these apks downloaded directly to the sd-card's fat32, rather, they would just show up on the app launcher (we could have scans for new apps every time an sd-card was inserted/removed). With donut's on-demand dexopting, we could create another directory in /data, say, /sd-dalvik-cache, or even leave the .dex in the sdcard while the app was in use and remove it when the app stops (and clear any .dex on sd-card mount), and create a third category of apps that could be installed to sd (in lieu of it, apps would get thrown into /data/app and moved back to sd as soon as one was available, of course, after prompting the user). This way, developers would be able to choose for their apps to be installed to SD and they could take the appropriate security measures to ensure the safety of their code, if that's what they want.
A2SD should have been an option for android in first place. Windows mobile has it, why not android? Is it stable and usable the way it is - sure. But what happens if I want to take out my sdcard and put it in a card reader?
It's one of the major failures of android along with it not supporting adhoc
networks, bluetooth obex as default and some other significant issues.
Don't get me wrong here - there are many things I love abut the platform but
flaws are there too. I've had winmo standart, winmo pro and now an android phone and in terms of "getting the job done" all three have their + and -.
The *current* mechanism to install applications on SD is an EXTREMELY hacky piece of junk.
Though it will work, it will only do so under the following conditions;
1) the user is fully aware of the limitations of the system and doesn't do anything that will stress it out,
2) the sdcard is *always* in the device, never removed.
3) it is impossible to use multiple sdcards in the same device.
Let me pose this question to everyone;
WHAT HAPPENS if you are using hack-apps2sd and you remove the sdcard? You know, just PULL IT OUT... This is something that "regular" users do *all the time*.
This is only one of many conditions that need to be managed by an apps2sd system before it can be considered for inclusion in a consumer device.
Needs to be done;
1) The user needs to be able to chose whether or not to enable apps-to-sd and must set itself up on the phone itself by just the click of a button.
2) The user must be able to SWAP SDCARDS at will. This includes the case where they just rip the card out without unmounting it.
3) When an sdcard is inserted containing apps, the system must automatically set it up and add those applications to the package manager.
4) UID collisions must NEVER happen.
5) External apps must be able to be sanely removed from the package manager upon unmount (planned or unplanned).
6) Processes with open file handles must be politely shut down upon a planned unmount.
7) Processes with open file handled must be CLEANLY killed off upon an UNPLANNED unmount.
8) PROTECTED-APPS must be copy protected when stored on the sdcard to at least equal security to that used internally, i.e. they should be encrypted using a randomly generated key stored in a root-only location within /data.
9) The user must be able to chose where to install a new application.
10) Application home directory and dalvik-cache must be stored on the same media as the application is installed to, i.e. internally installed apps should have their home directory and dalvik-cache stored internally, externally installed apps should have their home directory and dalvik-cache stored externally.
11) Optional: Ability to grow/shrink the amount of storage on the sdcard devoted to applications.
In other words, the user experience should be like this;
1) With a regular sdcard inserted (or no sdcard inserted), the user experience must not be any different than it is currently.
2) User can go to Settings-->SD card & phone storage-->(SD card) Enable application install to SD card. This prompts the user for how much space to devote to applications (default, say equal to internal), and then sets it up.
2B) optional -- user can go to Settings-->SD card & phone storage-->(SD card) "Change SD card space reserved for applications". Prompts for new size (min size = current space used, max size = current available + total sdcard available).
3) User goes to install a new app, if the card has application storage enabled, the installer asks where to install the application to (internal or sdcard).
4) User safely unmounts sdcard -- if applications are running, prompt "There are applications running on the sdcard (list them), these will be terminated. Continue?", terminates applications, removes them from package manager, unmounts.
5) User unsafely pulls sdcard -- if applications were running, message "These applications were running on the sdcard. They have been terminated and any unsaved data has been lost."
6) User inserts or mounts sdcard, system scans if application install is enabled on the card, if it is, the applications are added to package manager.
discussion management
lbcoder,
The thread at groups.google is definitely the technical thread, so I am using this one to comment on your reply dated Oct 30 2:39 pm.
Hands down I believe that for the sake of keeping the discussion open (one of the pillars of the scientific method) is to allow comments that may or may not agree with your or anyone else's point of view.
I agree on that Armando's idea is wrong, just like you do. Although he does have some valid points, which anyone who reads carefully can see. He is probably out of line writing what he did on the technical thread instead of here; and should be scolded for that. But not for sharing his thoughts. I won't elaborate on my own ideas on the matter this because it is not my purpose with this post.
My purpose is to ask everyone working on both this and the technical thread to tone it down, please. XDA sometimes becomes a battleground, sometimes funny and sometimes wasteful and even annoying and both this and the technical thread at groups.google could be very valuable for the platform.
BTW: I'm a well seasoned developer, with well over 15 yrs of experience and who leads reasonably big projects.
Thanks for the thread. It is well worth it, whatever the outcome is.
fosormic said:
lbcoder,
The thread at groups.google is definitely the technical thread, so I am using this one to comment on your reply dated Oct 30 2:39 pm.
Hands down I believe that for the sake of keeping the discussion open (one of the pillars of the scientific method) is to allow comments that may or may not agree with your or anyone else's point of view.
I agree on that Armando's idea is wrong, just like you do. Although he does have some valid points, which anyone who reads carefully can see. He is probably out of line writing what he did on the technical thread instead of here; and should be scolded for that. But not for sharing his thoughts. I won't elaborate on my own ideas on the matter this because it is not my purpose with this post.
My purpose is to ask everyone working on both this and the technical thread to tone it down, please. XDA sometimes becomes a battleground, sometimes funny and sometimes wasteful and even annoying and both this and the technical thread at groups.google could be very valuable for the platform.
BTW: I'm a well seasoned developer, with well over 15 yrs of experience and who leads reasonably big projects.
Thanks for the thread. It is well worth it, whatever the outcome is.
Click to expand...
Click to collapse
There is no place in this discussion for opinions. Its not about battling, its not about opinions, its not about any of that BS. What I am asking is for anyone INTERESTED in CONTRIBUTING (either in code, or in rational discussion regarding implementation details) to come forward and do so. Everything else is irrelevant and out of place.
As for his having valid points... not relevant since ALL of his valid points have been addressed. His purpose (if he has any at all) is therefore simply to disrupt progress.
And since he has effectively destroyed this thread with his nonsense, I may cease monitoring this thread. Anyone interested in contributing, please contact me by PM. Anyone interested in being disruptive, don't waste your time -- really, just go away.
lbcoder said:
The *current* mechanism to install applications on SD is an EXTREMELY hacky piece of junk.
Though it will work, it will only do so under the following conditions;
1) the user is fully aware of the limitations of the system and doesn't do anything that will stress it out,
2) the sdcard is *always* in the device, never removed.
3) it is impossible to use multiple sdcards in the same device.
Let me pose this question to everyone;
WHAT HAPPENS if you are using hack-apps2sd and you remove the sdcard? You know, just PULL IT OUT... This is something that "regular" users do *all the time*.
This is only one of many conditions that need to be managed by an apps2sd system before it can be considered for inclusion in a consumer device.
Needs to be done;
1) The user needs to be able to chose whether or not to enable apps-to-sd and must set itself up on the phone itself by just the click of a button.
2) The user must be able to SWAP SDCARDS at will. This includes the case where they just rip the card out without unmounting it.
3) When an sdcard is inserted containing apps, the system must automatically set it up and add those applications to the package manager.
4) UID collisions must NEVER happen.
5) External apps must be able to be sanely removed from the package manager upon unmount (planned or unplanned).
6) Processes with open file handles must be politely shut down upon a planned unmount.
7) Processes with open file handled must be CLEANLY killed off upon an UNPLANNED unmount.
8) PROTECTED-APPS must be copy protected when stored on the sdcard to at least equal security to that used internally, i.e. they should be encrypted using a randomly generated key stored in a root-only location within /data.
9) The user must be able to chose where to install a new application.
10) Application home directory and dalvik-cache must be stored on the same media as the application is installed to, i.e. internally installed apps should have their home directory and dalvik-cache stored internally, externally installed apps should have their home directory and dalvik-cache stored externally.
11) Optional: Ability to grow/shrink the amount of storage on the sdcard devoted to applications.
In other words, the user experience should be like this;
1) With a regular sdcard inserted (or no sdcard inserted), the user experience must not be any different than it is currently.
2) User can go to Settings-->SD card & phone storage-->(SD card) Enable application install to SD card. This prompts the user for how much space to devote to applications (default, say equal to internal), and then sets it up.
2B) optional -- user can go to Settings-->SD card & phone storage-->(SD card) "Change SD card space reserved for applications". Prompts for new size (min size = current space used, max size = current available + total sdcard available).
3) User goes to install a new app, if the card has application storage enabled, the installer asks where to install the application to (internal or sdcard).
4) User safely unmounts sdcard -- if applications are running, prompt "There are applications running on the sdcard (list them), these will be terminated. Continue?", terminates applications, removes them from package manager, unmounts.
5) User unsafely pulls sdcard -- if applications were running, message "These applications were running on the sdcard. They have been terminated and any unsaved data has been lost."
6) User inserts or mounts sdcard, system scans if application install is enabled on the card, if it is, the applications are added to package manager.
Click to expand...
Click to collapse
well the extremely hacky piece of junk took a lot of hard work from the developers here......show some respect
So I am stealing this from another forum, hopefully it will cut down on some of the repeated threads. Copy and pasted to reduce the strain on my brain and typing.
Stolen from the Sprint Hero board on AndroidForums.com - Props to PDragon for typing it all. I have slightly modififed.
ROM - Read Only Memory
While the term has changed a bit from it's original meaning, it's essentially computer memory that does not require power to store it's data (non-volitile). In the sense of a smartphone like the Hero, it's the Internal Memory where the OS is stored. From what I've gathered, the Internal Memory is just Flash Memory (a special type of ROM) partitioned into two parts, one for the OS and the rest for apps to use. So, the OS partition essentially is true ROM, unless you root the phone. The software that groups like xda-developers make available are called ROMs because they're a ROM Image.
For the Hero this size is 512MB.
SDcard is a larger capacity external Flash Memory card.
Recovery Rom - I would assume enough said, but. This is the recovery partition of the phone for when things go bad, typically how you will load your ROM packages, some times refered to as "Update.zip" files.
Vanilla Rom
All the fancy bells and whistles have been pulled out so that its as minimalist as possible, users can then build on this for their own custom setup.
RAM - Random Access Memory
This is where current processes that are running are stored and keep the data they need immediately available to them. This is the memory you see when you run any of the Task Managers showing you currently running apps and the available memory. It's a completely different part of the phone from the Internal Memory discussed above. Data stored in RAM requires constant power and does not survive a power cycle of the phone (volitile).
For the Hero this is 288MB.
Root
This is the term being thrown around for modifying a smartphone to put custom software on it that normally wouldn't be allowed through means included with the phone (Android Market or an .apk file for a non-Market app). "Root" is the common term chosen because, in a Unix environment, the "root" user has complete and total control of the entire operating system of the computer. So, "rooting" the phone means taking complete control over its operating system. This is usually done by means of finding a flaw somewhere in the phone's firmware to allow access to the restricted Internal Memory where the OS resides. You then install a custom ROM (see above) to let you use your phone from then on.
Android is a bit more unique than any of the previous smartphones in that you don't really need "approval" from a higher power (ex, the Apple store) to install an app that hasn't made it onto the Market. Just uncheck the box Settings -> Application settings -> Unknown sources and you're free to install any .apk file you wish. So Android phones are more like a regular computer in that you're free to install whatever software you want from whichever source you want. Just be careful of where you get apps from outside of official Market sources. Also like a regular computer, you could open yourself up to having your personal data stolen.
Rooting still gives some advantages for power users, but for normal or even intermediate users, you probably don't need to root the phone to enjoy it as much as you'd have needed to for previous smartphones.
For further discussion, please see our Developer Forums.
Tethering
This is the term used for using your phone as an Internet access point to allow an attached computer to access the Internet. It turns your phone into a mobile modem. Please don't discuss Tethering here. See the thread Does Tethering work? to discuss this further.
*Let me know if we should add other terms. Maybe a MOD can stickie this.*
but where are the guides
jtadeo said:
but where are the guides
Click to expand...
Click to collapse
I think all of the guides have been Stickied on the first page of the board. Do you need one in particular??
At the bottom of the main forum is a dictionary for anyone to use. I don't see the point in this unless it is made for lazy people that just want what they want now and can't take time to research.
tdavis42 said:
At the bottom of the main forum is a dictionary for anyone to use. I don't see the point in this unless it is made for lazy people that just want what they want now and can't take time to research.
Click to expand...
Click to collapse
Do you think we would have as many of the new user questions repeated over and over if they did take time and do the research? Think not... You must have some real faith in humanity if you think people won't take the easy way out if it is offered. Hence my copy and paste from another forum.
What was a SDcard? and I'm not understanding the concept or RAM....
hahaha, just joking..
Nice work, I'm sure this will come in handy for some folks!
for all other definitions check out : http://wiki.xda-developers.com/index.php?pagename=Glossary
N0J said:
What was a SDcard? and I'm not understanding the concept or RAM....
hahaha, just joking..
Nice work, I'm sure this will come in handy for some folks!
Click to expand...
Click to collapse
I am not making fun of anyone, I have been there my self. But I have seen the above questions on other forums! lol.
I must say XDA members tend to be a little ahead of the learning curve.
Search Button!
jtadeo said:
but where are the guides
Click to expand...
Click to collapse
Search button is your FRIEND!!!
Kcarpenter said:
I am not making fun of anyone, I have been there my self. But I have seen the above questions on other forums! lol.
I must say XDA members tend to be a little ahead of the learning curve.
Click to expand...
Click to collapse
lol, yeah
xda is good
jjjjayd13 said:
Search button is your FRIEND!!!
Click to expand...
Click to collapse
but the search button is terrible, lol
I've even seen a disclaimer on a mod's signature saying that it sucks and to use google, haha!
hey guys, still new to the Android game. Had a friend at work root it for me. I got rid of all the ATT junk but still can't side load. Does anyone have any ideas on how to overcome that issue.
go to general, read wiki
shuratilt said:
hey guys, still new to the Android game. Had a friend at work root it for me. I got rid of all the ATT junk but still can't side load. Does anyone have any ideas on how to overcome that issue.
Click to expand...
Click to collapse
Specifics would be helpful but my guess is that all the issues you are having have already been mentioned in other threads.
Checkout the wiki in the general section, and the other Non-Market Apps threads in this section.
Read non market apps solved this will fix your issue.
Sent from my Samsung Captivate using Tapatalk Pro
actually, read the SECOND thread on the issue. It's not 16+ pages to read.
http://forum.xda-developers.com/showthread.php?t=738376
If you don't mind using your PC to sideload, do a Google search for "Sideload Wonder Machine."
It's the easiest way to do it and you don't even have to be rooted.
Double-post / Please disregard...
Everyone is telling you what to read but not why.
You still need to enable the ability to install non-market apps. You can read the above posts on how to do it!
max_warheads said:
actually, read the SECOND thread on the issue. It's not 16+ pages to read.
http://forum.xda-developers.com/showthread.php?t=738376
Click to expand...
Click to collapse
I agree you post is a lot more organized and detail. Going to stick your thread and replace the other one.
I rooted my Captivate and then followed a guide that I located via Google. Since I am a "noobie", I am not allowed to post the link due to anti-spam rules... So, here is how to locate the link:
1) go to Google, enter the keywords "sideload at&t captivate" without the quote marks.
2) when the search results appear, look down the page for one titled "How to Enable Sideloading of Apps on Captivate" on androidforums dot com. For me it was about the eighth result down on first page.
3) when you go to the link, you might wind up on the second or third page of comments, so click back to the first page to locate the solution...
The "big idea" behind the solution is that there is a SQLlite database containing settings which the Android OS uses to determine, among other things, if sideloading of apps is allowed. AT&T, being the kind-hearted benevolent protectors of us children to keep us from harming ourselves, has shipped their Android phones with this setting toggled to prevent sideloading. The guide above describes how to copy the database to your computer, toggle the setting "on" to allow sideloading and copy the modified settings database back to your phone.
Or at a bit more granular level, the guide describes how to:
1) at the location "/dbdata/databases/com.android.providers.settings/settings.db" on the phone is a SQLite database containing configuration settings for the android OS
2) you are copying that database to first your SD card and from there to your computer
3) on you computer you are using a tool to modify a particular setting within the database, the setting which AT&T toggles off to prevent sideloading. NOTE: The tool utilized by the guide is the Firefox browser with an add-on plugin which allows viewing / modification of SQLite databases, any tool that gives you access to view/modify a SQLite database will work fine.
4) finally, you copy the modified database back to the SD card on the phone and from there back to its "real" location where the Android OS will read it.
5) When you reboot the phone, Android reads in the modified setting and sideloading should "just work"
This is my first post, hope it is helpful...
BTW, I am a user of Linux, these days mostly Ubuntu and its derivatives. I was able to perform the entire rooting and enable sideloading operation from my Linux machine without having to use Windows!! Yippeeeee!!!
This has been bothering me for quite a while, so I conjured a little story to help sooth my frustration.
Lets say my Android device is the new tenant of a nicely formated loft, this loft being 16gb of square space. To commemorate this new exciting space my device throws a house party. Most of the Apps he invites are pretty well behaved, but some start spilling drinks, then puking on the carpet, then having an orgy, then bukkake-ing the root directory. After discovering such acts, the device politely requests the disruptive guests force quit and leave. "I need more space on my phone." the device replied as each questioned on their way out. To his disbelief, NONE of the Apps cleaned up their mess! Even worse it seems some of the classier Apps, though more organized seem to have been influenced too. Unfortunately the device is forced to live with it, as the police force stopped responding to calls in his neighborhood. One man tries, but it always returns to a mess.
I hope that entertained someone.
i know exactly how you feel... there is at least 7 unused folders just wasting space on my phone. not to mention random mp3's hidden deep within my phone...
PhxkinMassacre said:
i know exactly how you feel... there is at least 7 unused folders just wasting space on my phone. not to mention random mp3's hidden deep within my phone...
Click to expand...
Click to collapse
I hope you understand about the unused folders and NOT the bukkake-ing!!
hello, nice story!
I won't say that I am even close to being a developer but I do develop some apps and the thing that I wan't to point out is that apps do not run when they are installed or uninstalled. It's not each application job to clear up the mess it may have created but package manager's which apparently leaves some files be just in case you would like to reinstall the app later(?)...
I would propose to look for a more efficient package manager or doorman/janitor for your loft
That's why I don't invite the guy whos only existence is to make farting noises!
Very good point. However, one thing I don't know is if uninstalling through the market cleans up the SD card better than using a third party mass uninstall app. Something you may want to experiment with.
Back at it again...
Here I am again, and I still don't flippin get it!
After reading some of your comments I realized my main point kind of got glazed over(no pun intended @Scudderb)
My big issue is that there's no hierarchy in place for this crap. In windows, program files are stored in the 'Program Files' directory. In Android (and I credit google and the developers for this sloppy BS) Apps are just throwing all their **** in with my stuff on the ROOT.
How is this acceptable. Seriously, HOW? And if its all cache files and/or temporary documents than WHY THE **** ISN'T ALL THIS CRAP BEING PUT INTO A TEMP/CACHE FOLDER.
I'm PISSED! Why does every app I install get to put their own folder on the ROOT WITH the FOLDERS and FILES that actually matter to me ex: like my music, pictures, movies, documents (OH and by the way, a lot of apps developers do a REALLY ****ty job with their NAMING CONVENTIONS so the folders being created may or may not even look related to the app that put it there!)
::end rant::
My apologies for the colorful language, folder structure and hierarchy are something I design as a web designer so when I see this crap going on in my phone like the inmates are running the asylum... I get angry.
Today I was cleaning up my SD card for the umteen'th time, and found that Foursquare was dumping its temp files directly onto the root of my directory. I blew my top and had to get it out of my system... so..
A MESSAGE TO ALL THE APPS PULLING THESE SHENANIGANS: GROW UP!
The problem here is that it's hard to do it right
For custom data, files are supposed to be saved into "/data/data/com.appname/blah" (that's from the top of my head, could differ slightly). That's the directory to use for data files, but there's one big issue with it: it's on the internal memory storage. We all know that internal memory on Android (without custom ROMs) is.. limited. That's probably why most devs are using SD for larger files.
There's also the "Android/data/com.package_name.blah/blah" directory on the SD card. This directory should be used by apps to store files into and is automatically deleted when the user removes the associated app (but only when you're running Froyo or greater).
The issue with this approach is that users (and developers too, when testing the app) will lose all their data when removing an old version of a specific app. Let's say there's a bug with the Market again and the app suddenly gets uninstalled. User will have to reinstall, result: data will be all gone. That's only one of the many doom scenarios.
I can't speak for other developers, but that's more or less the reason why I started to use a common directory outside of the preferred ones when I was doing apps. It's not a great situation, I fully agree. But would you rather have your data accidentally deleted?
If anyone knows a good way to get around this issue, I'd love to know more about it...
orly
Thanks for the reply @Stripeymilk
I can think of multiple solutions:
#1 Development community adopts a universal directory for files deemed 'User' or 'Save' data that should be stored for future use. (or Google creates this for developers)
#2 Development community adopts the practice of allowing users to pick the directory users want to store an apps data in. (prompt at app's first start)
#3 Store files/data in the cloud.
#4 Users dump trash in the lobbys/living-rooms of developer's and see how quickly they find a solution.
#5 USE THE "Android/data/com.package_name.blah/" FOLDER WHEN ALL YOU'RE REALLY DOING IS STORING CACHE/TEMP FILES!!!
BOTTOM LINE: Its not hard to do it right, Its just hard to get people to do it.
You make it sound so easy
1) I'm all for it, but Google needs to put its weight behind an approach like that because otherwise people will say "I like /Data better than /data or /Mydata or /MyData". It's a bit like coding conventions: everyone wants to be different.
2) Good for techy people, not so good for "normal" users. Could make it easier with a small "file manager", but that's too much work for indie devs. Could be a nice idea for a new open source project though.
3) Great idea, could actually work if the associated account would be created automatically (like in Cut the Rope for Android with Scoreloop), but:
- The backup functionality in Android for storing data in the cloud is available for API level 8 and greater, making it of not so much use when you're targeting API level 5 or 6 and greater. Could be fixed by using something like Google Storage combined with Jets3t instead, but that would be useless for apps written in C++, like many games are.
- Cloud storage isn't free. Developers can't pay for that as it would be too expensive. If every Android user would've gotten free cloud storage from Google it could be a nice alternative, but (yeah, there's always a but) most current users don't have that.
4) If you're prepared to send your trash by plane to another country, go for it!
5) Agreed. Useful for temp data.
I'm not trying to make it sound easy, believe me I know how it isn't. I'm trying to make it sound simple, because really.. it is...
In response:
1) I agree and this is exactly what I mean by the real hard part is getting people to do it. This requires widespread endorsement by developers big and small - that this is a 'best practice' that should be adhered to. I think the gate swings both ways though.
example: Twitter didn't invent hash tags, their users did, and with its widespread adoption, Twitter adopted/implemented it too.
2) Another good point, though this process can be curated to drive the user in the right direction (holding their hand). The XBOX 360 does this for every game you play, the first thing it does is ask you which storage device you want to use for game saves.
example: in combination with solution # 1, the default folder the app saves to could be '/data/theAppsName' and the prompt could say "This app saves files to your SD CARD in '/data/theAppName'. Would you like to choose a new location?" [Yes] [No] [?]. The [Yes] option brings up a simple file manager, the [No] option uses that location, the [?] option brings up an easy to understand write up on what its asking and why its asking it.
3) We'll get there eventually, my point really was if you've got the resources, why not. Its a solution better than #1 and #2
4) I plan on sending human clones to create trash individually and exponentially
5) AMIRITE~!
In all seriousness though, thank you @Stripeymilk for taking the time to go in depth and have a conversation about this. I seriously think it doesn't take an act of Godogle to solve this (to what I beleive) is a big issue!
I can't agree more with you.
As developer (Windows, iSeries) I try to make my programs as structured and readable as possible. The same goes for the files and folders used used by the programs, but sadly, even with all the available resources, some people (colleagues) make a complete mess of it, cause "that's not/less important", as long as the program does what it's intended to do ...
It's all about the resources and people using them the right way!
Cool, didn't know about the hash tags on Twitter
Well, we're on a great site here with developers on it. If everyone here would adhere to the same standard, it could at least be a nice push to make the Android SD card world a better place.
What's the directory we're going to settle on? Any pros and cons?
When I first got my G-tab I was baffled by all the instructions and the literally thousands of posts in the forum. Even now, I haven't been able to find exactly how (or why) I should update my kernel. That said, I have TNT Lite running and I love my g-tab. Exploring the possible uses and utilities on it provides hours of fun. Now - here is my question. I stumbled on some instructions for installing the ROM and I have used those same instructions to install several patches to the Rom. I see all this commentary on Clockwork, side loading, etc. and I wonder if I am missing something. Today I just installed the .25 patch for TNT-Lite. I downloaded the rar file, unzipped it on my PC to get the Recovery folder and the update.zip file. I plugged the g-tab into the pc and switched it to usb mode. Then I moved the old recover folder and update.zip to a folder (cautious me) and put the new ones in the root. I disconnected the usb and started the g-tab in recovery mode (holding the power and volume+ key. It rebooted, applied the patch and I was done. That seems simple enough. It would seem that this would work for switching roms, applying patches and probably even upgrading the kernel (If I knew where it was and why I should do it). Am I missing something? Everything seems to work.
Sounds like you got the basics ok.
The real main reason to update the kernal as i see it is to add things like driver support for devices like gps and g3, so on, also minor fixs. If your not using your gtab for anything like this you maybe happy to stay stock. But if you like myself like to use your gtab to surf with g3 or as a sweet gps, then thats what the kernal updates allow. Im sure others can correct me if ive got anything wrong or add to what ive said.
You got the basic steps right, but installing ClockWorkMod Recovery has a lot of benefits.
First, built in backup and recovery will save your skin if the gTab get "cranky".
Second, installing ROMs and/or updates saves you a few steps. From "tar" files (TnT-lite), extract the update.zip file to a folder (I created a folder named "xda", just an example) and name it after the version of ROM/update.
CWM will flash "*.zip" file. This way you can keep multiple ROMs/updates on the card and switch between them.
CWM lets you clear cache, wipe Data partition, clear Dalvik-cache (use caution there), fix permissions and so much more! It is a great tool.
Sent from my gTablet-TnT-Lite-4.2.5 using TapatalkPro
So now we peel back another layer
OK so now the question of multiple roms comes up. I am not clear about the role of the rom - can I switch roms and keep all of my apps and data intact? I'm thinking like changing style sheets on a web page - presentation is different but the underlying data is still the same? Is it that easy?
And... if I am doing that perhaps I need to "clear cache" or "wipe data partition" but although I like to investigate new things I'm not willing to just walk up and push the big red button without knowing what it is for. So why would I "clear" or "wipe" things?
I get the impression that I could switch between ROMs just like switching between browsers on a pc - today Chrome, tomorrow, Firefox and never Internet Exploder... Is that correct? It took me quite a while to get the market working and it still doesn't work optimally but I'd hate to undo all the work I've done getting the g-tab humming along by switching roms. Can I?
So - anyone care to expound on the structure and how it all hooks together? What parts can be swapped out and what parts form the foundation? I'd hate to brick the little guy in my ignorance.
One final note if you know and you answer - where did YOU learn about this. Is there a book somewhere to read?
Thanks again for sharing your knowledge.
The Need for A Wiki
I'm in the same boat as enigma. I'm not even sure what ROM is an acronym for, though I think it means operating system. A wiki would be a big help for many people. I bet people would be glad to contribute.
Well, I don't know about Android book, especially about "hacking android book" , but this (and others) forum has plenty of reading material and guides. Not to mention people (a lot more knowledgeable and experienced than me) who will offer advice and lend a hand. And Google search comes in handy too.
Switching ROMs is almost like switching the OS, or a flavor of. Very much like switching between Linux distributions; the base OS is the same, but the overlay changes the user experience. Some things do change deep down inside, that's why is advisable to clear data.
Android, like Linux which it is based on, uses separate partitions for different parts of the OS, like boot, recovery, data, cache and user data. Plenty of write ups and discussions on the web on that.
So when flashing a ROM, you'll rewrite boot and system. Your user apps and data/preferences pertaining to those apps are stored in data partition, and since you are changing the 'OS', the apps need to be recompiled for it. Backup apps, like Titanium Backup, come extremely handy here: backup and restore apps AND appdata with a few clicks.
Backups are stored on sdcard, which is a lot like Linux /home directory, and do not get wiped during flash. Also the CWM (sometimes called Nandroid) backups are also stored there. A backup-of-the-backup is always a good habit (copy of /sdcard to your PC for safekeep).
This is just a quick rundown, hopefully that answered some of the questions.
There is a world of information available out there in "ether-world", Google is your friend.
[EDIT]:
Some links:
http://android-dls.com/wiki/index.php?title=Main_Page
http://lifehacker.com/#!5596108/how-to-choose-the-right-android-rom-for-you
and of course:
http://forum.xda-developers.com/forumdisplay.php?f=841
(use the search on top of the screen)
Sent from my gTablet-TnT-Lite-4.2.5 using TapatalkPro
Doesn't my sticky on how to flash the roms help at all? I can try to make it clearer if you have suggestions.
http://forum.xda-developers.com/showthread.php?t=892090
TeamSpeed said:
Doesn't my sticky on how to flash the roms help at all? I can try to make it clearer if you have suggestions.
http://forum.xda-developers.com/showthread.php?t=892090
Click to expand...
Click to collapse
Yes, your Sticky is as clear as Florida sky.
I just installed Thumb Keyboard on my gTab last night and I guess I got carried away getting used to it!
Yes, I have found some very good step by steps (reflashed to vegan after reading that one). Step by steps are great but I 'd like to understand why I'm doing it. The market fix...I can follow the steps and it works but why? I wish I had time to research all these things but there are so many forums,so many posts to read! The explanation that did surface in this thread was great though. Thanks. I'll keep asking questions. There are a lot of smart people out there!