90 Commits

Author SHA1 Message Date
Android (Google) Code Review
7b38f73a4b am ae18ca5c: Merge change 20140 into donut
Merge commit 'ae18ca5ceb7ebe376288c8c7653d2c3875f1d18e'

* commit 'ae18ca5ceb7ebe376288c8c7653d2c3875f1d18e':
  Work on issue #2030135: Device sluggish
2009-08-05 18:39:48 -07:00
Dianne Hackborn
de42bb61ad Work on issue #2030135: Device sluggish
This adds some new debugging code to make it easier to see why a process is at
a certain oom_adj level -- for example telling you that a certain other process
has a binding to a certain one of its services.  This has helped a lot in
identifying cases where processes are holding references to other processes that
they don't need and thus not allowing the system to get memory it needs.

Also fix a few problems with leaking entries on the service restarting and
service stopping lists.
2009-08-05 15:57:16 -07:00
Android (Google) Code Review
cda5ad5b70 am 9b91d78a: Merge change 8911 into donut
Merge commit '9b91d78a21f6e66f571169f2c6f2f94e638511e8'

* commit '9b91d78a21f6e66f571169f2c6f2f94e638511e8':
  Fix issue #1999179: search -> click result -> press home = search dialog is shown then hidden
2009-07-29 16:45:14 -07:00
Dianne Hackborn
a6ddc8af22 Fix issue #1999179: search -> click result -> press home = search dialog is shown then hidden
Re-arrange various things to ensure that the search dialog is told about system windows being
closed before it is told about the navigation back to home.
2009-07-28 17:55:13 -07:00
Android (Google) Code Review
b3c82efb47 am 1dd6936a: Merge change 8728 into donut
Merge commit '1dd6936a862be97efca02e4b7582a9fca1fcc269'

* commit '1dd6936a862be97efca02e4b7582a9fca1fcc269':
  Fix resource code and version attributes
2009-07-28 10:21:45 -07:00
Suchi Amalapurapu
261e66acd1 Fix resource code and version attributes
Create a new package setting object for updated system apps rather than moving
around the same setting. This updates the resource, code and version correctly.
For updating system packages, disable the package first which removes the entry
from internal structures, create a new package setting, add it to list of user id's
then rest of installation steps, kill the process if needed via ActivityManager
then add this setting if everything was successful. This also fixes issues with
updating values prematurely.

When a new version of system package is available via OTA, just physically remove
entries for pkg. Note that the component and other info will be eventually updated
later on when scanning the package.
Also move certificate verification slightly ahead before scanning packages.

Some null checks

New api's in ActivityManager to kill an application pkg before finishing installation
2009-07-28 10:21:38 -07:00
Android (Google) Code Review
35d7a94c33 am de08cdc0: Merge change 8262 into donut
Merge commit 'de08cdc0a56ab8d48a226dadef02740520c274b7'

* commit 'de08cdc0a56ab8d48a226dadef02740520c274b7':
  Implement the device ConfigurationInfo.reqGlEsVersion field.
2009-07-23 13:29:35 -07:00
Jack Palevich
b90d28cf95 Implement the device ConfigurationInfo.reqGlEsVersion field.
This was previously hard-coded to 0. Now set to the value of the
"ro.opengles.version" system property. The default value is
ConfigurationInfo.GL_ES_VERSION_UNDEFINED.
2009-07-22 15:35:24 -07:00
Dianne Hackborn
c00c04d7d8 am 11b822d2: Simplify density compatibility to a boolean.
Merge commit '11b822d2a91ea17c34c0cb1c11e80a9a30d72864'

* commit '11b822d2a91ea17c34c0cb1c11e80a9a30d72864':
  Simplify density compatibility to a boolean.
2009-07-22 12:01:19 -07:00
Dianne Hackborn
11b822d2a9 Simplify density compatibility to a boolean.
Instead of a list, we now just have a single boolean indicating whether an
application is density aware, and this set set to true by default as of
Donut.
2009-07-22 11:58:31 -07:00
Android (Google) Code Review
71effba5ac am 6fb608ee: Merge change 7854 into donut
Merge commit '6fb608ee67c3ad82baf2253b87b63fff8907992a'

* commit '6fb608ee67c3ad82baf2253b87b63fff8907992a':
  Issue #1884058 (Need to only record frequency and duration for selected Google apps)
