Commit Graph

624 Commits

Author SHA1 Message Date
d34d
7c2be690f4 Themes: Reference app resource when compiling theme [1/2]
This allows us to pass in the path to the target apk as an additional
included resource apk, allowing theme designers to reference styles
and attributes from the original package without needing to duplicate
them.  Duplicating attributes never worked quite well, and causes
all sorts of issues, including crashing apps.

Instead of a theme declaring attributes, that are app specific, it
simply reference the originals.  This way things like colors that
are style specific get included correctly.

Here's an example of stat_sys_wifi_signal_4_fully.xml using this feature.
By using ?com.android.systemui:attr/ we are able to reference attributes
defined in SystemUI directly in our themed resource.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="17.25dp"
    android:height="18dp"
    android:viewportWidth="46.0"
    android:viewportHeight="48.0">

    <path
        android:fillColor="?com.android.systemui:attr/backgroundColor"
        android:pathData="M20.4,18.0"/>
    <path
        android:fillColor="?com.android.systemui:attr/fillColor"
        android:pathData="M42.0,32.0l0.0,-4.0L26.0,18.0L26.0,7.0c0.0,-1.7 -1.3,-3.0 -3.0,
        -3.0c-1.7,0.0 -3.0,1.3 -3.0,3.0l0.0,11.0L4.0,28.0l0.0,4.0l16.0,-5.0l0.0,11.0l-4.0,
        3.0l0.0,3.0l7.0,-2.0l7.0,2.0l0.0,-3.0l-4.0,-3.0L26.0,27.0L42.0,32.0z"/>
</vector>

Change-Id: Ic00b5d91fc651a29a8c3ab341e5494107acd0463
TICKET: CYNGNOS-1645
2016-01-20 13:32:23 -08:00
Steve Kondik
911c7f3338 installd: Consider bundled app dir as a valid apk path
Change-Id: I92db56f21bf91e0816b63faffcfbb270ca2d8fca
2015-11-07 17:54:10 -08:00
Ricardo Cerqueira
1cdd1b5ad2 Android 6.0.0 release 26
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlYxAgIACgkQ6K0/gZqxDnjCqACfbBT6VOiUFQvRn7w1SAa+4rjF
 1IwAn2rBUqWo0dOKVwF1DDfFmGZXc8SB
 =1BqV
 -----END PGP SIGNATURE-----

Merge tag 'android-6.0.0_r26' into HEAD

Android 6.0.0 release 26

Conflicts:
	include/android/input.h

Change-Id: Ifa374c6d3055be3b8a5d60967f8b4c0043da739b
2015-11-05 01:41:42 +00:00
Ricardo Cerqueira
d15d2252b0 installd: Run all of the appt setup operations in the child process
Change-Id: Ifc18741380d7f922540d04ef622f17edfd87dbdf
2015-10-30 18:36:57 +00:00
d34d
716c2cf34a installd: Call pipe() before forking
Change-Id: Ideef9387c503a25dadb2afb4e4b394a2e61cd8e9
2015-10-28 18:35:09 -07:00
d34d
66a1d0d715 installd: Use -f (force overwrite) for aapt
When re-creating resource apks for themes, aapt will fail if the
apk already exists unless we use -f

Change-Id: If2c3a634aa3ca061009aa6892530d643f8f67e9f
2015-10-28 14:11:01 -07:00
d34d
2a7b426c03 Themes: Restructure resource cache [2/2]
Change-Id: Ib62081e0551e572680b92c0a587bdc7bbee9b62b
2015-10-26 18:34:55 -07:00
Clark Scheff
ea0c03875f Themes: Port to CM13 [2/3]
Themes: Forward port installd

Id: I5c03bdca30d55f252d486ddac0355f41623ba8d5

Themes: Remove legacy theme support

Id: I6823a6f2735f07f8e4a25a9c0f6f297577a554ab

Access Themed ResTables from compiled theme apk [2/2]

Before this patch the ResTable for a theme/app was created and
accessed seperate from the compiled APK. Since the compiled APK
has its own copy of the resources.arsc, we can just reuse the table
in the APK instead

