Commit Graph

2001 Commits

Author SHA1 Message Date
John Spurlock
e08523684d Fix a few typos in Parcel.java.
Change-Id: Ic1674fc72f08a0f3536b4870a5ce7d14ee6fcc16
2015-02-04 23:18:09 +00:00
Christopher Tate
7265abe77a Be increasingly aggressive about fstrim if it isn't being run
The current heuristics depend on devices being alive at midnight+ in
order to run periodic background fstrim operations.  This unfortunately
means that people who routinely turn their devices off overnight wind
up with their devices *never* running fstrim, and this causes major
performance and disk-life problems.

We now backstop this very-friendly schedule with an increasingly
aggressive one.  If the device goes a defined time without a background
fstrim, we then force the fstrim at the next reboot.  Once the
device hits the midnight+ idle fstrim request time, then we already
aggressively attempt to fstrim at the first available moment
thereafter, even if it's days/weeks later without a reboot.

'Available' here means charging + device idle.  If the device never
becomes idle then we can't do much without rendering an in-use device
inoperable for some number of minutes -- but we have no evidence of
devices ever failing to run fstrim due to this usage pattern.

A new Settings.Global element (type 'long', called
"fstrim_mandatory_interval") is the source of the backstop time.  If
this element is zero or negative, no mandatory boot-time fstrim will
ever be performed.  If the element is not supplied on a given device,
the default backstop is 3 days.

Adds a new string to display in the upgrading dialog when doing
the fstrim.  Note it is too late for this to be localized, but since
this operation can take a long time it is probably better to have
it show *something* even if not localized, rather than just sit there.

Bug 18486922

Change-Id: I5b265ca0a65570fb8931251aa1ac37b530635a2c
2014-11-25 16:35:06 -08:00
Dianne Hackborn
d3511d4be1 SDK only: hide the old L API version constant.
Also update the LOLLIPOP version constant to describe more things
that change when you target it.

Change-Id: I15e2c26a0f997ff2bfc8dd5076c827da7f42ee66
2014-10-16 17:49:45 -07:00
Amith Yamasani
6d93491f50 Hide DISALLOW_OUTGOING_BEAM API
This is not fully functional in managed profiles, so it is being removed for L.

Bug: 17973040
Change-Id: If660e5e565076cdf61649e9f5ca12877425e9df3
2014-10-14 09:31:30 -07:00
Dianne Hackborn
ab4a81b3c6 Improve some docs, fix some debugging.
- Add docs to Binder, Messenger, ResultReceier to explain their
  relation (or lack there-of) to process lifecycle.
- Clarify some aspects of process lifecycle for services.
- Fix help text of am command.
- Fix per-package dumping of battery stats to not include history.
- Fix per-package dumping of proc stats to only include aggregated
  and current stats and fix some formatting.
- Fix per-process dumping of meminfo to have an option to interpret
  the input as a package, so including all processes that are
  running code of that package.
- Fix top-level per-package debug output to correctly include all
  of these improvements and give them a little more time (10s) to
  complete for timing out.

Change-Id: I2a04c0f862bd47b08329443d722345a13ad9b6e2
2014-10-09 18:21:59 -07:00
Dianne Hackborn
89b196958f Merge "Put in real "code" (aka marketing) name." into lmp-dev 2014-10-08 17:59:19 +00:00
Dianne Hackborn
955d8d69ea Put in real "code" (aka marketing) name.
Change-Id: Idb3976edfae37293ed75cb5b869b4b42d8042bbe
2014-10-07 20:17:19 -07:00
Amith Yamasani
41bb3455e4 Merge "Set the default user restrictions to disallow calling and sms" into lmp-dev 2014-10-07 17:11:34 +00:00
Amith Yamasani
aa6634eaca Set the default user restrictions to disallow calling and sms
When creating a user via the UI, disallow phone calls and SMS by
default. Primary user must explicitly enable it via Settings.

Bug: 17832802
Change-Id: I18cad4be8493ddc8890b5d90da2df256cb3f1ec9
2014-10-06 18:24:32 -07:00
John Spurlock
9bb3dacbf9 Fix NPE in StrictMode handling.
Bug:17875462
Change-Id: I0bf31abe2d07335addd57976aca110565bb63cc4
2014-10-06 12:36:45 -04:00
Dianne Hackborn
d867b7c7a2 Fix issue #17783882: AUPT: NPE in Videos: Attempt to invoke virtual method...
...'java.lang.String java.lang.String.substring(int)' on a null object reference

