263 Commits

Author SHA1 Message Date
Dianne Hackborn
d2509fd835 Add boot mode where only "core apps" are started.
A core app is one that has coreApp="true" in its manifest tag.

The system can successfully boot (though a little painfully) with
only framework-res.apk, SettingsProvider.apk, SystemUI.apk,
DefaultContainerService.apk, and Launcher2.apk set as core apps.

Currently this boot mode is always turned off.

Change-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b
2011-09-12 12:29:43 -07:00
Dianne Hackborn
905577f634 Fix issue #5263361: Browser instance not created in application picker
The resolver activity was hiding the following activity from recents.

Also some other fixes: a little better memory use debugging, removed
some unneeded code from window manager, moved some system activities
into their own process, added some more running process information for
manage apps.

Change-Id: I66687d16989ff965d524b92dc360f37c19199717
2011-09-08 10:35:11 -07:00
Jaikumar Ganesh
b6ae19a96d Remove connection access intents from protected broadcasts.
These intents are sent by Bluetooth-Pbap app which doesn't
have the system uuid. Instead protect with admin permission
on the reciever side.

Change-Id: Ibb788e1526108909b5a3b15462ac3a008b041613
2011-09-07 17:20:08 -07:00
Jaikumar Ganesh
81e23acb0b Add Bluetooth intents to protected broadcasts.
Change-Id: I3734a4ff7d964c64ce39ec3f897d3799aa9653f7
2011-09-06 13:07:17 -07:00
Robert Greenwalt
cccdd721e9 Make WRITE_APN_SETTINGS a system-only permission.
Protects us from apps getting packet snooping ability
(ie, routing all your traffic through their server by
modifing your APN settings).  We may eventually revert this
if/when we have time to provide a proper API and scary UI
like VPN has.

bug:5242750
Change-Id: I71d73807ca5268c6aacc2156839b4d11427048c4
2011-09-01 12:30:47 -07:00
Jeff Sharkey
961e304583 Introduce immediate CONNECTIVITY_ACTION variant.
New broadcast that is dispatched immediately after connectivity
changes have been handled by ConnectivityService, bypassing any
applicable CONNECTIVITY_CHANGE_DELAY.

Also protect CONNECTIVITY_CHANGE broadcasts, since they should only
be sent by system.

Bug: 5198167
Change-Id: I75f1fb44b21da1879f0ab960bcaa481126d70fde
2011-08-29 16:10:43 -07:00
Jake Hamby
463f221145 Add ISIM application support for LTE devices.
- Add methods to TelephonyManager to provide access to IMS records on
  the ISIM application of the UICC, as well as access to the ISIM
  AKA authentication algorithm.

- Add support for the new IMS methods to CDMALTEPhone, using the helper class
  ImsUiccRecords to load the IMS records from the ISIM. The same approach
  can be used to implement IMS support for UMTS/LTE devices.

- There is a new RIL request, RIL_REQUEST_ISIM_AUTHENTICATION, which is
  used to perform IMS AKA authentication using the algorithm on the ISIM
  application of the UICC. The challenge nonce and response are both encoded
  as Base64 strings.

Change-Id: I73367c7d9bc573d0d883d68adf09891de1319129
2011-08-26 12:33:11 -07:00
Kenny Root
5ab2157bf1 Infrastructure to support package verifier
Allow a package verifier to approve or disapprove of a package being
installed.

Change-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b
2011-08-15 17:26:31 -07:00
Tom Taylor
b0381688b8 Add private permission for sending SMS via Messaging app
When the phone dialer sends an sms, it will use the Messaging app.
That way the sent messages will end up in the messaging provider db
and sending will be more reliable. Currently, the phone dialer
uses the SmsManager directly. For now, the feature is only
available to system apps and the permission is private. Bug 4563486