2009-07-21 14:38:26 -07:00
Android (Google) Code Review
6fb608ee67 Merge change 7854 into donut
* changes:
  Issue #1884058 (Need to only record frequency and duration for selected Google apps)
2009-07-21 11:10:16 -07:00
Android (Google) Code Review
a695d185f1 am ef1a92ab: Merge change 7961 into donut
Merge commit 'ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0'

* commit 'ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0':
  Bluetooth at command tracking.
2009-07-20 23:33:44 -07:00
Amith Yamasani
3f7e35c2c7 Bluetooth at command tracking. 2009-07-20 12:38:55 -07:00
Dianne Hackborn
9fdbf6ae46 Issue #1884058 (Need to only record frequency and duration for selected Google apps)
Quick and dirty solution: a new --packages argument allows you to specify an explicit
set of packages to include in the dump.  There is also now a new GServices setting
that can provide a value for it.
2009-07-19 14:18:51 -07:00
Dianne Hackborn
265c9d2a14 am fae76f5b: Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard
Merge commit 'fae76f5bdeed68efd85805db143b0426de92f7e0'

* commit 'fae76f5bdeed68efd85805db143b0426de92f7e0':
  Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard
2009-07-16 17:54:44 -07:00
Android (Google) Code Review
019de98b84 am eb09c6a0: Merge change 7568 into donut
Merge commit 'eb09c6a07abf58b4da2c4baf3800a1f96e3b0731'

* commit 'eb09c6a07abf58b4da2c4baf3800a1f96e3b0731':
  Issue #1969025: need api for launching intent as if it were coming from another component
2009-07-16 17:54:31 -07:00
Dianne Hackborn
fae76f5bde Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard 2009-07-16 15:15:30 -07:00
Dianne Hackborn
2d91af0608 Issue #1969025: need api for launching intent as if it were coming from another component
And now there is.
2009-07-16 13:34:33 -07:00
Dianne Hackborn
dace230043 resolved conflicts for merge of b06ea706 to master 2009-07-14 12:51:00 -07:00
Dianne Hackborn
b06ea70653 Add reporting of activity movement for search manager.
This adds a new API with the activity manager to find out about movement between
activities.  For my sanity, the old IActivityWatcher is now renamed to
IActivityController, and the new activity movement interface is named
IActivityWatcher.

This changes the search manager itself to use the new API to manage its state.
Note that there are still problems when going back to the search dialog after
it was hidden -- the suggestions window no longer appears until you explicitly
dismiss and re-show it.
2009-07-14 11:37:11 -07:00
Dianne Hackborn
54a26bc85f resolved conflicts for merge of 889c2d37 to master 2009-07-10 16:05:59 -07:00
Dianne Hackborn
854060af30 Fix bug #1873249i: Apps can DoS/brick device
This is the problem where various things are listening for broadcasts
(such as battery status, PIN/PUK/Network) that an application can send
to cause harm to the system.

Solving this is tricky because many of these broadcasts are sticky,
and I have never figured out how to do permissions with sticky
broadcasts in a sane way.  So instead, I am going to punt on the
general problem and just brute force it:

There is new a way for system components to declare specific
broadcast actions to be protected, which means that only the system
and the phone can send them.  This is good enough for now.  None
of it is exposed in the public API so we can make something a little
less stupid in the future if we ever need to.
2009-07-09 18:14:31 -07:00
Dianne Hackborn
e3f054411b resolved conflicts for merge of 2af632f8 to master 2009-07-09 12:15:46 -07:00
Dianne Hackborn
2af632f87d Add new <path-permission tag for use by global search.
This adds a new <path-permission> tag you can use inside of a <provide>
to define additional path-based permissions that broaden the global
read and write permissions.  The initial use for this will be global
search, so that a content provider that is protected by permissions
can make a part of itself available to global search under another
permission.  This addresses the issue with global search not being able
to request permissions it would need of providers it doesn't know
about at build time.
2009-07-08 18:08:13 -07:00
Dianne Hackborn
5d16cd0462 am d7cd29da: Add facility to run setup wizard after an update.
Merge commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1'

* commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1':
  Add facility to run setup wizard after an update.
2009-07-03 08:58:10 -07:00
Android (Google) Code Review
d96e0b0cf1 am 6e1647a2: Merge change 5829 into donut
Merge commit '6e1647a212317f4ee8bcc23948b6621a59172954'

