Commit Graph

1265 Commits

Author SHA1 Message Date
Elliott Hughes
6d4b1e24ae Switch Process.myTid over to the libcore JNI too.
Change-Id: I80eaecff014fabf809f4be3c9ee8b26aa64bf0cf
2013-07-31 17:38:11 -07:00
Jeff Hao
406ec15647 Replace native Process getpid/getuid with calls to libcore equivalents.
The Process natives were getting called were getting called while
handling a jdwp packet before the vm had a chance to register them.

(cherry-pick of 5bce6a308fc8a3c1e449cf905b8b6e8ace4ef3e2.)

Change-Id: Ia2b4f79b11e427283a712b2d0c52948f394640bf
2013-07-31 17:19:23 -07:00
Elliott Hughes
e16a21c6b4 resolved conflicts for merge of 4a59376d to stage-aosp-master
Change-Id: I0e40180b46dc58781c218b8d382299dab73d49cc
2013-07-09 15:25:23 -07:00
Elliott Hughes
befd0b1bdf Track libcore API change.
Change-Id: Ib818a7f21325c5f918bf497033a90d76b25ec9e7
2013-07-09 14:46:18 -07:00
Daniel Sandler
5d6dc42528 Merge "Filter out dangerous CharSequences in Notification." into jb-mr2-dev 2013-05-09 00:28:11 +00:00
Daniel Sandler
dcbaf661bf Filter out dangerous CharSequences in Notification.
If an app mistakenly puts some Parcelable implementation of
CharSequence in here, Bundle will try to marshal the derived
class, which is going to be bad news when we try to unparcel
it in another process.

Additionally add a proper stack trace to unparceling
failures (otherwise you have no idea where the bad parcel
was being used).

Bug: 8725271
Change-Id: Ide19b986d65c7f47929cf2dde4e62b762c469fee
2013-05-08 17:06:35 -04:00
Jamie Gennis
d28653df65 Merge "Add the trace tag for Dalvik." into jb-mr2-dev 2013-05-08 01:21:33 +00:00
Jamie Gennis
0cc84cefdd Add the trace tag for Dalvik.
Bug: 8856374
Change-Id: Id0fbdb8f7a487c5831edcd2c6c64a7da63aec03d
2013-05-07 15:23:06 -07:00
Dianne Hackborn
5b88a2fd7b Debugging help for issue #8734824: WATCHDOG KILLING SYSTEM PROCESS
IActivityController has a new callback which the Watchdog calls
when it detects that the system process is hung.  This may be
use full monkey.  All hail the monkey!

Also add a new private feature to Binder to be able to turn off
all incoming dump() calls to a process.  The watchdog uses this
when it reports it is hung, so that if someone, say, wants to
collect a bug report at this point they won't get stuck waiting
for things that are all busted.

Change-Id: Ib514d97451cf3b93f29e194c1954e29f948c13b1
2013-05-06 11:16:18 -07:00
Amith Yamasani
2555dafce8 Hide isLinkedUser()
It's not the best API to use to determine anything. Defer to other
APIs such as UserManager.getUserRestrictions()

Bug: 8720520
Change-Id: Ie49589056ab52b4fdbcc736f8cdefadb8ba5d9d8
2013-04-25 13:39:27 -07:00
Ian Rogers
282a7e1b1d Adding matching @deprecated.
Bug: 8657266

(Cherry-pick of c2a3adbd56)

Change-Id: Idbd22dc647f11441d15da12eb23723539768cf4c
2013-04-23 11:36:28 -07:00
Dianne Hackborn
d2eeed635d JB MR2 == API 18.
Change-Id: Ia62a81f8ebc79ae0e01b181f4ef47ef192c71592
2013-04-22 13:28:47 -07:00
Jeff Sharkey
48749fc78a Environment should only warn when asked.
Instead of warning on Process.SYSTEM_UID, which is also used by the
Settings app, change to have the parent process explicitly ask for
warnings.

Bug: 8667286
Change-Id: Ib26676694a4041ff4e6d3ffdcc14055b7eba13c7
2013-04-19 13:27:43 -07:00
Ian Rogers
c2a3adbd56 Adding matching @deprecated.
Bug: 8657266
Change-Id: Idbd22dc647f11441d15da12eb23723539768cf4c
2013-04-19 11:31:48 -07:00
Jeff Sharkey
b81440bd9b Deprecate StatFs methods returning small values.
Bug: 8656794
Change-Id: Ic904bd1bc016ef48b5a304b7c68250afe23e98bc
2013-04-19 10:52:42 -07:00
Jeff Brown
8b60e45147 Fix change of behavior in Looper.quit().
It seems some applications rely on Looper.quit() terminating the
loop immediately without processing all messages.  Rather than
risk breaking them, make the safer behavior optional.

Also take care to properly drain the message queue before quitting
so that all of the Message instances are recycled.  This may
help release storage sooner in case the Looper doesn't get GC'd
promptly and its remaining queue of undelivered messages sticks
around.