Change-Id: I4a78653174da398a4edd23b2bc099598548b79c2
2014-10-03 11:43:10 -07:00
Dianne Hackborn
7a73f2c5aa Merge "SDK only: Update docs to reflect current implementation." into lmp-dev 2014-10-02 22:49:43 +00:00
Dianne Hackborn
67a101aa30 SDK only: Update docs to reflect current implementation.
Change-Id: I498425bb55b157c954af6a2441d8bd9be3871c55
2014-10-02 12:44:01 -07:00
Sreeram Ramachandran
e4a05afe85 Send app permissions to netd.
Based largely off Robert's http://ag/546170 (thanks!)

Bug: 15413737
Change-Id: I8a1f0a184923c4c0a4935e6b88895bcc05e39f02
2014-10-01 20:22:34 -07:00
Dianne Hackborn
8d05172112 More work on issue #17656716: Unhandled exception in Window Manager
Fix Slog.wtf to not acquire the activity manager lock in its code
path, so that it can never deadlock.  This was the original intention
of it, but part was missed.

Now we can put back in the code to detect when strict mode data is
getting large (a little more targeted now to the actual problem),
and use Slog.wtf to report it.  And as a bonus, when this happens
we will now clear all of the collected violations, to avoid getting
in to the bad case where IPCs start failing.  So this should be
good enough for L to fix the problem, with wtf reports for us to
see if the underlying issue is still happening.

Finally, switch a butch of stuff in the system process from Log.wtf
to Slog.wtf, since many of those are deadlocks waiting to happen.

Oh and fix a crash in the settings provider I noticed in APR.

Change-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041
2014-10-01 16:58:56 -07:00
Narayan Kamath
7dc7f676d6 Merge "Set Build.CPU_ABI{2} from SUPPORTED_{32,64}_BIT_ABIS" into lmp-dev 2014-10-01 09:53:34 +00:00
Dianne Hackborn
ce92b0d070 More work on issue #17656716: Unhandled exception in Window Manager
Drop down the limit on when we log, since under normal operation we
will never get more than a few K of data due to strict mode.

Try to clean up the code paths coming in and out of binder IPCs to
plug any places where we could disrupt the gather flag of a thread,
causing it to keep gathering stack crawls (which is the thing that
is causing our strict mode data to become so large).

Change-Id: I9a46512283d33e863c429840b465855d1fabb74e
2014-09-30 11:28:18 -07:00
Narayan Kamath
eff258c305 Set Build.CPU_ABI{2} from SUPPORTED_{32,64}_BIT_ABIS
32 bit processes will always see values from SUPPORTED_32_BIT_ABIS
and 64 bit processes will always see values from SUPPORTED_64_BIT_ABIS.

bug: 17367265
Change-Id: I9996034c190f9213986b9b1a4ee0e38eca91c7ad
2014-09-30 13:56:06 +01:00
Dianne Hackborn
73d6a821ae Work on issue #17656716: Unhandled exception in Window Manager
Remove the checks for large parcel sizes.  Those were triggering,
and identifyng the area of the problem, but also cause a lot of
trouble by making the unsafe deadlocky code there much more likely
to deadlock.

Add logging for strict mode IPCs, since those seem to be the
problem.  Only log when things look bad.

Also add a log when battery stats are reset, to diagnose why they
are getting reset when they shouldn't be.

Change-Id: I588c858fb8d8c45f3c9c164ae2de9ae01547b304
2014-09-29 16:04:02 -07:00
jgu21
208678718f Frameworks/base: Early init native bridge
Add the app directory to the arguments for starting a process.
Add a check for NeedsNativeBridge and a call to PreInitializeBridge
in the native fork code.

(cherry picked from commit 2eacd06bfb)

Bug: 17671501
Change-Id: I970db5b284b0c12e2d8a45df3950c1fff2927a4e
2014-09-28 15:35:59 -07:00
Dianne Hackborn
820eab3e75 Merge "More debugging for issue #17656716: Unhandled exception in Window Manager" into lmp-dev 2014-09-26 23:11:40 +00:00
Dianne Hackborn
fad079dc5d More debugging for issue #17656716: Unhandled exception in Window Manager
Change-Id: I81d3678e21d293d5896c467ae5c6739c82cfaa95
2014-09-26 15:46:24 -07:00
Elliott Hughes
f839b4fcb6 Set the system locale correctly even on an encrypted device.
Bug: 17659622
Change-Id: Ibbbd5b959bfab5345f20b556c4720d0910b50084
2014-09-26 15:18:20 -07:00
Dianne Hackborn
017c6a28be Work on issue #17656716: Unhandled exception in Window Manager
Create descriptive errors when sending unreasonably large
parcels through IPC.