Change-Id: I10f7e1042683164ee61d01a2aaf738d19084da72
2011-08-15 10:27:53 -07:00
Dianne Hackborn
e09cd7914c Merge "New broadcast telling when an app is fully removed." 2011-08-11 11:35:07 -07:00
Dianne Hackborn
f9abb40590 New broadcast telling when an app is fully removed.
Change-Id: Ia516d826f302a01881fa92d9ffdc0adfbf669a4b
2011-08-10 17:15:17 -07:00
Chia-chi Yeh
d0d85f26cb Unhide APIs for user space VPN.
Change-Id: I6f9ddb3fffe9e10cc2d34dda3ae8700b1af7e470
2011-08-08 18:26:28 -07:00
Chia-chi Yeh
89c95a0da8 VPN: remove unused protected intent.
Change-Id: Id58f81d5f50a13a1fb422eafe66fa512047f9b05
2011-08-08 18:17:53 -07:00
Chia-chi Yeh
880f64ac10 Merge "VPN: introduce VpnService as the base class for user space VPN." 2011-08-08 11:33:57 -07:00
Chia-chi Yeh
199ed6ef89 VPN: introduce VpnService as the base class for user space VPN.
Change-Id: I4793a6eb51b33f669fc6d39e1a16cf5eb9e3d851
2011-08-08 11:15:41 -07:00
Chia-chi Yeh
b234636105 Merge "VPN: move away from the VPN permission." 2011-08-04 13:04:51 -07:00
Debashish Chatterjee
e53eba0470 Removed permission READ_WRITE_OWN_VOICEMAIL from framework/base.
This permission has now been replaced by ADD_VOICEMAIL.

Bug: 5098551
Change-Id: Idc993f1674a66f0df3ec699ed14b2e5cfedfe3e8
2011-08-04 15:49:04 +01:00
Chia-chi Yeh
fcc1b41b66 VPN: move away from the VPN permission.
VpnBuilder will be replaced by VpnService in the next change.

Change-Id: I2dea67a1616b74d17b372f7b214d207f1617198e
2011-08-03 15:52:12 -07:00
Debashish Chatterjee
766839cb6f Step1 of renaming READ_WRITE_OWN_VOICEMAIL to ADD_VOICEMAILS.
READ_WRITE_OWN_VOICEMAIL sounds a confusing name. Dianne recommened to
rename it to ADD_VOICEMAILS as this simply allows 3rd party apps to add
new voicemails to the system. The fact that we allow the app to acces
only its own voicemail is implicit and need not be highlighted in the
permission name. See bug: 5098551 for more details

This CL implements the 1st step of this change by adding the permission
ADD_VOICEMAILS. A follow up CL will remove READ_WRITE_OWN_VOICEMAIL once
content provider and contacts app have been modified to start using the
new ADD_VOICEMAILS permission instead.

Bug: 5098551
Change-Id: I515e7967bdb0e8498a60a32983f9122ce10dcc4a
2011-08-03 10:48:58 +01:00
Dianne Hackborn
ba39839444 Move ImageWallpaper to SystemUI process.
Nice to not load 4MB bitmaps in the system process.

Also, hey, with how we are now scrolling the surface instead of
the bitmap, there is no reason to keep that 4MB bitmap loaded in
to memory.  So don't.

Unfortunately it looks like for some reason the VM is still
holding on to the bitmap.  I'll need to figure out why.  Later.

Change-Id: Ib3503756144502fc5c8d5e294248c2417c4fe8c8
2011-08-01 17:55:54 -07:00
Chia-chi Yeh
e1538f0558 Revert "Unhide APIs for user space VPN."
This reverts commit 3c2529c717cda3df321c1d0d6abe23ac1f298ac9.