* commit '6e1647a212317f4ee8bcc23948b6621a59172954':
  Fix issue #1673793: Theme styles don't apply.
2009-07-01 22:43:58 -07:00
Dianne Hackborn
d7cd29da91 Add facility to run setup wizard after an update.
The system now keeps a tag of the last version (just an arbitrary string)
that the setup wizard was run for.  If this is different than the current
one in the setup wizard, then setup is launched at boot.

This introduces a new intent action for the part of the setup wizard that
gets run for an ungrade, which the system uses to find its current version
tag for comparing against what was last stored.  It is up to the launched
setup activity update the stored setting to reflect its current value,
once it is happy.
2009-07-01 20:20:47 -07:00
Dianne Hackborn
de7faf658c Fix issue #1673793: Theme styles don't apply.
It turns out this was not a problem in the resource code at all.  Rather,
the system process has a cache of pre-loaded attributes it uses to avoid
continually reloading things as it needs them.  Well it turns out this
cache wasn't flushed after a package was uninstalled or a configuration
changed, so you could re-install an app where you change its style resources
so its theme now points to one that is inconsistent in the cache.

This is mostly a problem for developers, where they continually install
new versions of an app where resources have changed.  This could possibly
show up when updating an app on a normal phone, although the problem would
eventually correct itself since this cache uses weak references.

Anyway, the cache is now reworked to be flushed appropriately.

This change also includes an update to aapt to be able to dump the
contents of bags in resources.
2009-06-30 13:27:30 -07:00
Christopher Tate
f35b2f382c am 8a27f923: Don\'t crash in various ways when using backup services too early
Merge commit '8a27f923eb9dbbe3c2d0184e82d9f1a98f1e4cdc'

* commit '8a27f923eb9dbbe3c2d0184e82d9f1a98f1e4cdc':
  Don't crash in various ways when using backup services too early
2009-06-29 16:36:52 -07:00
Christopher Tate
8a27f923eb Don't crash in various ways when using backup services too early
BackupManager now no longer tries to use a null service binder if it's used
early during the boot process.  ActivityManagerService no longer tries to
dereference null pointers if bind/unbind semantics get out of step due to things
being run too early.
2009-06-26 12:20:10 -07:00
Android (Google) Code Review
2383415ab9 am f881762f: Merge change 5351 into donut
Merge commit 'f881762f97c74253bbc7f629380bb65739457041'

* commit 'f881762f97c74253bbc7f629380bb65739457041':
  Add a method to Process to get uid for a pid.
2009-06-25 00:47:51 -07:00
Amith Yamasani
819f928f6a Add a method to Process to get uid for a pid.
Use the uids to track native processes. Cache the uids to avoid
checking /proc every time.
2009-06-24 23:26:29 -07:00
Dianne Hackborn
afed82bca9 am 9c8dd55a: Fix bug 1829561 ("am profile" with bad filename kills process).
Merge commit '9c8dd55a9d829c29a3feee9469d8c2f27a9f5516'

* commit '9c8dd55a9d829c29a3feee9469d8c2f27a9f5516':
  Fix bug 1829561 ("am profile" with bad filename kills process).
2009-06-24 16:25:26 -07:00
Dianne Hackborn
9c8dd55a9d Fix bug 1829561 ("am profile" with bad filename kills process).
The am command is now the one that takes care of opening the target file,
handling the opened file descriptor to the process that will be profiled.
This allows you to send profile data to anywhere the shell can access, and
avoids any problems coming up from the target process trying to open the
file.
2009-06-24 16:23:14 -07:00
Android (Google) Code Review
4c74637833 am 3e376a74: Merge change 5171 into donut
Merge commit '3e376a74b3edd8c311e8d69ca5baf986c9da4a06'

* commit '3e376a74b3edd8c311e8d69ca5baf986c9da4a06':
  Track native processes and airplane mode.
2009-06-24 15:45:49 -07:00
Amith Yamasani
32dbefda71 Track native processes and airplane mode.
Turn signal strengths on/off when toggling airplane mode.
2009-06-24 11:17:36 -07:00
Jacek Surazski
5a12373277 Add exception line number to ApplicationErrorReport 2009-06-24 16:12:42 +02:00
Android (Google) Code Review
4c27977034 am 722baf5e: Merge change 5014 into donut
Merge commit '722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db'