Change-Id: Ie93b5372a8ed87541db282876c4eeeae69a1e8bd
2014-09-25 17:48:44 -07:00
Jeff Sharkey
0a285b4462 Merge "Include reason when wiping data." into lmp-dev 2014-09-24 23:27:25 +00:00
Jeff Sharkey
004a4b20f8 Include reason when wiping data.
This will help us track down who requested a data wipe.

Bug: 17412160
Change-Id: If8413e5d6377773f37e8b34ae3d26347226a027c
2014-09-24 13:58:09 -07:00
Lorenzo Colitti
60446165d8 Block address families with routes, not NetworkAgent side channel
Now that we support unreachable routes, use those to block
address families on VPNs. This is a much more elegant solution.
Also update LinkProperties when IP addresses are added and
removed, fixing a TODO.

Bug: 17462989
Change-Id: Ib749d84710dca70d672350b9f129bb91419ec77e
2014-09-23 10:48:28 +09:00
Amith Yamasani
c34dc7cdeb Allow primary user profile owner to set device restrictions
In addition to device owners, profile owners on the primary user
can also set user restrictions that are necessary to lock down the
user.

This is to enable the case of a profile owner registered after setup
wizard is completed, on the primary user.

Also make managed profile vs. profile wording consistent in the
DevicePolicyManager docs.

Bug: 17555025
Change-Id: Ib9d08b8af34a99b25e11757fa7dc83673a7deb32
2014-09-18 15:14:26 -07:00
Adam Powell
988ae30ff7 Fix UserManager#isUserAGoat
Correctly detect if the user is a goat.

Change-Id: I78577dd7ec8c3685434ee03560010a6ea4db127f
2014-09-17 18:12:13 -07:00
John Spurlock
8d4e6cb060 Saver: PowerManager call to set low power mode.
- Add an explicit power manager call to set the low power mode state,
  instead of trying manage everything around a single setting.
- When low-power mode is triggered by falling below the configured
  threshold, it does not update the setting.
- The "is-enabled" api returns setting || below configured trigger.
- Move the snooze management into the new api call.
- Callers (sysui + settings) updated to use the api instead of the
  setting.
- Handles the case where the level does an unpowered leap out of the
  low battery level. (Possible if powered in-between while the device
  is off)

Bug:17460535
Change-Id: Ic030504c9cad9868a7137abbe837b170da37852b
2014-09-14 14:07:23 -04:00
Dianne Hackborn
33d738a102 Allow throwing UnsupportedOperationException across Binder.
Change-Id: I3a9b81958886033d546c3a20331716dbb9492365
2014-09-12 14:23:58 -07:00
Alexandra Gherghina
64d4dca63f Assign default icon to users at creation time and in SystemUI.
Right now different code in System UI, Settings app and other places replace the
user icon with their own default. This tries to make it consistent by moving the
mechanism used in Settings in a helper class.

Bug: 17311038
Change-Id: Ic858c65bf82a98b9806dbba029e7cdcf441f372e
2014-09-12 15:43:42 +01:00
Michael Wright
1208e2718d Change constant to PowerManager.RELEAES_FLAG_WAIT_FOR_NO_PROXIMITY
Bug: 17290118
Change-Id: Iae3866bf3f7ac24f756ec4c183e848a79d1f779b
2014-09-12 00:23:14 +00:00
Amith Yamasani
8cd28b57ed Apply cross-user restrictions to Shell
Even though Shell user is allowed to perform cross-user actions,
lock that path down if the target user has restrictions imposed by
the profile owner device admin that prevents access via adb.

If the profile owner has imposed DISALLOW_DEBUGGING_FEATURES, don't
allow the shell user to make the following types of calls:
start activities, make service calls, access content providers,
send broadcasts, block/unblock packages, clear user data, etc.

