summaryrefslogtreecommitdiffstats
path: root/cmds/installd
Commit message (Collapse)AuthorAgeFilesLines
* Fix cache deletion for secondary usersAmith Yamasani2012-10-013-5/+5
| | | | | | Bug: 7249419 Change-Id: Idbc0f9994508059ebf5055aea961b87e08b3673a
* Fix issue #7202950: After clearing data, clear data button is still enabled.Dianne Hackborn2012-09-271-8/+30
| | | | | | | | Count the lib symlink against the app's code size. Also be sure to look at the new separate lib path for apps, and tweak the size counting to also count the size of directory entries. Change-Id: I4b0fd5771f249faa05fd72f08062df885902cc97
* Fix issue #6926562: Ensure all multi-user cache files are managed correctlyDianne Hackborn2012-09-241-5/+24
| | | | | | | | | | Now we correctly iterate through the different user cache dirs. Also update documentation to describe the new cache pruning behavior, and deprecate the file modes for making files world readable/writable which we really don't want people using any more. Change-Id: I3708df3ddc697b1f5c511143cce7cc40a5a3d0bd
* Remove "unlinklib" command from installdKenny Root2012-09-113-125/+30
| | | | | | | | | | | unlinklib is no longer necessary since libraries are now either stored in an ASEC container or in /data/app-lib Replace lib directory with a symlink to the /data/app-lib directory even if it's a dangling link. That way developers don't name something "lib" in their directory which gets blown away during an update. Change-Id: I142cf13dba9c13aafbaf0ff8d5e9872cbf1cc910
* Remove "protect" command from installdKenny Root2012-09-092-37/+0
| | | | | | No one uses the "protect" command anymore, so remove it from installd. Change-Id: Ia990bae6f95cd6e317496f5dd173ec15164d7164
* installd: fix forward locking symlinkNick Kralevich2012-09-071-7/+7
| | | | | | | | installd was not creating a compatibility symlink when installing a forward locked application. Fix. Bug: 7121527 Change-Id: Ied507ab2b759d8658af563e6ac8f0dbb0d286cce
* installd: reduce privileges.Nick Kralevich2012-09-042-6/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | Make installd run with fewer privileges. This will help make exploitation of installd based vulnerabilities more difficult to perform. installd now runs with the following privileges: * CAP_DAC_OVERRIDE * CAP_CHOWN These two capabilities are needed to add and remove files from application's home directories. * CAP_SETUID * CAP_SETGID These permissions are needed to further drop privileges when running dexopt as the application UID. "installd" no longer runs with full root privileges. It cannot, for example, mount and unmount filesystems, install modules, perform direct I/O, etc. Change-Id: Ib407e41e5e4c95f35a5c6a154812c5e8ae3006ed
* Shared OBB storage across users.Jeff Sharkey2012-08-294-67/+59
| | | | | | | | | | To avoid downloading large OBB files separately for each user, provide a shared view of /sdcard/Android/obb to all apps. Added upgrade step to migrate the owners existing OBB files to become the default view. Bug: 7008879 Change-Id: I199321552fa7d4b97d5ed7fc3b3bc41f23618601
* Ensure /data/media before trying to upgrade.Jeff Sharkey2012-08-271-0/+5
| | | | | | | | Most devices create the path in their init.rc, but create it just to be sure. This fixes emulator boot failure. Bug: 7058844 Change-Id: Icab3ce11c4304d972d13e1d9a0c269cfe05b9370
* Fix permissions on cloned data dirsAmith Yamasani2012-08-241-0/+5
| | | | | | This makes the downloaded apk visible to the package installer Change-Id: I0f60cf279a3c6a08c7479f93ef9135d7428f2385
* Improve multi-user app management.Dianne Hackborn2012-08-213-6/+7
| | | | | | | Introduce API to get per-user storage information, keep track of services associated with users, and various small cleanup. Change-Id: I5d4e784e7ff3cccfed627d66a090d2f464202634
* Create media paths for existing users.Jeff Sharkey2012-08-161-0/+29
| | | | | Bug: 6925012 Change-Id: I23bd9187217645cf538e074527c143a911a61299
* Multi-user external storage support.Jeff Sharkey2012-08-154-25/+172
| | | | | | | | | | | | | | | Emulated external storage always has multi-user support using paths like "/data/media/<user_id>". Creates and destroys these paths along with user data. Uses new ensure_dir() to create directories while always ensuring permissions. Add external storage mount mode to zygote, supporting both single- and multi-user devices. For example, devices with physical SD cards are treated as single-user. Begin migrating to mount mode instead of relying on sdcard_r GID to enforce READ_EXTERNAL_STORAGE. Bug: 6925012 Change-Id: I9b872ded992cd078e2c013567d59f9f0032ec02b
* am b3e4b46d: am e583bcf1: Merge "Explicitly set lib dir permissions during ↵Kenny Root2012-07-311-1/+6
|\ | | | | | | | | | | | | unlink" into jb-dev * commit 'b3e4b46db028c35d6d12c5f8f25b0463833fb51d': Explicitly set lib dir permissions during unlink
| * am e583bcf1: Merge "Explicitly set lib dir permissions during unlink" into ↵Kenny Root2012-07-311-1/+6
| |\ | | | | | | | | | | | | | | | | | | jb-dev * commit 'e583bcf13c13957bdf20f8bc5e23258b083b2f51': Explicitly set lib dir permissions during unlink
| | * Explicitly set lib dir permissions during unlinkKenny Root2012-07-301-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | The default umask changed, so we have to explicitly set the mode of the lib directory when we create it in unlinklib. Bug: 6857022 Change-Id: I06fc3f29e99d686bbbb96184d8c314d4cc57e9fe
* | | am fa6e1ea7: am 2c932143: Merge "s/LOG/ALOG/ in HAVE_SELINUX blocks"Nick Kralevich2012-07-201-4/+4
|\ \ \ | |/ / | | | | | | | | | * commit 'fa6e1ea773a74aa6a996a783ff16c495ab3cc822': s/LOG/ALOG/ in HAVE_SELINUX blocks
| * | s/LOG/ALOG/ in HAVE_SELINUX blocksJoshua Brindle2012-07-101-4/+4
| | | | | | | | | | | | | | | | | | | | | The latest push changed LOG(E|V) to ALOG(E|V) but it was not updated in HAVE_SELINUX blocks. Change-Id: I626588589dd00775ba29f2a256ac29e481598dc3 Signed-off-by: Joshua Brindle <jbrindle@tresys.com>
* | | Improve cleanup of file caches.Dianne Hackborn2012-07-124-47/+578
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This rewrites installd's code for deleting cache files to be better: - Isn't really stupid about just deleting directories in the order they are found on the filesytem; now collects all cache files and sorts them by mod time to determine which to delete. - Also deletes cache files in /data/media and for all users. This also tweaks DeviceStorageMonitor to be a little smarter about deciding when to flush cache files, having upper and lower limits that it allows memory to get down to and then flash files to reach the higher free storage limit. This should reduce the amount that we perform flushing when starting to reach the storage limit. Finally add a new pm command to force a cache flush. Change-Id: I02229038e1ad553d1168393e5cb6d5025933271d
* | resolved conflicts for merge of 4de60b26 to jb-dev-plus-aospKenny Root2012-06-181-13/+16
|\ \ | |/ | | | | Change-Id: Id1b1847a3ab5c0f51ac8a732fce5ba12e5810259
| * Make lib dir before changing ownership of app dirKenny Root2012-06-141-5/+8
| | | | | | | | | | Bug: 6668897 Change-Id: I8998a50359892277b15e80b5b5590ff94b125467
* | am 63dd4c65: am 60b3d59d: Merge "Modify installd to set the SELinux security ↵Kenny Root2012-06-082-1/+45
|\ \ | |/ |/| | | | | | | | | context on package directories." * commit '63dd4c65c41187967ba0828d386117f90020840e': Modify installd to set the SELinux security context on package directories.
| * Modify installd to set the SELinux security context on package directories.Stephen Smalley2012-01-242-1/+45
| | | | | | | | | | | | | | installd already sets the UID/GID/mode for package directories. Extend it to also call libselinux to set the SELinux security context. Change-Id: I22d38e3e7facdfcee20a34bf30f1412dbb87761f
| * Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)Steve Block2012-01-193-84/+84
| | | | | | | | Change-Id: I1de629b4632a4b3187ca1a28d6416daccd35f924
| * Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)Steve Block2012-01-192-19/+19
| | | | | | | | Change-Id: I8fbdfa7a7581f481968dbb65aa40f7042936d7cb
| * Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)Steve Block2012-01-192-5/+5
| | | | | | | | Change-Id: I26f76452ac49e2890b14d133c065493d8df0fb4a
| * Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)Steve Block2012-01-191-10/+10
| | | | | | | | Change-Id: I5321ebd12e9c6248a108529e82c4e1af2a4405e3
* | Fix issue #6295373: "Package com.google.android.apps.authenticator2 has...Dianne Hackborn2012-06-073-2/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...mismatched uid: X on disk, Y in settings" errors on Froyo and Gingerbread Deal more gracefully with the uid changing in three ways: 1. If the uid on disk has become root, then have installd change it to the application's uid. This is to correct a potential case where installd was interrupted while linking or unlinking the libs dir, during which it temporarily changes the owner of the dir to root so that a malicious app can not get in its way. So if the uid on disk has become root, we assume we can safely just change it back to the correct uid. 2. When scaning packages at boot, use the same "delete and rebuild data directory" code for third party applications as we have for system applications. This allows us to at least end up in a state where the app will run, even if its data is lost. 3. But we really don't want to get in to case 2, so if an application update is being installed and we find that the uid we now have for the app is different than the one on disk, fail the update. This will protect against for example a developer changing the sharedUserId of their app and getting into this bad state. Bug: 6295373 Change-Id: Ic802fdd818ac62449ff3c61d1fff1aa4d4942f39
* | resist umask changes, make dirs 0711Nick Kralevich2012-03-231-1/+4
| | | | | | | | | | | | | | | | | | | | Make sure /data/user directory permissions get explicitly set regardless of the system umask. Change directory permissions to 0711. No need for read permissions. Bug: 3272072 Change-Id: Ida7f3c6656f4e0c9d0a9f7648491cc853c4e44ca
* | Multi-user - 1st major checkinAmith Yamasani2012-02-033-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switching activity stacks Cache ContentProvider per user Long-press power to switch users (on phone) Added ServiceMap for separating services by user Launch PendingIntents on the correct user's uid Fix task switching from Recents list AppWidgetService is mostly working. Commands added to pm and am to allow creating and switching profiles. Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
* | Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-083-84/+84
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* | Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-062-19/+19
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* | Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-042-5/+5
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
* | am 7f36d421: am 5a7c9176: Merge "Fix free_cache to actually work" into ics-mr1Kenny Root2011-12-014-18/+84
|\ \ | |/ | | | | | | * commit '7f36d4217269e79f8409c46f12f10464a1f585ea': Fix free_cache to actually work
| * Fix free_cache to actually workKenny Root2011-12-014-18/+84
| | | | | | | | | | | | | | | | | | | | This broke with some other path-related changes, so it was scanning for /data/*/cache instead of /data/data/*/cache Also remove redundant call to restat Bug: 5686310 Change-Id: Id1661f0f1337858fc9ead53c56ab7557f421c591
* | Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-10/+10
|/ | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Remove the simulator target from all makefiles.Jeff Brown2011-07-112-8/+0
| | | | | | Bug: 5010576 Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
* Plumb information from the framework about asec container size.Dianne Hackborn2011-06-283-6/+20
| | | | Change-Id: Ie0ec3cb6d463aefa341a8cbea80be790451ba5e3
* resolved conflicts for merge of e2aa0490 to masterDianne Hackborn2011-06-091-6/+6
|\ | | | | | | Change-Id: Id0448a1598fc93aca0652b29253e02586e35a067
| * Work on issue #4518815: Compatibility mode introduces compatibility ↵Dianne Hackborn2011-06-081-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regression... ...for Market App iRunner There were a lot of serious issues with how we updated (or often didn't update) the display and resource state when switching compatibility mode in conjunction with restarting and updating application components. This addresses everything I could find. Unfortunately it does *not* fix this particular app. I am starting to think this is just an issue in the app. This change does fix a number of other problems I could repro, such as switching the compatibility mode of an IME. Also a few changes here and there to get rid of $#*&^!! debug logs. Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
* | Merge "Plumbing in PackageManager and installd for multi-user support."Amith Yamasani2011-04-194-14/+178
|\ \
| * | Plumbing in PackageManager and installd for multi-user support.Amith Yamasani2011-04-154-14/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Create /data/user directory and symlink /data/user/0 -> /data/data for backward compatibility - Create data directories for all packages for new user - Remove data directories when removing a user - Create data directories for all users when a package is created - Clear / Remove data for multiple users - Fixed a bug in verifying the location of a system app - pm commands for createUser and removeUser (will be disabled later) - symlink duplicate lib directories to the original lib directory Change-Id: Id9fdfcf0e62406a8896aa811314dfc08d5f6ed95
* | | Make installd resistant to umask changes.Nick Kralevich2011-04-141-0/+11
|/ / | | | | | | | | Bug: 3272072 Change-Id: Ic2d241afcb4d0dabd63fcdadf13b2d48b7f398e8
* | Update installd to allow multiuserKenny Root2011-04-057-88/+850
|/ | | | | | | | | | | | | | | * Add ability to select different personas to generate the path to be created. * Move hardcoded paths to read from init's set environment. * Add unit tests for all the utility functions that build strings to make sure they're correct. * Fill in persona with "0" all the time now. Will be plumbed through in later CL. Change-Id: I0a7f6e3640cb6b052f8823080886ee79e90b679f
* Remove defunct secure FS workKenny Root2011-02-023-118/+40
| | | | | Bug: 3365047 Change-Id: I68eaea295881f5431907e1b93bdd73e644e84aa5
* Move disk usage utilities to its own libraryKenny Root2010-11-302-56/+11
| | | | | | | | Disk usage calculation will happen in more places now, so move the installd calculation utilities out to its own library that only gets built for the target. Change-Id: Idceb6bd663ca6ab3d38fa00e57ee74a25b784855
* Exit immediately on some linklib failuresKenny Root2010-10-211-4/+2
| | | | | | | | If the library couldn't be printed to the string, installd should fail early instead of trying to chmod() back to uninitialized stat struct. Bug: 3121721 Change-Id: I8a3604954ae657a1e07c1ad8d5569aa80aff9e0a
* Symlink application lib directory when on SD cardKenny Root2010-10-073-0/+168
| | | | | | | | This will help legacy games that use dlopen() to directly access the /data/data/<app>/lib directory before the ApplicationInfo.nativeLibraryDir was part of the API. Change-Id: Ie9f3e7239b6334708b5d086ffafe66a507f6d9da
* Allow installd to handle large partitionsKenny Root2010-09-073-21/+27
| | | | | | | Use int64_t because we're RPCing over to Java which uses a Long to represent the filesystem space. Change-Id: I842b2cf9f2ff8f980ff5895c1c8eb9ebefa1ea31
* Add more debugging to installdKenny Root2010-08-042-3/+13
| | | | | | | If a command to installd fails, it would be nice to know exactly why. Log failures and the errno associated with the failures. Change-Id: Ia3122675f243037c556d3a49d06da7e03b8c59f6