* commit '722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db':
  Fix issue #1933587.  Perform dexopt of instrumentation .apks.
2009-06-22 22:04:53 -07:00
Dianne Hackborn
d7f6daa5d1 Fix issue #1933587. Perform dexopt of instrumentation .apks. 2009-06-22 17:06:35 -07:00
Jacek Surazski
82a73dfb27 GoogleFeedback handles errors in core apps.
Adds support for system properties:
  ro.error.receiver.system.apps - default error report receiver for system apps
  ro.error.receiver.default - fallback error report receiver
2009-06-19 22:05:02 +02:00
Dianne Hackborn
5c1e00b14d Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.
- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.
  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.

- Change the API for resize compatibility mode to be a bit in the flags field, instead
  of a separate boolean.

- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is
  only enabled for "eng" builds.  When in this mode, the activity manager will make
  sure that a dexopt has been done before loading an .apk into a process, and will
  try to avoid displaying ANRs if they are due to the dexopt causing some operation
  to take longer than it normally would (though I make no guarantees about this
  totally working).

- Add API to Context to get the ApplicationInfo for its package, for easy access to
  things like targetSdkVersion.
2009-06-18 17:10:57 -07:00
Dianne Hackborn
c14b9ccdf1 Extend Intent/Uri conversion for use by Browser
This introduces a new Uri form of Intent with an "intent:" scheme, and a
corresponding update to the parser to handle these, so that the browser
can use this generic facility for starting activities based on the links
that are clicked and allow for web pages to link to arbitrary intents.

There is also a new "package" field on Intent which allows you to limit
the components it finds to a given package.  This replaces the new method
that was added to PackageManger for doing this when resolving activities,
and implements it for all Intent queries against the package manager.
2009-06-17 21:48:14 -07:00
Dianne Hackborn
760ec4a095 Fix issue #1924851
We now only increment the launch count when we are launching from one package
to another.  Also the individual components in a package now have a count
of the number of times they have been entered, which likewise is only updated
when going to one component from another.

This requires a new data format (all old data is wiped) and new checkin
dump format (tools must be updated to read it).
2009-06-17 21:36:52 -07:00
Jacek Surazski
f829a78f6c add exception message to ApplicationErrorReport
useful signal for clustering
2009-06-17 21:48:17 +02:00
Suchi Amalapurapu
1ccac75e1f Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app
Create a new public IntentSender class that can be used by PackageManager instead.
This new class uses IIntentSender internally and can only be created by PendingIntent for now.
Provide a new getIntentSender api in PendingIntent to create an instance of this class.
Move IIntentSender and IIntentReceiver from android.app to android.content
Change imports of IIntentSender and IIntentReceiver to reflect the new package name
The PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage
once the older api(which has been deprecated) will be removed shortly.
2009-06-17 11:31:26 -07:00
Dianne Hackborn
82f3f0008e Fix many of the ANRs introduced by scheduling classes.
We weren't bumping the oom_adj of processes receiving a registered broadcast.  Previously
this wasn't a problem, because those processes are allowed to have their oom_adj
managed by whatever else is in them and if the registered receiver goes away no problem.
But now this is also controlling the scheduling class, so we need to bump them up.

This is probably good anyway, since the developer has the same assurance of their process
not being killing in the middle of registered receivers like it had always been for
manifest receivers.

Also fixed a small issue where we were not recomputing the oom_adh after finished with
a broadcast.
2009-06-16 18:49:05 -07:00
Dianne Hackborn
75b038545e Fix bug #1812041: activity manager crash with bad args.
There was old code that would kill the system process in some cases when there
was a bad activity token.  This is really no longer used, except in a few
places where it allows apps to kill the system.  So just get rid of it and
make the world a better place.
2009-06-12 15:43:26 -07:00
Christopher Tate
c7b31e3c3c The rest of the basic flow for restore
Also moved the processOneBackup() implementation into the Thread class that runs
the backup sequence.
2009-06-10 16:43:50 -07:00
San Mehat
9438de2001 ActivityManager: Ensure that we clear the calling process identity around calls to Process.setProcessGroup().
Signed-off-by: San Mehat <san@google.com>
2009-06-10 09:12:37 -07:00