Id: Ib7916eba5663db5d077d33fc02623748e8a9f10c

Send target sdk version to aapt [2/2]

If vector drawables are used in a theme we must have a minSdkVersion of 21 passed
to aapt or else aapt will Segfault.

Id: Ib5ffa6d12c91d465f3a603e03b09ab03b02715c7
Change-Id: Ie14322b7efb40b270abd3d4ca1b7c5f97bf4b5ca
2015-10-26 16:00:55 -07:00
Andreas Gampe
72ebebed87 Installd: Take boot status as dexopt parameter
Expect the boot status explicitly as a parameter so that we do not
have to rely on dev.bootcomplete, which isn't meaningfully set
when the device needs the decryption screen on boot.

Bug: 23898216
Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
2015-09-21 13:21:30 -07:00
Andreas Gampe
d693fc4c50 Merge "Installd: Allow different behavior before bootcomplete" into mnc-dr-dev 2015-09-16 23:44:06 +00:00
Andreas Gampe
21948005f0 Installd: Allow different behavior before bootcomplete
Check dev.bootcomplete in dex2oat(). Use the information for
two changes.

Only switch to the background when we're post bootcomplete.
This will ensure better utilization after upgrades.

Add a second dex2oat-threads property that is used pre
bootcomplete. A separation of these phases allows using less
cores when the device is up, freeing up resources for other
purposes, e.g., avoid jank. The precedence during boot is the
boot property, or the image property if the former doesn't
exist, or the default property as a fallback.

Bug: 23898216
Bug: 24004256
Change-Id: I5063f3fc4b437cbe88c4e94584e01c1c78eccc4d
2015-09-16 15:10:55 -07:00
Lorenzo Colitti
6afc38c45a Dump the ND offload status and address table in bugreports.
Also, move NetworkDiagnostics between the two runs of getting the
wifi counters, so we can see the effect on the counters of
sending our probe packets.

Bug: 23661687
Change-Id: I3f81c003a35f50ac1cb8e77d0a8c73dae4fd91f3
2015-09-09 22:59:25 +09:00
Martijn Coenen
0bcd97a748 Map realtime to clock_monotonic.
This maps a monotonic timestamp to the
corresponding real-time timestamp, which
can be used to match up the traces with
other logs that use real-time.

Also write clock_sync records first instead of at
the end, to avoid not being to write it due to the
buffer being full.

Bug: 23668823
Change-Id: I644aeea496197e194ec30f808f754e3e043d905f
2015-08-31 09:25:13 +00:00
Mark Salyzyn
ecc0763e6c dumpstate: add logcat -b all -S
(cherry pick from commit e3c4df96083231b519dad919fd0ed6624100b368)

- For those that are proud to call themselves logspam police
- Every time someone declares that something is too chatty, or that
  they lost their logs because they were declared too chatty and
  their associated logs were aggresively pruned we generally
  ask them to report the logger statistics to pinpoint what software
  product that is the elephant in the room.
- Every time we want to spawn a new 'stop being so spammy' bug spawned
  off a bugreport collected for another purpose, we *wish* we had the
  logger statistics to help add gravitas to the claim that some piece
  of software is the top, or near the top, polluter.

Bug: 22351810
Change-Id: Ifae33cd21d0ae2917a3b4381502d723725b1701c
2015-08-11 14:56:49 -07:00
Jeff Sharkey
a2307aefd0 Only restorecon_data once for all users.
restorecon_data already iterates across all found users internally,
so we don't need to call it for each UID moved.  In fact, this was a
bug that caused data for the owner to be relabeled when moving apps
back to internal storage.

Bug: 21813384
Change-Id: I5ba76d4f30d129365864c8a25b665f344b99a6b4
2015-07-20 16:26:22 -07:00
Andreas Gampe
c968c0175e Installd: Add a swap override flag
Add dalvik.vm.dex2oat-swap system property to override a default
decision.