Bug: 15086577
Change-Id: I9669fc165953076f786ed51cbc17d20d6fa995c3
2014-09-10 17:15:06 -07:00
Amith Yamasani
da6e6c888f Merge "User restriction to disallow outgoing NFC beam" into lmp-dev 2014-09-09 20:29:57 +00:00
Amith Yamasani
26af829fd7 User restriction to disallow outgoing NFC beam
This can be controlled by MDMs via DPM.

Also fixes:
 - javadoc for restrictions
 - persisting of cross profile copy/paste restriction

Bug: 17387303
Change-Id: Ie148f56189181d2a4c6345c0823d417ab13a94a3
2014-09-09 12:09:47 -07:00
Andreas Gampe
6b0ed64fb8 Frameworks/base: Add native bridge post-fork initialization
(cherry picked from commit d7746a8b65ee4690427ed798816f970218578fa3)

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
2014-09-08 13:07:59 -07:00
Jeff Sharkey
e016605981 Merge "Delayed ASEC allocation, refine progress handling." into lmp-dev 2014-09-08 16:38:42 +00:00
Jeff Sharkey
77d218e186 Delayed ASEC allocation, refine progress handling.
For restore use-case, session creation needs to complete quickly, so
delay ASEC allocation until session is opened.  When preflighting
size checks, only consider external when we have a known size for the
container.  Also relax size checks when using MODE_INHERIT_EXISTING
on external, since we don't know how much of existing app will be
copied over.

Consider session as "active" while commit is ongoing, until we're
either finished or pending user interaction.

Always publish first client needle movement away from 0.  Use 25% of
internal progress to reflect ASEC allocation.

Avoid CloseGuard messages about leaking PFDs.

Bug: 17405741, 17402982
Change-Id: I6247a1d335d26621549c701c4c4575a8d16ef8c2
2014-09-08 09:31:49 -07:00
Dianne Hackborn
b30c9920df Merge "Fix issue #17391969: Only exception on Message.recycle() when target-sdk > 20" into lmp-dev 2014-09-07 19:04:05 +00:00
Dianne Hackborn
7895bc2e63 Fix issue #17391969: Only exception on Message.recycle() when target-sdk > 20
Change-Id: Iaf271c96901c5dba15831681269a49ad4aaa57fd
2014-09-05 17:50:47 -07:00
Dianne Hackborn
ce78347c37 Merge "Fix issue #17397177: BatteryStats reporting error on job start/stop" into lmp-dev 2014-09-06 00:49:28 +00:00
Dianne Hackborn
c3940bc1ba Fix issue #17397177: BatteryStats reporting error on job start/stop
Dumb, dumb, dumb mistake.

Also fix battery stats wakeup reason tracking to use a SamplingTimer
(like kernel wake locks) so we can track both the duration and count
for each wakeup reason.

Change-Id: I89d69661006dc533622b1b7e68a139166d3a6975
2014-09-05 17:33:06 -07:00
Svetoslav
c7d62f02b8 Addressing API council comments for UserManager.
bug:17390424

Change-Id: I498d2541289915cb7db16e5c3249ccc7a7dc5ee6
2014-09-05 10:07:02 -07:00
Jeff Sharkey
d3cc74cac2 Merge "Move Size parceling to Bundle." into lmp-dev 2014-09-05 16:46:00 +00:00
Amith Yamasani
a240d8377a Merge "Don't allow guests to install from unknown sources" into lmp-dev 2014-09-05 16:32:30 +00:00
Jeff Sharkey
5ef33984d0 Move Size parceling to Bundle.
Size itself shouldn't be Parcelable, since that would be a layering
violation.

Bug: 17390381
Change-Id: Ica62709bd889db51c916c550a0146714b002baa3
2014-09-05 09:07:35 -07:00
Dianne Hackborn
edfc6af590 Merge "Fix issue #17375172... sshhhhhh!!!" into lmp-dev 2014-09-04 23:08:24 +00:00
Dianne Hackborn
521e4bd7c5 Fix issue #17375172... sshhhhhh!!!
Change-Id: Idf3eafe829418bfc29e31f893ae6cff249488ffa
2014-09-04 14:50:26 -07:00
Amith Yamasani
29ce85bab9 Don't allow guests to install from unknown sources
Added a user restriction when creating a guest.
Made sure that guests can't install profile owners that
could undo the restriction.

Bug: 17359648
Change-Id: Icdd919e8b1cbd79a69aacb76e573ec3449f18e4c
2014-09-03 17:30:43 -07:00