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.
to install an app on sdcard, just resources.
Add new install path for /asec in installd.
ignore . when checking for apk path since the sdcard packages id'ed
by package name.
Add new -s option to adb shell pm
Refactor fwd locked from scanMode to ApplicationInfo.
Add new flag for sd install
Add new parse flags for fwd locking and installing on sdcard
New mock api's in PackageManagerService to invoke MountService api's. These
will be refactored again and so have been wrapped internally.
Some error codes in PackageManager
Changes in PackageManagerService to use mPath and mScanPath during installation
and switch to using PackageParser.Package.applicationInfo attributes for
source and public resource directories.
Some known issues that will be addressed later
using system_uid for now. needs some tinkering with uid and packagesetting creation to use the actual app uid
error handling from vold not very robust. ignoring lot of things for now
sending a delayed destroy to delete packages. will revisit later
revisit temp file creation later. just copy for now
I added Intent.ACTION_GLOBAL_SEARCH a little while ago, since
I thought we needed it to be different from the old
SearchManager.INTENT_ACTION_GLOBAL_SEARCH. Since GlobalSearch is
no longer built, reusing SearchManager.INTENT_ACTION_GLOBAL_SEARCH
should be fine.
Change-Id: If3a11a77a8e1d9940cf2b20817a60888cdd9d69f
Mention the desirability of using "?"-substitution in the where clause,
and reemphasize the importance of using an explicit projection.
Change-Id: Iaa489d50db409f34e78bcd55253e5a4e53445cf2
Merge commit '83652ebfe1963bcecdcf24383165904223baca6e'
* commit '83652ebfe1963bcecdcf24383165904223baca6e':
Implement API to have new broadcasts replace existing broadcasts.
Use this in various places where it should serve no purpose to deliver
both broadcasts. This is intended to reduce somewhat the flurry of
broadcasts that we churn through during boot.
Merge commit 'fc96523b94ddaad1da39bee0d6861e2186d8479c'
* commit 'fc96523b94ddaad1da39bee0d6861e2186d8479c':
move event log tags used by SyncAdapter into a local .logtags file
Merge commit '328c0e7986aa6bb7752ec6de3da9c999920bb55f' into eclair-mr2-plus-aosp
* commit '328c0e7986aa6bb7752ec6de3da9c999920bb55f':
- removed the concept of Entity from the ContentProvider APIs
Merge commit 'eb68a226563f60265663f1688dda77c4f909e5de'
* commit 'eb68a226563f60265663f1688dda77c4f909e5de':
Add bindService API to not bring ot foreground.
Merge commit '15650af4ab1df7fb84839162f9409d88cb4a3ccc'
* commit '15650af4ab1df7fb84839162f9409d88cb4a3ccc':
Updating list of standard Intents in android.content.Intent
- removed the parcelling ability from Entity and EntityIterator and made them public
- added an EntityIterator abstract implementation that allow easy wrapping of a Cursor
- changed the VCard code to use the new APIs
This obsoletes the following:
- The need to run SearchDialog in the system process.
- The global search mode code in SearchDialog.
- The GlobalSearch package.
- The search widget built into Launcher.
I will remove these in future changes.
Change-Id: I154386b1d6be73cfeab8376b6959a1dc5483e5f0
Add a new flag for bindService that tells the system to not bring the
target service's process in to the foreground scheduling class. This is
used by the sync system to not cause the current sync adapter to come to
the foreground as it is running.
Also some small improvements to the debug output of the process list
of oom adj and scheduling info.
Merge commit 'd59fb6e7435b57d83662b196f5430e6f2bc5427b' into eclair-plus-aosp
* commit 'd59fb6e7435b57d83662b196f5430e6f2bc5427b':
Updating list of standard Intents in android.content.Intent
Merge commit 'd59fb6e7435b57d83662b196f5430e6f2bc5427b' into eclair-mr2
* commit 'd59fb6e7435b57d83662b196f5430e6f2bc5427b':
Updating list of standard Intents in android.content.Intent
Merge commit '1067c3cbab73a4bc75a2ebd2e3c51077db96fa24' into eclair-plus-aosp
* commit '1067c3cbab73a4bc75a2ebd2e3c51077db96fa24':
remove an old STOPSHIP comment
Merge commit '1067c3cbab73a4bc75a2ebd2e3c51077db96fa24' into eclair-mr2
* commit '1067c3cbab73a4bc75a2ebd2e3c51077db96fa24':
remove an old STOPSHIP comment
Merge commit '8ad6ec2eb4a58a6dad34be60d49f32a53f2419f4'
* commit '8ad6ec2eb4a58a6dad34be60d49f32a53f2419f4':
Implement new MockContentProvider. Also make ContentProvider aware of the class.
Merge commit 'a8dd0a545409af281b73e483dc203f6e3f8d1de6'
* commit 'a8dd0a545409af281b73e483dc203f6e3f8d1de6':
don't reschedule syncs that failed with a tooManyRetries error
Rename the old MockContentProvider to MockIContentProvider since it is
more appropriate name.
Detail:
Current developers inevitably depend on the backend used by ContentProvider,
which is useful but not ideal nor "testable" from the view of them.
Current MockContentResolver only accepts exact "ContentProvider" class, not
IContentProvider interface, since we want to hide "IContentProvider" while
the old MockContentProvider implements IContentProvider and as a result some
methods we want to hide may be exposed to the public SDK now and probably
for the future.
On the other hand, ContentProvider is not interface but an exact class
heavily depends on the internal logic and not suitable for external
developers to use for tests.
The new MockContentProvider introduces the mock implementation
for ContentProvider.
It extends ContentProvider, so "is" ContentProvider, but tries to avoid
depending on any backend System like IPC in Android, etc.
This should be useful from the view of application developers who do not
want to be confused with ContentProvider/ContentResolver backend
implementation "at all" and want to use MockContentResolver without
any other ContentProvider implementations tightly connected to the
external worlds.