Change-Id: I37d4ea6c1079d337ede7ac567d88414a41fc1e11
2011-08-01 14:06:58 -07:00
Dianne Hackborn
24a12104fd Hide permissions that are not available to apps.
Change-Id: I5f3bc72114b780fffe218a5600bfd011ede029d3
2011-08-01 11:25:53 -07:00
Chia-chi Yeh
fcbb492486 Merge "Unhide APIs for user space VPN." 2011-07-27 18:35:51 -07:00
satok
988323c57b Create TextServiceManager and SpellCheckerService
Bug: 4176026

This CL inherits https://android-git.corp.google.com/g/112600

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
    for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Iaa425c7915fe70767ad0b17bf6c6fbcd2a1200b2
2011-07-22 14:52:21 +09:00
Chia-chi Yeh
3c2529c717 Unhide APIs for user space VPN.
Change-Id: I2d9e5a8a3ee8556626e373bfdc93c809dad40bff
2011-07-21 18:26:46 -07:00
Jeff Hamilton
0bc369ee66 Make READ_FRAME_BUFFER signatureOrSystem.
Bug: 4941390
Change-Id: I6d38b2d5ca2ed3bbf9ec0561659a486a99cbc024
2011-07-21 16:30:04 -05:00
Debashish Chatterjee
cdf95e3102 Removed READ_WRITE_ALL_VOICEMAILS permission from framework.
This permission is meant to be a 'signature' permission and to be used
only by the contacts app. We recently moved it to framework/base as part
of opening up voicemail api into the SDK. However, the signature of
framework is different from contacts app. Consequently the contacts app
is not granted READ_WRITE_ALL_VOICEMAILS permission. This makes the
contacts app crash on start.

This fix removes the READ_WRITE_ALL_iVOICEMAILS from framework/base so
that the one defined in contacts provider is then used by the system.

Bug: 5054221

Change-Id: Iaa7a23fe95b0142978eff124e25fe2291dc7d212
2011-07-20 19:09:37 +01:00
Debashish Chatterjee
5521e892f8 Voicemail content provider API for api council review.
This is a new content provider implemented to add visual voicemail
support in android.

Voicemail content provider is the central repository for storing
voicemails inserted by various voicemail sources. The content provider
also exposes a status table to let the voicemail source application
convey its current status to the system.

The primary application that reads from this content provider is the phone app.
The phone app shows voicemails along with other call entries within the
call log and optionally any relevent message about the voicemail source
status.

The implementation of this content provider can be found at
https://android-git.corp.google.com/w/?p=platform/packages/providers/ContactsProvider.git;a=blob;f=src/com/android/providers/contacts/VoicemailContentProvider.java

Change-Id: I8ad46aec20c70684f7bfa45530bbb90dd841d81a
2011-07-19 14:42:19 +01:00
Dianne Hackborn
45ce864ef4 Move LoadAverageService to the SystemUI apk.
Change-Id: I442e264802d1e35cd7d27bae121ae75f932595b6
2011-07-14 16:10:16 -07:00
Christopher Tate
79ec80db70 Make full backup API available to apps
New methods for full backup/restore have been added to BackupAgent
(still hidden): onFullBackup() and onRestoreFile().  The former is the
entry point for a full app backup to adb/socket/etc: the app then writes
all of its files, entire, to the output.  During restore, the latter
new callback is invoked, once for each file being restored.

The full backup/restore interface does not use the previously-defined
BackupDataInput / BackupDataOutput classes, because those classes
provide an API designed for incremental key/value data structuring.
Instead, a new FullBackupDataOutput class has been introduced, through
which we restrict apps' abilities to write data during a full backup
operation to *only* writing entire on-disk files via a new BackupAgent
method called fullBackupFile().

"FullBackupAgent" exists now solely as a concrete shell class that
can be instantiated in the case of apps that do not have their own
BackupAgent implementations.

Along with the API change, responsibility for backing up the .apk
file and OBB container has been moved into the framework rather than
have the application side of the transaction do it.