Bug: 20658562
Change-Id: I34368c6e435d1a9ceec20a0bf1c8c6213e527f5e
2015-07-16 15:55:41 -07:00
Jeff Sharkey
31f08986f8 Split app move into separate copy/delete steps.
App movement now has three distinct stages: copying, scanning, and
cleanup.  Previously, a battery pull late in the move process would
end up with packages.xml pointing at the old location which had been
torn down.  Now, we update packages.xml to point at the new location
as the "source of truth" before we start deleting the old location.

Bug: 21831336
Change-Id: I62b8916c673265c240e2574ea968cdce5a7a0074
2015-07-07 13:31:53 -07:00
Daichi Hirono
a2ccb9e43d Fix directory path of codecache.
Previously installd removed the normal cache directory when delete_code_cache is
called. It should delete the code cache directory.

BUG=21206499

Change-Id: I5774430e389e22805fa7984b4c83420c3677ca75
2015-06-24 15:57:06 +09:00
David Srbecky
528c8ddc60 Rename --include-cfi to --generate-debug-info.
This follows a change in dex2oat.

(cherry picked from commit 741a6ff2e2)

Bug: 21924613
Change-Id: I6b2df1668fdd09d82cfe86e6e51360b954b6c8a9
2015-06-19 02:32:41 +01:00
Andreas Gampe
3822b8b79c Installd: Add debug.gencfi to run_dex2oat
Add the debug.gencfi system property that forces generation of
CFI data.

(cherry picked from commit 816243d470)

Bug: 21924613
Change-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369
2015-06-19 02:31:33 +01:00
Mark Salyzyn
8f37aa5011 dumpstate: modify logcat timeout to compensate for storage speed
(cherry pick from commit f989162bb8)

Discover the logcat buffer size, divide by the worst storage
speed in kb/s, and multiply by ten to estimate the timeout in
ms for each named buffer. If that value is less than 20 seconds,
then select 20 seconds. Apply this to each logcat request.

Bug: 21555259
Change-Id: Id36aebff83cb06e94350e4a84fa266b66a8444fc
2015-06-15 07:28:28 -07:00
Sharvil Nanavati
94a9875f75 Merge "Remove Bluedroid kernel dump from dumpstate." into mnc-dev 2015-06-12 21:30:03 +00:00
Sharvil Nanavati
3ba7e729a7 Remove Bluedroid kernel dump from dumpstate.
Bluedroid doesn't have much of a kernel component and no devices
expose a bluedroid node in debugfs.

Change-Id: I5600e88c543a109257d95591704a8f2a7261dfdc
2015-06-12 11:35:24 -07:00
Erik Kline
47a7dc81d0 Merge "Incorporate network diagnostics during a bugreport" into mnc-dev 2015-06-09 23:24:54 +00:00
Narayan Kamath
d845c96128 Add an installd command to link files
Given a pair of absolute paths {from_path, to_path} , check that
they are both valid apk subpaths (eg. /data/app/package/foo) and
link(2) to_path to from_path. This is required by staged installs,
where we link existing apks and oat files to their staging location.

bug: 20889739
Change-Id: I3b5e3b43677af68be59308121a4409caaa6a72f0
2015-06-09 11:35:43 +01:00
Erik Kline
90926336c1 Incorporate network diagnostics during a bugreport
Bug: 21449922
Change-Id: I81a3774683c08f5d4ab4ea75bec45d279fb210ec
2015-06-09 17:38:12 +09:00
Stephen Smalley
2139c7fa37 Call selinux_status_open() prior to use of selinux_status_updated().
The selinux_status_*() interfaces require calling selinux_status_open()
first.  Since this was not being called by servicemanager, the
selinux_status_updated() call was always failing and servicemanager
was not reloading service_contexts upon a policy reload.

(cherrypicked from commit bea0746b24)

