139 Commits

Author SHA1 Message Date
Nick Pelly
1df862a465 Minor doc update.
Change-Id: I1d29adfccbdc196a145a2c2a044d63b00e5f788b
2011-02-16 09:18:34 -08:00
Dianne Hackborn
f5e4f208b9 Make CHANGE_COMPONENT_ENABLED_STATE a signatureOrSystem perm.
Change-Id: I53a6671d5478e7dbca44b17d90f1edfa8e3420bc
2011-01-26 12:40:18 -08:00
Nick Pelly
35042f1f58 Remove ACTION_TAG_DISCOVERED from protected broadcast list.
ACTION_TAG_DISCOVERED is a start activity intent, not a broadcast intent, so
its presence in this list is redundant.

Change-Id: I05419ec9c4471b7b11c9ae50a02e5ac3d9e572d2
2010-12-06 17:32:59 -08:00
Nick Pelly
11b075e218 Hide some NFC API's.
We are leaving enough API so that you can see when any Tag is discovered,
get its ID, and get its NDEF messages.

But for advanced use - creating tag connections and writing messages - we have
2 problems. Firstly a lot of the code is untested
(RawTagConnection.transceive()), or in some cases known not to work
(NdefTagConnection.write()). Secondly, there is still debate about how to
best expose information about Tags.

The set of data/methods exposed for a Tag changes completely depending on the
tag technology. There may be multiple sets of technology implemented in a
single tag. Tag A may have technology X and Y, Tag B may have technology Y
and Z. Furthermore, some NFC controllers will be not be able to use all
technologies, and so Android Device 1 may see technology X and Y on Tag A but
Android device 2 may only see technology X. So we have a pretty challenging
set of constraints to work under, and we are not convinced the current Tag and
NdefTag class is the best approach going forwards.

The Tag application should be able to remain unbundled, since it just needs to
get incoming NDEF Messages.

Change-Id: Ic09f094f33794e10f8d730fffe011c9a5957e0ac
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-28 14:54:52 -07:00
Nick Pelly
e47150e933 Fix up NFC permissions.
The initial (vendor) implementation had 4 perms, replace with 1.

Requires no permissions:
- Viewing UID, type of discovered tags and cards.
- Viewing the NDEF message contents of NDEF formatted tags and cards.

Requires android.permission.NFC
- Get/Set the local tag "MyTag"
- Creating or using a RawTagConnection (transceive())
- Creating or using a NdefTagConnection (write()/read())

Change-Id: I1b585c7d91738bed6261277061a48cf7c939482a
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-18 10:04:40 -07:00
Dianne Hackborn
424991704b Implement issue #3094621 and #3094609 - wipe sd card
3094621: add "wipe sd card" option to factory data reset
3094609: collapse unmount/format into one command

Also since we have decided that it is important to consider
the Crespo storage as internal storage, DevicePolicyManager
gets a new API to be able to wipe it.  (No big deal, since
all of the work for this is now done in the implementation
of the new UI.)

Change-Id: I32a77c410f710a87dcdcbf6586c09bd2e48a8807
2010-10-16 16:32:15 -07:00
Nick Pelly
590b73bc5b NFC API revision round 2.
- Add the second half of the new NFC API: NfcAdapter, Tag, NdefTag,
  RawTagConnection, NdefTagConnection.
- Add implementations for all of the new NFC API.

Change-Id: I8da9fd1d2971ed2c8b76f2a93f207fa9e305b0f6
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-12 18:37:26 -07:00
Dianne Hackborn
d39d515b91 Fix SD card mounting issues #3074555 and #3072332
Change-Id: I79572bb4e92d2546abd97512a119ae74f0d72019
3074555: Kill "Shared storage safe to remove" notification
3072332: "blank shared storage" notification doesn't go anywhere
2010-10-11 19:12:21 -07:00
Hung-ying Tyan
08faac3c26 Unhide SIP API.
Change-Id: I09468e3149a242a3b1e085ad220eb74f84ac6c68
2010-10-08 08:31:42 +08:00
Nick Pelly
038cabe024 NFC integration
Source: Trusted_NFC_Device_Host_AA03.01e02_google.zip code drop (23-Sep-2010)