Change-Id: I12849b06b1a6e4c44d080587c1e9828a52b70dae
2011-07-06 14:40:32 -07:00
Jeff Sharkey
428e84388a Extend network stats to signatureOrSystem.
Change-Id: I82cc99797b5d5bc3bb9a876b67f311643174da33
2011-06-30 00:50:52 -07:00
Jeff Sharkey
9e18fd1a72 Permissions to protect bandwidth statistics.
Introduces new "net_bw_stats" group which will protect reading
detailed bandwidth statistics from the kernel.  Also introduce
"net_bw_acct" group which will enable specific applications to
request that their network traffic be counted against other UIDs.

This change associates manifest permissions with the low-level GIDs.

Change-Id: If3fc28053afda201ff305d798a8878ff1f35b997
2011-06-22 10:15:32 -07:00
satok
8969d9924c Revert "Create TextServiceManager and SpellCheckerService"
This reverts commit eaddb894865a804279659b4aad6364a34ab50beb.
2011-06-22 16:41:58 +09:00
satok
eaddb89486 Create TextServiceManager and SpellCheckerService
Bug: 4176026

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
    for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Ia25e7b4f308778891929e31b8cbd741f6848cce4
2011-06-20 23:00:30 +09:00
Chia-chi Yeh
3f3337a662 VPN: avoid leaking file descriptors.
Change-Id: If70f5af3529d79bddb9d72675cf6eb038ff3ff70
2011-06-17 16:34:32 -07:00
Jeff Sharkey
21c9c45e5c Interface-level network policy, persist policies.
Define NetworkPolicy as cycle-reset day and warning/limit values, and
set/get through NetworkPolicyManager.  Watch ConnectivityManager for
network connection events, and apply quota rules based on matching
interfaces.  Policy service matches based on strong identity to support
IMSI-specific policy values.

Calculates remaining quota based on current stats recorded since the
last reset cycle day.  Tests to verify edge cases around February.

Persist network and UID policies in XML, and restore on boot.

Change-Id: Id40ba7d6eed6094fbd5e18e6331286c606880d80
2011-06-10 19:35:20 -07:00
Dave Santoro
432513380e API modifications to handle profiles in Contacts.
The user's profile is represented as a single Contact, comprised of
Raw Contacts which may be contributed from any accounts the user has on the
system.

Two new permissions have been added: READ_PROFILE and WRITE_PROFILE.  These are
required for reading or writing any contact data that is designated as part of
the user's profile.

Contact queries can include the user's profile data by setting the
include_profile URI parameter to 1 (this requires READ_PROFILE access).  By
default, the user's profile data will not be included in any Contact queries.

Change-Id: I25616f59622dbb157032c9c435064eb36af6e8e1
2011-06-09 11:04:12 -07:00
Jake Hamby
d4f1bacca5 resolved conflicts for merge of 7ca13deb to master
Change-Id: If34814d6c70cf63eca9bd816845389f6785518ae
2011-06-08 23:20:09 -07:00
Jake Hamby
7d259626d0 resolved conflicts for merge of 0cb17a52 to honeycomb-plus-aosp
Change-Id: I784e6d1946fa708f63becece070c7090cec6f1e2
2011-06-07 15:01:50 -07:00
Svetoslav Ganov
8643aa0179 Interrogation of the view hierarchy from an AccessibilityService.
1. Views are represented as AccessibilityNodeInfos to AccessibilityServices.

2. An accessibility service receives AccessibilityEvents and can ask
   for its source and gets an AccessibilityNodeInfo which can be used
   to get its parent and children infos and so on.

3. AccessibilityNodeInfo contains some attributes and actions that
   can be performed on the source.

4. AccessibilityService can request the system to preform an action
   on the source of an AccessibilityNodeInfo.

5. ViewAncestor provides an interaction connection to the
   AccessibiltyManagerService and an accessibility service uses
   its connection to the latter to interact with screen content.

6. AccessibilityService can interact ONLY with the focused window
   and all calls are routed through the AccessibilityManagerService
   which imposes security.