Change-Id: I6ac62e114bbca99c5f0999feb918fcde15009274
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-06-03 13:46:08 -07:00
Elliott Hughes
bfb1f1cc83 Don't use TEMP_FAILURE_RETRY on close in frameworks/native.
Bug: http://b/20501816
Change-Id: Id13a62f02243c6c4831e2f47944dc34fa822f5b6
(cherry picked from commit 997abb668b)
2015-05-15 17:26:44 -07:00
John Reck
2c237ee1d5 Fix async_stop
Change-Id: I68a258cf71cfcd999bbd568ab3c96255c11bec41
2015-05-15 10:00:34 -07:00
Aaron Schulman
cbe13ef59b Added Voltage and Current regulator ftrace events to atrace
Cherry-pick of c2c6ecd119 from AOSP

Tracing the state of the voltage and current regulators enables a developer
to attribute power consumption measurements to specific perhipherals and
cores. Unlike other indirect methods of tracing when peripherals and cores
are toggled, the regulator ftrace event indicates the exact point in time
when the kernel switches on or off the device. For example, in the following
trace, a developer can see exactly when the krait2 core starts receiving
power, and and when the voltage is set for voltage scaling.

mpdecision-2172  [000] ...1  1566.665481: regulator_enable: name=krait2
mpdecision-2172  [000] ...1  1566.665493: regulator_enable_delay: name=krait2
mpdecision-2172  [000] ...1  1566.665495: regulator_enable_complete: name=krait2
<...>-4133  [002] ...1  1566.666891: regulator_set_voltage: name=krait2 (1075000-1100000)

Change-Id: Ia322206ef74496daf1d9baa03545d8e89e398487
Signed-off-by: Aaron Schulman <aschulman@google.com>
2015-05-07 09:23:23 -07:00
Mark Salyzyn
326842fca4 dumpstate: report per-partition MMC performance
(Cherry pick from commit 540e3de99f)

Change-Id: If5cabe186d8377056effa1c0672a90e277cd7221
2015-05-01 14:50:55 -07:00
Jeff Sharkey
d792118c49 Offer to move both code and data together.
We now move code under /data/app/com.example when a complete move
is requested.  This really only works for new cluster-style installs
that also have native libraries and OAT contained inside.

Teach measuring code about cluster-style installs when measuring
app footprint.  Also offer to measure private data space for all
users.

Bug: 19993667, 20275578
Change-Id: I6df7b947cb5cc8a4552f56f4b64a661e8512389f
2015-04-30 16:02:58 -07:00
Ashish Sharma
8b3e133e41 Inclide checkin format of dumpsys package in bugreport.
Change-Id: I809377f80e314b358eba22fa916e53c81cac2c47
2015-04-28 13:32:54 -07:00
Jeff Sharkey
1044367a73 am a36a43b3: am c200d20e: am dfc30ae3: Merge "Command to move private app data between volumes."
* commit 'a36a43b354b248cef9407de42fb6b87e1c7085f6':
  Command to move private app data between volumes.
2015-04-10 21:32:03 +00:00
Jeff Sharkey
e363724230 Command to move private app data between volumes.
New "mvuserdata" command will move all private app data from one
volume UUID to another.  It leverages the existing "cp" toybox
command to do the heavy lifting for all known users, preserving
details like timestamps and permissions.  It invokes restorecon()
to correctly label the new location when the copy is finished.

Changes installd to no longer drop capabilities, so we run as root
again.  This also allows us to exec "cp" with CAP_DAC_OVERRIDE and
CAP_FOWNER still in effect.

Bug: 19993667
Change-Id: I1f407a7c4a1af97ca5afc27b04eb16b4936cbdef
2015-04-10 00:21:35 -07:00
Jeff Sharkey
16af1b044e am 8571e647: am 997eb5dd: am 44a38d93: Merge "Start accepting volume UUIDs from framework."
* commit '8571e647da1e9c2227d22034ba6462235273cb02':
  Start accepting volume UUIDs from framework.
2015-04-09 22:17:46 +00:00
Jeff Sharkey
6fe28a0601 Start accepting volume UUIDs from framework.
We're now parsing and passing through volume UUIDs sent across the
command socket.  The "!" argument value is treated as null, which
means internal storage.

Bug: 19993667
Change-Id: I17729a769ce687a2e94e85991a6338c77ded0b66
2015-04-09 14:15:55 -07:00
Jeff Sharkey
fe62ea5d06 am ad6f4996: am 25327881: am 066fadb9: Merge "More volume UUID awareness."
* commit 'ad6f4996dc909dcb8e6e369bf41be514077fb142':
  More volume UUID awareness.