Improve docs on runWithScissors.

Bug: 8596303
Change-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f
2013-04-18 19:04:39 -07:00
Amith Yamasani
7e99bc02c8 Modify restrictions bundle per api council recommendations
Use a Bundle for persisting and passing to the application, but use a
list to return data back from an application that's exposing restrictions.

Changed the xml reading/writing code to store the value type in the Bundle
so that it can be reproduced when reading. Earlier we were assuming only
String and String[].

Bug: 8633967

Change-Id: I523d5553728edcf28a1e9d432f490b4956f34215
2013-04-17 10:44:44 -07:00
Jamie Gennis
6ad0452e63 Disable tracing from Zygote
This change disables all atrace tracing in Zygote immediately after it is
initialized.  This is necessary because Zygote has no way to receive
notifications that the enabled trace tags have been changed.  Tracing is
re-enabled when other processes fork from Zygote.

Change-Id: If2983858fb0c4890ba9ab041849b1c4d98f66c13
2013-04-16 22:15:21 +00:00
Amith Yamasani
e1375908a5 Rename isUserLimited to isLinkedUser
A linked user is derived from another user and shares their accounts.

Change-Id: Ia2e63d573ccb635495ec54f31ac7b174725ad7a8
2013-04-13 16:48:35 -07:00
Dianne Hackborn
15fed390c4 Merge "Add new resources trace, also trace apk dex loading." into jb-mr2-dev 2013-04-12 23:58:50 +00:00
Amith Yamasani
e107aa4386 Merge "Rename isUserRestricted to isUserLimited" into jb-mr2-dev 2013-04-12 22:33:05 +00:00
Amith Yamasani
46bc4ebb87 Rename isUserRestricted to isUserLimited
Avoid confusion with user restrictions which can be applied to
non-limited users as well.

Updated the java docs.

Change-Id: I4097c50b528b01a49cebcb0832d09f2b06998faa
2013-04-12 15:13:53 -07:00
Dianne Hackborn
f7be4800df Add new resources trace, also trace apk dex loading.
Change-Id: Ia48566efb21ee018659bd976ddb3a0f4997b9a3a
2013-04-12 14:53:10 -07:00
Romain Guy
50b68bf836 Merge "Add async events tracing to android.os.Trace" into jb-mr2-dev 2013-04-12 20:58:00 +00:00
Emily Bernier
ce70311b67 Merge "Add user restrictions (credentials, user removal)" into jb-mr2-dev 2013-04-12 20:21:36 +00:00
Jeff Brown
024136f57e Ensure looper quits after all other messages are handled.
Bug: 8596303
Change-Id: Ie8bfbbe810f5ade2afd870c8e675ce1353a80e5d
2013-04-11 20:40:04 -07:00
Emily Bernier
b223f73a69 Add user restrictions (credentials, user removal)
Created constants in current.txt and UserManager.java, modified restrictions access in UserManagerService.java.

Change-Id: If8d778d84af81dcbf5784f6e0afd9ef966cc8ecf
2013-04-11 19:56:49 -04:00
Jamie Gennis
6e8a2dd3e6 Merge "Trace: unhide app tracing APIs" into jb-mr2-dev 2013-04-11 19:47:25 +00:00
Jamie Gennis
5800fc881e Trace: unhide app tracing APIs
Change-Id: I48316623fe0394d3fe77e9abca3f6dbf791d0c08
2013-04-10 17:50:32 -07:00
Romain Guy
9425f923fa Add async events tracing to android.os.Trace
Change-Id: I106a50732a88c03a00602c328f8b46626bf66e08
2013-04-10 16:35:48 -07:00
Dianne Hackborn
2323dd8d1e Fix issue #7691456: adbd CPU usage identified as Bluetooth in battery stats
Bluetooth GID was wrong and pointless and dumb and now gone.

Change-Id: Ibde563ef0c10c6d316428e1e683b013005b934d4
2013-04-10 12:50:12 -07:00
Jamie Gennis
f9c7d6bc15 Add APIs for application-generated systrace events
This change adds new APIs to enable applications to generate custom Systrace
begin/end events.  Application-generated events use the ATRACE_APP_TAG tag,
which is enabled only if either the application has declared itself debuggable
in its manifest or ro.debuggable is set to 1 on the device.

Change-Id: I311d09e2e6ed1a30f5ffa84907f250e11cc0d48d
2013-04-09 11:59:43 -07:00
Jeff Brown
3a2854bcee Merge "Queues, queues, queues and input." into jb-mr2-dev 2013-04-08 23:59:24 +00:00
Jeff Brown
f9e989d5f0 Queues, queues, queues and input.
Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper.  Consequently interactions with the
InputChannel might occur on the wrong thread.  Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity.  The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed.  This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects.  Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously.  Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
2013-04-08 15:31:47 -07:00
Jeff Brown
4a706bc6f1 Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev 2013-04-05 20:57:01 +00:00
Jeff Brown
1951ce86c2 Correctly manage the lifecycle of IME InputChannels.
InputChannels are normally duplicated when sent to a remote process
over Binder but this does not happen if the recipient is running within
the system server process.  This causes problems for KeyGuard because the
InputMethodManagerService may accidentally dispose the channel
that KeyGuard is using.