7. Hidden APIs on AccessibilityService can find AccessibilityNodeInfos
   based on some criteria. These API go through the AccessibilityManagerServcie
   for security check.

8. Some actions are hidden and are exposes only to eng builds for UI testing.

Change-Id: Ie34fa4219f350eb3f4f6f9f45b24f709bd98783c
2011-06-06 18:46:03 -07:00
Jeff Brown
7218d830e2 resolved conflicts for merge of ca2b552d to master
Change-Id: I2f3693a59042ac5aa2d7bcdc3a504c78dc99a18b
2011-06-03 15:50:27 -07:00
Jeff Brown
ca2b552d98 am c8812761: am e1718de6: Merge "Add a preference panel for mouse speed." into honeycomb-mr2
* commit 'c8812761609e532cceb400b112ed9982149c2490':
  Add a preference panel for mouse speed.
2011-06-02 17:34:03 -07:00
Jeff Brown
c881276160 am e1718de6: Merge "Add a preference panel for mouse speed." into honeycomb-mr2
* commit 'e1718de61c20c8d401633f83589f18d2c0c652db':
  Add a preference panel for mouse speed.
2011-06-02 17:28:07 -07:00
Jeff Brown
1a84fd1fb7 Add a preference panel for mouse speed.
Bug: 4124987
Change-Id: I3ce175d268a1d043cf5878481261b1049a15a149
2011-06-02 15:39:21 -07:00
Jake Hamby
ab79ee4adc Enable full support for SMS Cell Broadcast.
Implement full support for SMS Cell Broadcast (3GPP TS 23.041).
Includes support for ETWS and CMAS emergency message types.
Includes GSM and UMTS support (CDMA will be added later).

Note: the change to GsmAlphabet.java is only necessary if the
SMS national languages support patch has been applied. If that
change has not been applied, then the changes to GsmAlphabet.java
in this patch set can safely be ignored.

Change-Id: Ia0362c53695b8ef9a0982f558f1cffa912def34b
2011-06-01 15:54:20 -07:00
Chia-chi Yeh
9f67adfc2d Add a new permission for user space VPN applications.
Change-Id: I2b87ef34db01209dac45fbceccafd865840830d5
2011-05-16 15:16:58 -07:00
Christopher Tate
4a627c71ff Full local backup infrastructure
This is the basic infrastructure for pulling a full(*) backup of the
device's data over an adb(**) connection to the local device.  The
basic process consists of these interacting pieces:

1. The framework's BackupManagerService, which coordinates the
   collection of app data and routing to the destination.

2. A new framework-provided BackupAgent implementation called
   FullBackupAgent, which is instantiated in the target applications'
   processes in turn, and knows how to emit a datastream that contains
   all of the app's saved data files.

3. A new shell-level program called "bu" that is used to bridge from
   adb to the framework's Backup Manager.

4. adb itself, which now knows how to use 'bu' to kick off a backup
   operation and pull the resulting data stream to the desktop host.

5. A system-provided application that verifies with the user that
   an attempted backup/restore operation is in fact expected and to
   be allowed.

The full agent implementation is not used during normal operation of
the delta-based app-customized remote backup process.  Instead it's
used during user-confirmed *full* backup of applications and all their
data to a local destination, e.g. via the adb connection.

The output format is 'tar'.  This makes it very easy for the end
user to examine the resulting dataset, e.g. for purpose of extracting
files for debug purposes; as well as making it easy to contemplate
adding things like a direct gzip stage to the data pipeline during
backup/restore.  It also makes it convenient to construct and maintain
synthetic backup datasets for testing purposes.

Within the tar format, certain artificial conventions are used.
All files are stored within top-level directories according to
their semantic origin:

apps/pkgname/a/  : Application .apk file itself
apps/pkgname/obb/: The application's associated .obb containers
apps/pkgname/f/  : The subtree rooted at the getFilesDir() location
apps/pkgname/db/ : The subtree rooted at the getDatabasePath() parent
apps/pkgname/sp/ : The subtree rooted at the getSharedPrefsFile() parent
apps/pkgname/r/  : Files stored relative to the root of the app's file tree
apps/pkgname/c/  : Reserved for the app's getCacheDir() tree; not stored.

For each package, the first entry in the tar stream is a file called
"_manifest", nominally rooted at apps/pkgname.  This file contains some
metadata about the package whose data is stored in the archive.

The contents of shared storage can optionally be included in the tar
stream. It is placed in the synthetic location:

shared/...

uid/gid are ignored; app uids are assigned at install time, and the
app's data is handled from within its own execution environment, so
will automatically have the app's correct uid.

Forward-locked .apk files are never backed up.  System-partition
.apk files are not backed up unless they have been overridden by a
post-factory upgrade, in which case the current .apk *is* backed up --
i.e. the .apk that matches the on-disk data.  The manifest preceding
each application's portion of the tar stream provides version numbers
and signature blocks for version checking, as well as an indication
of whether the restore logic should expect to install the .apk before
extracting the data.

System packages can designate their own full backup agents.  This is
to manage things like the settings provider which (a) cannot be shut
down on the fly in order to do a clean snapshot of their file trees,
and (b) manage data that is not only irrelevant but actively hostile
to non-identical devices -- CDMA telephony settings would seriously
mess up a GSM device if emplaced there blind, for example.

When a full backup or restore is initiated from adb, the system will
present a confirmation UI that the user must explicitly respond to
within a short [~ 30 seconds] timeout.  This is to avoid the
possibility of malicious desktop-side software secretly grabbing a copy
of all the user's data for nefarious purposes.

(*) The backup is not strictly a full mirror.  In particular, the
    settings database is not cloned; it is handled the same way that
    it is in cloud backup/restore.  This is because some settings
    are actively destructive if cloned onto a different (or
    especially a different-model) device: telephony settings and
    AndroidID are good examples of this.

(**) On the framework side it doesn't care that it's adb; it just
    sends the tar stream to a file descriptor.  This can easily be
    retargeted around whatever transport we might decide to use
    in the future.

KNOWN ISSUES:

* the security UI is desperately ugly; no proper designs have yet
  been done for it
* restore is not yet implemented
* shared storage backup is not yet implemented
* symlinks aren't yet handled, though some infrastructure for
  dealing with them has been put in place.

Change-Id: Ia8347611e23b398af36ea22c36dff0a276b1ce91
2011-05-10 17:52:51 -07:00
Mike Lockwood
4397c32402 am c535f7f2: DO NOT MERGE Revert "Remove permission android.permission.WRITE_MEDIA_STORAGE"
* commit 'c535f7f291f0bda688efcee62f21cf44d0ebe38e':
  DO NOT MERGE Revert "Remove permission android.permission.WRITE_MEDIA_STORAGE"
2011-05-04 08:57:29 -07:00
Mike Lockwood
c535f7f291 DO NOT MERGE Revert "Remove permission android.permission.WRITE_MEDIA_STORAGE"
We need this to allow MTP to access secondary external storage devices

This reverts commit 35a2ea2fbf156a503d1b0bc6ca7784e51e2462f4.

Conflicts:

	data/etc/platform.xml

Change-Id: Iaf9cf120217e8417d328a51db0d82be6835b0ff0
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-04 10:41:20 -04:00
Mike Lockwood
f60ba87f07 DO NOT MERGE Revert "Remove permission android.permission.WRITE_MEDIA_STORAGE"
We need this to allow MTP to access secondary external storage devices

This reverts commit 35a2ea2fbf156a503d1b0bc6ca7784e51e2462f4.

Conflicts:

	data/etc/platform.xml

Change-Id: I0b139a0f3b369c1080831a5b3a48f5d9a330b1bb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:56 -04:00