2015-04-09 20:24:05 +00:00
Jeff Sharkey
41ea424413 More volume UUID awareness.
Teach free_cache() and restorecon_data() about building per-volume
paths.  Also clean up restorecon_data() by using std::string when
building paths.

Clearer names for path building utility methods, and tests to verify.

Bug: 19993667
Change-Id: Iacfbcdaa5b901cc2490bc8eba366dfdeb44f1d93
2015-04-09 11:44:06 -07:00
Andreas Gampe
e92939471a am 6930a29a: am cae83eca: am f9ab2ad2: Merge "Installd: Fix Clang build"
* commit '6930a29af13f4a958fa7cba544233d2febe4040b':
  Installd: Fix Clang build
2015-04-09 17:36:05 +00:00
Jeff Sharkey
5fd5dd676a am 65fe5dfd: am cbde9b92: am d107c305: Merge "Plumb through volume UUID when building paths."
* commit '65fe5dfdcd08650e0dfbb39f4a716567fb910cab':
  Plumb through volume UUID when building paths.
2015-04-09 17:00:44 +00:00
Andreas Gampe
0ad7a11003 Installd: Fix Clang build
Remove some unused parameters and variables.

Change-Id: I507ae48fe1744b800ceb29192d463fd26c2ccda7
2015-04-09 09:54:35 -07:00
Jeff Sharkey
d107c305f7 Merge "Plumb through volume UUID when building paths." 2015-04-09 16:27:19 +00:00
Richard Uhler
9cebc2bc77 am b8d1ee37: am 19db8c88: am ab91d03b: Merge "installd: Add support for SELF_PATCHOAT_NEEDED."
* commit 'b8d1ee37c4a6897442f5d381d5eb7162e04fcebd':
  installd: Add support for SELF_PATCHOAT_NEEDED.
2015-04-09 14:51:00 +00:00
Richard Uhler
ab91d03b0d Merge "installd: Add support for SELF_PATCHOAT_NEEDED." 2015-04-09 14:13:27 +00:00
Mark Salyzyn
82f393aad6 am d029e95a: am 1b0a8702: am ad436ab5: Merge "dumpstate: scrub APANIC"
* commit 'd029e95a58ea0927ebd3431d9991cd316e568002':
  dumpstate: scrub APANIC
2015-04-08 22:07:20 +00:00
Mark Salyzyn
f423b57dd9 dumpstate: scrub APANIC
Bug: 19525200
Change-Id: Ia2d2857cac953fb4ceafb66ddf775d89d7a777b1
2015-04-08 10:51:51 -07:00
Jeff Sharkey
c03de09173 Plumb through volume UUID when building paths.
Since app data paths can live on expanded storage devices, accept the
target volume UUID when building paths.  The null UUID indicates the
default internal storage.

To improve readability, start using std::string in several places,
which throws when allocations fail.  For now, perform last-second
sanity checks on incoming path arguments, but we'll eventually want
to check arguments as they come through installd.cpp, instead of
crashing the entire daemon.

Also remove "lib" symlink code from install() and make_user_data(),
since we're no longer supporting /data/app-lib.  The framework
already uses linklib() to create the right symlink for the selected
ISA-specific library dir.

Bug: 19993667
Change-Id: Ib9343575ffb62bf3981e19375de8f3822fc31e28
2015-04-07 20:13:27 -07:00
Richard Uhler
c92fb6247d installd: Add support for SELF_PATCHOAT_NEEDED.
Change-Id: Ib9a6373f98474f1242367b5285086251a9d580e5
2015-04-07 16:39:29 -07:00
Jeff Sharkey
580e51458e am eb3704a5: am 9e99fce8: am 1cd030be: Merge "Switch installd to compile as C++."
* commit 'eb3704a58e62c0f85cfea776df1040b677263c80':
  Switch installd to compile as C++.
2015-04-07 21:53:19 +00:00