Fixed the lifecycle of InputChannels that are managed by the IME
framework.  We now return a duplicate of the channel to the application
and then take care to dispose of the duplicate when necessary.
In particular, InputBindResult disposes its InputChannel automatically
when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).

Bug: 8493879
Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
2013-04-04 22:45:12 -07:00
Ying Wang
0fa30372c7 Fix doc build.
Change-Id: I954a45866d968b0571040ba99cc93b818d02aeb5
2013-04-03 22:57:31 -07:00
Jeff Sharkey
a14acd20b8 Warn when exposing file:// Uris beyond a process.
Check for file:// Uris inside Intents, ClipData, Notifications and
RemoteViews when StrictMode option is enabled.

Also introduces Intent.prepareToLeaveProcess() to uniformly handle
Intents about to leave an app process.

Bug: 8529070
Change-Id: I8efb43877cbc5f21eb029fc6492b3ee1415059ef
2013-04-03 11:45:44 -07:00
Jeff Brown
67fc67cf3e Make MessageQueue and Looper final.
Applications already cannot subclass these classes because
their constructors are not visible.

Change-Id: Id979d86dd05f7bcc888fe4ea499ab9b95d3d5dde
2013-04-01 14:27:57 -07:00
Amith Yamasani
27db46850b Block access to accounts for limited users.
Make sure that apps that have access to restricted accounts can see them.
If they don't have access, they shouldn't be able to add a new account either.
Show an error message in the account picker if the user/app is not authorized.

Change-Id: I117c0b14d7d06c5ac4e66506df156b174567f5f3
2013-03-30 18:25:49 -07:00
Maggie Benthall
c92342bb01 Merge "Add user restrictions for bluetooth, sideloading, usb file transfer" into jb-mr2-dev 2013-03-28 19:15:46 +00:00
Robert Greenwalt
665e1aed5e Add BT - DataTracker connection
Allows the external BT stack the means to communicate with
ConnectivityService during reverse tethering.

bug:8445208
Change-Id: Ice7dfb0b50c9481d359aed14a51372878185171c
2013-03-27 15:45:12 -07:00
Maggie Benthall
a12fccf57d Add user restrictions for bluetooth, sideloading, usb file transfer
Created constants for these in UserManager and current.txt. Also created
an accessor for individual user restrictions that takes the restriction key
(removing individual methods for particular restrictions).

Change-Id: Ibb5517cbcdffadd3925f52cbe67d7d525813faa9
2013-03-27 18:14:29 -04:00
Amith Yamasani
ca050adc13 Fix docs build.
Change-Id: I959db164f0ed7badfcdf921ffa1bfff60b4fb952
2013-03-26 16:19:46 -07:00
Amith Yamasani
df5e9fe181 Merge "Device Owner, a special kind of device admin" into jb-mr2-dev 2013-03-26 22:27:13 +00:00
Amith Yamasani
71e6c697e5 Device Owner, a special kind of device admin
A Device Owner cannot be uninstalled and is available to all users. It must
be registered before the device_provisioned flag is set.

Device admins can be disabled until used, but visible to device policy
manager, so that users wont be bothered with update requests.

Opened up a few related APIs for use by a system-installed Device Owner.

Change-Id: I847b5fe68c0f724863f778a67602b5bddc79d8e5
2013-03-26 15:09:08 -07:00
Michael Wright
c8ee44d4b6 Remove misleading documentation from SystemClock
Change-Id: Ic97f911dca5c2b8911a4b2c670c4c79578f2cec0
2013-03-22 17:55:14 -07:00
Amith Yamasani
df2e92a535 Application restrictions API
Adds the ability for apps to export some restrictions. The restrictions
are presented in Settings based on the restriction type. The user's
selections are stored by UserManagerService and provided to the
target user's application as a list of RestrictionEntry objects which
contain the key, value(s).

Also introduce a manifest entry for system apps to request that the
app be automatically installed in all users, so that they cannot be
deselected by the owner user.

Shared account filtering for non-whitelisted apps.

Change-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6
2013-03-20 22:29:59 -07:00
Jeff Sharkey
d9526907d1 Move deleteOlderFiles() to framework, tests.
Supports both age and count based constraints.  Added light docs and
tests to verify behavior.

Bug: 8387555
Change-Id: If4d0dac8bc54ce705c2a339bc09a60ea748728b8
2013-03-14 15:04:12 -07:00
Scott Kennedy
8ad7fbae87 Specify the size of the Map in the constructor
Change-Id: Ie3325f387cec72216cb70c1b764370e6f3dd1a3e
2013-03-05 19:46:43 -08:00