Conflicts:

	core/java/android/app/ApplicationContext.java
	core/java/android/provider/Settings.java
	core/jni/Android.mk
	core/jni/AndroidRuntime.cpp
	core/res/AndroidManifest.xml
	include/utils/Asset.h

Change-Id: I62c92f4c79f5ee65126c97602f6bc1c15794e573
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-28 22:36:27 -07:00
Patrick Scott
a73c4b082c Add new Alarm provider class for setting an alarm.
The new class provides static variables for creating an intent to broadcast to
applications implementing the alarm clock.  A new permission has been added and
applications are recommended to require this permission if accepting the set
alarm broadcast.

Change-Id: I7b1014acdc54371cbda19bcf9b5c395b647aa413
2010-09-24 13:52:14 -04:00
Chris Palmer
b8dbdc293a Clarify the danger of READ_LOGS and DUMP permissions.
The logs inevitably contain PII, so now we are making that clear in user
strings and developer docs. Moving DUMP and READ_LOGS into the PERSONAL_INFO
group.

Note that this means we need string translations.

Change-Id: I1b5bf9d2d827ab1a31dedbdb30d0906a87c26a32
2010-09-15 17:10:12 -07:00
David Brown
f4ece2086f Mark MODIFY_PHONE_STATE permission as signatureOrSystem
This permission isn't needed right now, since there aren't actually any
public APIs that require it.  (There are a few calls in the ITelephony
interface that do, but they're all hidden.)

Since there's no good reason for 3rd party apps to declare it, let's
mark it signatureOrSystem for now.  We can bring it back -- and probably
split it apart into multiple finer-grained permissions -- once we
finally expose full telephony APIs to 3rd party apps (see bug 1043005).

Bug: 2989096
Change-Id: Idf898d5e12d648a959f622cd815e75597195aa82
2010-09-14 16:19:31 -07:00
Dianne Hackborn
7e9f4eb260 Track client requests through location manager.
This fixes a problem where applications could ask the location
manager to do very heavy-weight things (like...  say... update
location every minute), which would get accounted against the
system instead of the application because ultimately it is the
system making the heavy calls (wake locks, etc).

To solve this, we introduce a new class WorkSource representing
the source of some work.  Wake locks and Wifi locks allow you
to set the source to use (but only if you are system code and thus
can get the permission to do so), which is what will be reported
to the battery stats until the actual caller.

For the initial implementation, the location manager keeps track
of all clients requesting periodic updates, and tells its providers
about them as a WorkSource param when setting their min update time.
The network location provider uses this to set the source on the
wake and wifi locks it acquires, when doing work because of the
update period.

This should also be used elsewhere, such as in the GPS provider,
but this is a good start.

Change-Id: I2b6ffafad9e90ecf15d7c502e2db675fd52ae3cf
2010-09-13 14:20:48 -07:00
Jake Hamby
bb37163323 Allow incoming SMS until internal storage is almost full.
Fix for bug 2382830: new incoming SMS should not be rejected when
running low on internal phone storage.

Testing revealed that the /data partition should have at least 256 KiB
available in order to prevent random app crashes (including system apps)
due to SQLite transaction failures. With 256 KiB free, the device should
safely boot without storage full errors. This takes into account the
36-40 KiB that the YAFFS2 filesystem reports as available even after
the partition has been completely filled. I've set the default full
threshold to 1 MiB to provide a generous safety margin.

For this bug, I changed the DeviceStorageMonitorService demon to send
two new hidden notifications for device storage "full" and "not full",
when the free space falls below the full threshold (default 1 MiB,
but configurable as a system setting), in addition to the existing
storage low/okay notifications sent when the storage crosses the threshold
of 90% full (also configurable).

The SMS code was changed to use these new notifications so that it can
accept messages until the data partition has been filled to the maximum
safe capacity rather than stopping when it hits 90% full. There should
be no negative impact on battery life because the additional check in
the storage polling service should be offset by an optimization to cache
the free threshold values which were previously being computed every time
through the loop.

While testing this change, I discovered that SMSDispatcher was being
instantiated twice, the first time in GSMPhone/CDMAPhone, and the second
time in SimSmsInterfaceManager / RuimSmsInterfaceManager. Changed the code
to pass the original SMSDispatcher to the Sim/RuimSmsInterfaceManager
constructor.

Change-Id: Ie0c6d05294778ab6ee42e0fa01313af96d824c77
2010-09-08 12:37:18 -07:00
Dianne Hackborn
d3efa39244 Clean up some permissions.
Note that WRITE_OWNER_DATA and READ_OWNER_DATA don't actually appear
to be associated with anything or used by anyone, so they are just
deleted.

Also deprecate the activity API to go in the foreground.  I didn't
realize that was released in the SDK.  It needs to go away.

Change-Id: I96f53702c2c79e4999b6b2c498abb770bd27e03a
2010-09-01 21:19:40 -07:00
Dianne Hackborn
08d5b8fad8 More native work.
Implement save/restore of state, and add native APIs for
configuration information.

Change-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5
2010-08-11 00:29:59 -07:00
Mike Lockwood
059f009d97 Make android.hardware.action.USB_STATE a protected broadcast.
Change-Id: I84160e9342025228c1f810077f5aa25f5cc83023
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-29 12:12:04 -04:00
Mike Lockwood
2423607a32 Add a new UEventObserver subclass to broadcast an Intent whe USB state changes.
We now broadcast Usb.ACTION_USB_CONNECTED and Usb.ACTION_USB_DISCONNECTED
when USB is connected or disconnected.
The ACTION_USB_CONNECTED extras indicate the enabled/disabled state of
all USB functions.

Change-Id: I11495d039429dbe22bd738067296e39ae415befa
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-24 09:36:50 -04:00
Mike Lockwood
9163d42a50 DO NOT MERGE Add new permission to allow access to USB devices
Adds permission android.permission.ACCESS_USB.
This is a partial cherry pick of a change from master.
It adds the permission, but not the support for associating it
the AID_USB group.

Change-Id: If5816721a4fc88bf444141a7b717da65ea37d5f4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-24 09:36:35 -04:00
Joe Onorato
8bc6c51419 Require the STATUS_BAR_SERVICE permission for something to be the status bar.
Change-Id: I57b2d296e0d0cef0d256ae6697fffc47188d14df
2010-06-09 14:33:23 -07:00
Joe Onorato
fe4f3ae33c Move the usb mass storage notification & activity into SystemUI.apk.
Also fix the notification to show properly when the runtime is restarted.

Change-Id: Id0c7ef9f9dc9c9df18428cbaa7db1703f085137e
2010-06-09 09:15:25 -07:00
Dianne Hackborn
860755faa6 Add support for heavy-weight applications.
Only one can be running at a time, their process can not be killed,
and a notification is posted while it is running.

Change-Id: I843015723947e0c934ae63a1aeee139327c0bc01
2010-06-04 10:09:13 -07:00
Costin Manolache
8d83f9e31b Bug 2680071: Rename the Cloud to Device
Change-Id: I12ab32de393e44a499e3f9e3a0b38f4682156ff5
2010-05-12 16:16:34 -07:00
Costin Manolache
161c75a0f3 Bug 2673557: rename datamessaging
Change-Id: I583ac61c7b8fce69d60801dc76aeca9f13d250b2
2010-05-10 19:12:49 -07:00
Jeff Brown
ec7c78fbf5 @hide ACCESS_CACHE_FILESYSTEM and MOVE_PACKAGE
Bug: b/2553489
Change-Id: I681b3f9a243777b931298cc93c9d34c8d7eae0f2
2010-04-08 13:45:06 -07:00
Dianne Hackborn
9c9c532d36 Fix issue #2560791: Expose API to go in to car mode.
Also fix bug where night mode was being used in desk dock.

Change-Id: I56c1cf3d6fe800a4f986d40cc4cb2e70b76ac261
2010-03-31 16:25:53 -07:00
Bjorn Bringert
98bfa39596 Use a secure setting for default browser geolocation permissions
Partly reverts I6308b476ad18b1d71d7438b936c592a45365c9f0

Bug: http://b/issue?id=2535598

Change-Id: Ib488c6d4f10a87b714ecb78eef6fe58f572907c6
2010-03-25 14:04:45 +00:00
San Mehat
cbf953ed09 Permissions: Change ASEC permissions from 'dangerous' -> 'signature'
Change-Id: I5e495332c45f718178486f2e07d37031e6fa5afc
Signed-off-by: San Mehat <san@google.com>
2010-03-22 10:31:12 -07:00
Dianne Hackborn
2ee89ea288 Applications should -not- be able to set preferred activities.
I can't believe I let this slip through.  And in the SDK no less. :(

The APIs for setting preferred activities will now throw a security
exception when used.  This may break some apps, we'll see how it
goes.  If it is too bad we can just make these log and not throw
anything, but I would much prefer they throw an exception.

Change-Id: I3aed434750eef8b202aa9d5bd774a0121be521c6
2010-03-10 21:26:23 -08:00
Dianne Hackborn
7299c41630 Refactor car mode.
Extract all UI behavior from dock observer and ACTION_DOCK_EVENT.

Also introduce a desk type to go along with the car type all through
the resource system, since we now need to have corresponding high-level
broadcasts for desk dock mode.  As part of that I also reworked some
of the logic for switching modes to all funnel through a single
update() call that looks all of the current state to decide what to
do next, and fixed various locking issues.

In addition I found there were bugs in the configuration change
handling causing us to only switch into the car mode config and
then never get out of it.  Unfortunately now that we are actually
changing the configuration for each mode change, the transitions
between them are really crummy as we restart all kinds of
activities. :(
2010-03-05 10:57:47 -08:00
Robert Greenwalt
e7085e909d Update framework tethering UI
Getting rid of notification dialog - maybe the entire TetherActivity.
Also getting rid of toasts - to ephemeral.
2010-03-04 18:20:58 -08:00
Suchi Amalapurapu
8946dd3355 Move package from internal to external and vice versa. 2010-02-19 14:20:54 -08:00
Tobias Haamel
154f7a1cc2 Show car mode notification in status bar.
The notification is an ongoing event and can be used to get out of car mode.
2010-02-18 11:43:03 -08:00
Costin Manolache
63cfebf2db Switch from REMOTE_INTENT to the new push messaging, add the required permission. 2010-02-16 13:57:52 -08:00
Christopher Tate
a87240c227 Remove BACKUP_DATA permission and associated checks
Any package can now participate in backup/restore, without requiring any
manifest-declared permission.  *Control* of the backup manager is still
guarded by the BACKUP permission, which is signatureOrSystem.

Change-Id: I116fcfcd4cd255e3c976330da1c4dea7d4faae9d
2010-02-12 15:49:30 -08:00
Tobias Haamel
27b28b3f62 Introduce special UI modes for night and car usage.
The device mode is now called ui mode. Furthermore is the order of
precedence for the resources now in such a way that the ui mode needs
to be specified after the orientation and before the density.

The ui mode can be set, like it is done for the locale, as follows:

IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
config.uiMode = Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;
am.updateConfiguration(config);

To allow users to disable the car mode and set the night mode the IUiModeManager
interface is used.

The automatic night mode switching will be added in a separate change.
2010-02-11 21:25:58 +01:00
Dan Egnor
18e9396235 Eliminate dependencies on Checkin, replacing checkin events with EventLog
events (and in one case, a DropBox entry).

Add a simple intent that triggers master-clear (and toggle EFS), given the
right permissions.

Bug: 2264596
Bug: 2350452
Bug: 2264596
2010-02-11 10:22:09 -08:00
Bjorn Bringert
91f2a20a59 Add content provider for browser geolocation permissions
This replaces the old Google-specific geolocation setting.

Fixes http://b/issue?id=2428694
Part of http://b/issue?id=2383870

Change-Id: I6308b476ad18b1d71d7438b936c592a45365c9f0
2010-02-11 10:02:39 +00:00
San Mehat
4154c07c5c StorageNotification: Move notification / usb storage activity into StatusBarPolicy
Signed-off-by: San Mehat <san@google.com>
2010-02-09 19:33:58 -08:00
Dan Egnor
97e4494728 Add an AlarmManager API to set the system time (with the proper permissions). 2010-02-05 12:31:41 -08:00
Robert Greenwalt
d0e18ffb82 First pass at USB Tethering.
bug:2281900
2010-02-04 09:15:06 -08:00
Daniel Sandler
b94f795c25 New full-screen activity for USB mass storage interaction.
Still TODO: patch into forthcoming callbacks from
MountService so the USB storage activity always shows the
correct state of the device. (Right now it only refreshes
its display onResume.)

Bug: 2299129
2010-01-28 16:18:22 -05:00
Suchi Amalapurapu
c028be4f3b AppsOnSd feature - Add default container
Add new remote interface to do temporary copies. The new
remote stub handling is done on mHandler thread and doesn't need locking
for now.
Add new InstallArgs class and subclasses to isolate cases for installation.
Move resource deletion for failed installs/upgrades to later on in installation
cycle.
Fix code path for forward locked apps when using scanPackageLI

TODO's
Fix installation paths to completely use InstallArgs based design later on.
Get rid of using flags in various install/uninstall code paths.
Ideally InstallArgs should be created using these flags and used in the
rest of the code.
Function renames.
Revisit mount api's.
2010-01-27 10:26:43 -08:00
San Mehat
02735bc9b7 MountService: Introduce new @hide permissions to protect secure containers.
Signed-off-by: San Mehat <san@google.com>
2010-01-27 06:14:28 -08:00
Dianne Hackborn
d68478467e First pass at new device policy and administration APIs.
This adds new DevicAdmin, DevicePolicyManager, and DeviceAdminInfo classes.
See the java docs for each on documentation on them.  Basically: a DeviceAdmin
is what you derive from to administer a device; DevicePolicyManager is what you
use to apply and check your policy requirements and perform other administration
tasks.
2010-01-17 15:10:24 -08:00
Doug Zongker
6e99b7a3b2 add ACCESS_CACHE_FILESYSTEM permission to core manifest
All of the permissions in data/etc/platform.xml are defined in
core/res/AndroidManifest.xml, except for ACCESS_CACHE_FILESYSTEM.  Add
it.

Change-Id: If7906bc0007484cc21196fb1c0593b967fd79920
2010-01-06 15:05:24 -08:00
Dianne Hackborn
03abb8179f Kill the task killers.
The ActivityManager.restartPackage() API is now deprecated, and no longer
allows applications to mess up the state of other applications.  This was
being abused by task killers, causing users to think their other applications
had bugs.

A new API is introduced for task killers,
ActivityManager.killBackgroundProcesses(), which allows these applications
to kill processes but only the same amount that the out of memory
killer does, thus causing no permanent damage.  The old restartPackage()
API is now a wrapper for calling this new API.

There is also a new private forceStopPackage() API that is used for the
system's force stop UI which does what the old restartPackage() API did.
2010-01-05 15:47:05 -08:00
Scott Main
9256bb08d2 am 9a6c8168: am 77fa05a4: Merge change Iab5952e1 into eclair
Merge commit '9a6c8168f743c1dc8cc28de22fe12be4623434cd'

* commit '9a6c8168f743c1dc8cc28de22fe12be4623434cd':
  docs: add "required" attribute to the <uses-feature> docs
2009-12-19 00:41:10 -08:00
Scott Main
0b91635caf docs: add "required" attribute to the <uses-feature> docs
and add a note to the CAMERA permission stating that it enables
the <uses-feature> for camera.
This is an incrimental update for the 2.0.1 docs. More changes
to come for the 2.1 docs to include more features
2009-12-19 00:25:11 -08:00