Commit Graph

60516 Commits

Author SHA1 Message Date
Narayan Kamath
14bd75fa79 Zygote : Block SIGCHLD during fork. am: b1f1209d9a
am: 35b8453338

Change-Id: I7c73b1a37d79f31ad8fff6d0b83426debbfd88f9
2016-11-10 11:12:11 +00:00
Narayan Kamath
35b8453338 Zygote : Block SIGCHLD during fork.
am: b1f1209d9a

Change-Id: I3658f583c82dd6243089aaa74ad731a5bfa85b01
2016-11-10 11:05:42 +00:00
Narayan Kamath
b1f1209d9a Zygote : Block SIGCHLD during fork.
We close the android logging related sockets prior as late as possible
before every fork to avoid having to whitelist them. If one of the
zygote's children dies after this point (but prior to the fork), we can
end up reopening the logging sockets from the SIGCHLD signal handler.

To prevent this from happening, block SIGCHLD during this critical
section.

Bug: 32693692
Test: Manual

(cherry picked from commit e9a525829a)

Zygote: Unblock SIGCHLD in the parent after fork.

Follow up to change e9a525829a. Allows the zygote to
receive SIGCHLD again and prevents the zygote from getting into a
zombie state if it's killed.

Contributed-By: rhed_jao <rhed_jao@htc.com>
Bug: 32693692
Test: manual

(cherry picked from commit 1480dc3e97)

Change-Id: If89903a29c84dfc9b056f9e19618046874bba689
2016-11-10 10:06:01 +00:00
Narayan Kamath
e82866df3f Zygote: Additional whitelisting for legacy devices. am: 7d302e018d
am: f369b3ce75

Change-Id: Id0794434479585b2cf4b4996256a3cb9374fd9a7
2016-11-09 20:16:06 +00:00
Narayan Kamath
f0cd32619e Zygote: Additional whitelists for runtime overlay / other static resources. am: 0ad0e859f6
am: 1e6a5d11a6

Change-Id: Ia98abb9cb437dd3c42b80de5c0cd98c965e6603e
2016-11-09 20:14:07 +00:00
Narayan Kamath
f369b3ce75 Zygote: Additional whitelisting for legacy devices.
am: 7d302e018d

Change-Id: I15f8e0ec93f502ca45a9b00d93baa66780701996
2016-11-09 10:24:53 +00:00
Narayan Kamath
1e6a5d11a6 Zygote: Additional whitelists for runtime overlay / other static resources.
am: 0ad0e859f6

Change-Id: Id24798deebb738ba6c6b6abef28ca96c0c61dc79
2016-11-09 09:39:20 +00:00
Narayan Kamath
7d302e018d Zygote: Additional whitelisting for legacy devices.
On M and below, we provide a blanket whitelist for all files under
"/vendor/zygote_whitelist". This path is whitelisted purely to allow
this patch to be applied easily on legacy devices and configurations.

Note that this does not amount to a loosening of our security policy
because whitelisted files are reopened anyway.

Bug: 32691930
Test: manual

(cherry picked from commit 5e2f7c6229)

Change-Id: I9700fc7b469d0bc4d876c52292f25888b94a5223
2016-11-08 09:42:11 +00:00
Narayan Kamath
0ad0e859f6 Zygote: Additional whitelists for runtime overlay / other static resources.
Partially cherry picked from commit 1c15c63578.

These files are safe to reopen for the same reason that files in
/system/framework are. They're regular files and will not change after
the first zygote fork.

Bug: 32618130

Change-Id: I119e0bfcbf397cb331064adf148d92a5cd3ea92f
2016-11-08 09:41:49 +00:00
Xin Li
7e0483fcec Merge "Merge "DO NOT MERGE - Added Emergency affordance feature" into
lollipop-mr1-dev" into lmp-mr1-dev.

Change-Id: Ia47211f647d0d49b0adf3cb65eba4b9b686bcbff
2016-10-13 13:54:54 -07:00
Selim Cinek
1b60879b4b DO NOT MERGE - Added translations for emergency action string
Bug: 30404490
Change-Id: Ic20d93005882bb71cef32a705443e427b0a9bd71
2016-10-12 23:22:41 +00:00
Selim Cinek
5fbc86bfd6 DO NOT MERGE - Added Emergency affordance feature
Added a service that listens whether emergency affordances
are necessary.

If the they are needed, it adds an option to the
global actions dialog that directly launches the
emergency call and also adds a long-press listener
to the keyguard emergency button.

Test: adb shell settings put global force_emergency_affordance 1 && adb shell settings put global emergency_affordance_number 111112
Bug: 30404490
Change-Id: Ib96a15da2ef4b568a8d77140ebca6aa6f20f5ddb
2016-10-05 18:40:07 -07:00
Ajay Panicker
46442d1be1 [DO NOT MERGE] Prevent FDs from being leaked when accepted sockets are closed
am: 85bc33a8f4

Change-Id: I2194d4c01e8bff53a7d6fcdf25513b216a511155
2016-09-21 21:15:32 +00:00
Ajay Panicker
447ac4b31d Merge "[DO NOT MERGE] Prevent FDs from being leaked when accepted sockets are closed" into lmp-mr1-dev 2016-09-21 21:08:10 +00:00
Ajay Panicker
f78ff48d0d Merge "[DO NOT MERGE] Prevent FDs from being leaked when accepted sockets are closed" into lmp-dev 2016-09-21 21:08:07 +00:00
Ajay Panicker
cc4fd13113 [DO NOT MERGE] Fix setPairingConfirmation permissions issue (2/2)
am: bb9b38b957

Change-Id: I8083cdc24b838d235c83360372afc198c2f9f6c5
2016-09-21 01:02:28 +00:00
TreeHugger Robot
19b09dd0d3 Merge "[DO NOT MERGE] Fix setPairingConfirmation permissions issue (2/2)" into lmp-dev 2016-09-21 00:07:38 +00:00
Ajay Panicker
bb9b38b957 [DO NOT MERGE] Fix setPairingConfirmation permissions issue (2/2)
setPairingConfirmation was set to only require BLUETOOTH_ADMIN
permission which shouldn't be able to set the confirmation itself.

This is restricted to BLUETOOTH_PRIVILEGED permission.

Bug: 29043989
Change-Id: Iddc935f0b02f5ff56e930914b4b664377e786184
2016-09-20 23:47:09 +00:00
Jeff Sharkey
6db572cf00 Use "all_downloads" instead of "my_downloads". am: 1547194418
am: f6d7c1ed15

Change-Id: Icb352ec7b0e746264a6311b5fba1fc1272b627b0
2016-09-16 21:53:37 +00:00
Jeff Sharkey
f6d7c1ed15 Use "all_downloads" instead of "my_downloads".
am: 1547194418

Change-Id: I6dabba1f82ef1989eb2a52c3c493127a174ff315
2016-09-16 21:48:24 +00:00
Jeff Sharkey
1547194418 Use "all_downloads" instead of "my_downloads".
We can no longer return the "my_downloads" paths: if those Uris were
shared beyond the app that requested the download, access would be
denied.  Instead, we need to switch to using "all_downloads" Uris so
that permission grants can be issued to third-party viewer apps.

Since an app requesting a download doesn't normally have permission
to "all_downloads" paths, DownloadProvider now issues narrow grants
toward the owner of each download, both at device boot and when new
downloads are started.

Bug: 30537115, 30945409
Change-Id: I533125b36444877f54373d88922f2acc777e250b
2016-09-16 12:04:05 -06:00
Ajay Panicker
85bc33a8f4 [DO NOT MERGE] Prevent FDs from being leaked when accepted sockets are closed
Bug: 28672558
Change-Id: I4bc14bd7f098e34012c2ae1eeba2d439145901f0
2016-09-14 19:17:49 +00:00
Ajay Panicker
27b3d578b9 [DO NOT MERGE] Prevent FDs from being leaked when accepted sockets are closed
Bug: 28672558
Change-Id: I4bc14bd7f098e34012c2ae1eeba2d439145901f0
2016-09-08 13:23:02 -07:00
Ajay Panicker
0ea21bc70e [DO NOT MERGE] Fix setPairingConfirmation permissions issue (2/2)
setPairingConfirmation was set to only require BLUETOOTH_ADMIN
permission which shouldn't be able to set the confirmation itself.

This is restricted to BLUETOOTH_PRIVILEGED permission.

Bug: 29043989
Change-Id: Iddc935f0b02f5ff56e930914b4b664377e786184
2016-09-08 18:03:58 +00:00
Narayan Kamath
9a409265fc Backport changes to whitelist sockets opened by the zygote. am: 7ec85f9d54
am: f7b9f84f87

Change-Id: I317cecff389f30c5d47e4adee1afafbde8d9d23d
2016-09-07 18:58:41 +00:00
Narayan Kamath
f7b9f84f87 Backport changes to whitelist sockets opened by the zygote.
am: 7ec85f9d54

Change-Id: I6db56b5b06636201382f6d908297644183253c0b
2016-09-07 18:53:40 +00:00
Narayan Kamath
7ec85f9d54 Backport changes to whitelist sockets opened by the zygote.
This is the backport of the following commits :

Commit c5f27a7cb2:
-----------------------------------------------

Reopen whitelisted zygote file descriptors after a fork.

We don't want these descriptors to be shared post-fork, so we'll
have to close and reopen them when the zygote forks. The set of
open descriptors is checked against a whitelist and it is a fatal
error if a non whitelisted FD is opened. It is also a fatal error
if anything other than a regular file / character device or socket
is opened at the time of forking.

This work is done in two stages :
- An initial list of FDs is constructed and cached prior to the
  first zygote fork.

- On each subsequent fork, we check whether the list of open FDs
  has changed. We are currently tolerant of changes, but in the
  longer term, it should be a fatal error if the set of open file
  descriptors in the zygote changes.

- Post fork, we traverse the list of open descriptors and reopen
  them if necessary.

bug: 30963384

Commit 3764a260f0:
-----------------------------------------------

Add a whitelist of sockets on fork.

Maintain a whitelist of AF_UNIX sockets that are permitted
to exist at the time of forking. If an open socket does not belong
to the whitelist (or is not AF_UNIX), the process will abort. If an
open socket is whitelisted, it will be redirected to /dev/null after
a sucessful fork. This allows us to unify our handling of the special
zygote sockets (/dev/socket/zygote[_secondary]) with the existing
whitelist of non socket file descriptors.

This change also removes non-fatal ALOGW messages since they have the
side effect of reopening the logging socket.

bug: 30963384

Commit 0b76d6a28e:
-----------------------------------------------
fd_utils: Fix broken usage of iterators.

There were two separate issues here :
- RestatInternal was using an iterator after a call to erase(). This
  will not work because it will be invalidated.
- The "standard" for loop idiom for iterating over a map while making
  structural changes to it is broken. Switch to a while loop and treat
  cases where elements are erased differently from cases where they
  aren't.

bug: 31092930
bug: 30963384

Plus additional changes:
-----------------------------------------------
- change std::unordered_map to std::tr1::unordered_map.
- add /dev/alarm and /dev/__properties__ to the whitelist.
- map.erase(iterator) returns void prior to C++11, so need the kludge
  of calling erase(it++).

Change-Id: I694ff66d5f227239b0190ffc2287882b16e336fa
2016-09-07 18:48:48 +01:00
Narayan Kamath
8788a2413c Process: Fix communication with zygote. am: e29c6493c0
am: 1bd43c162f

Change-Id: Ic38c43db48584b3d899e120fd65a4058d806a39f
2016-08-18 09:58:45 +00:00
Narayan Kamath
1bd43c162f Process: Fix communication with zygote.
am: e29c6493c0

Change-Id: I86b073f7f69943911aa0bea782e29ae6d86609a2
2016-08-18 09:53:12 +00:00
Narayan Kamath
e29c6493c0 Process: Fix communication with zygote.
Don't write partial requests, and don't return (or throw) early after
partially reading a response.

bug: 30143607

(cherry-picked from commit 448be0a622)

Change-Id: I5881fdd5e81023cd21fb4d23a471a5031987a1f1
2016-08-16 16:17:29 +00:00
Sudheer Shanka
177422c91e Merge \"DO NOT MERGE: Reduce shell power over user management.\" into lmp-mr1-dev
am: f1d9152f9f

Change-Id: I61633ebe7944d54f3da36eedaf4bab7308ff3c96
2016-07-12 19:11:35 +00:00
Sudheer Shanka
f1d9152f9f Merge "DO NOT MERGE: Reduce shell power over user management." into lmp-mr1-dev 2016-07-12 19:03:14 +00:00
Sudheer Shanka
3f12e8e2bf DO NOT MERGE: Reduce shell power over user management.
Remove MANAGE_USERS permission from shell and whitelist it for
some specific functionality.

Bug: 29189712
Change-Id: Ifb37448c091af91991964511e3efb1bb4dea1ff3
2016-07-12 01:59:08 +00:00
fionaxu
92b8cbd472 DO NOT MERGE revert system api loadSafeLabel
am: 863ac471cf

Change-Id: I9230b78b2e1ac29cfd76db00be0c31e690566ac7
2016-07-07 01:07:43 +00:00
fionaxu
863ac471cf DO NOT MERGE revert system api loadSafeLabel
Bug: 28557603
Change-Id: Ib2dd0fc19217655a4d6b49cdf49ce36dfd6577d5
2016-07-06 17:05:32 -07:00
fionaxu
0fffbcb158 DO NOT MERGE revert public api loadSafeLabel
Bug: 28557603
Change-Id: I61f4939864228fb50112502044da599b9cec2430
2016-06-28 00:43:35 -07:00
Sudheer Shanka
e64034a27d Merge "DO NOT MERGE: Reduce shell power over user management." into lmp-dev 2016-06-21 22:03:09 +00:00
Sudheer Shanka
65f53e1445 DO NOT MERGE: Reduce shell power over user management.
Remove MANAGE_USERS permission from shell and whitelist it for
some specific functionality.

Bug: 29189712
Change-Id: Ifb37448c091af91991964511e3efb1bb4dea1ff3
2016-06-21 18:45:13 +00:00
Christopher Tate
ec6c3f7a32 Don\\'t trust callers to supply app info to bindBackupAgent() am: c58054f25f
am: cd777e95a7

Change-Id: I199f1354df85fcda372002887eafc1e6fb9b19d8
2016-06-16 22:27:04 +00:00
Christopher Tate
cd777e95a7 Don\'t trust callers to supply app info to bindBackupAgent()
am: c58054f25f

Change-Id: I3b0bd91c38b5f13770f09f39c2eea78b63c29d7c
2016-06-16 22:21:37 +00:00
Christopher Tate
c58054f25f Don't trust callers to supply app info to bindBackupAgent()
Get the canonical identity and metadata about the package from the
Package Manager at time of usage rather than rely on the caller to
have gotten things right, even when the caller has the system uid.

Bug 28795098

Change-Id: I215786bc894dedf7ca28e9c80cefabd0e40ca877
2016-06-14 13:28:43 -07:00
fionaxu
1e8fe12f4e resolve merge conflicts of 2c53526 to lmp-mr1-dev
am: c196526f8e

Change-Id: Ic0f9fb749282b46d5c41fd36aaab42090ecbd0b9
2016-06-08 16:58:13 +00:00
fionaxu
c196526f8e resolve merge conflicts of 2c53526 to lmp-mr1-dev
Change-Id: I4fe45fae0a98934ac9b0f6f48c8cab8546392641
2016-06-07 22:01:19 -07:00
fionaxu
2c53526b4b Backport loadSafeLabel changes am: be2865a60a am: 4c50846519
am: 9a825b0fd5

Change-Id: Ie3042058420fbd3018ae238dab4129de58ec69c8
2016-06-07 23:23:10 +00:00
fionaxu
9a825b0fd5 Backport loadSafeLabel changes am: be2865a60a
am: 4c50846519

Change-Id: Ia31592def4d88a3a9e92a7e0c9126691c64a5fc4
2016-06-07 23:20:04 +00:00
fionaxu
4c50846519 Backport loadSafeLabel changes
am: be2865a60a

Change-Id: Ifabe996449c534c5085245c4f07e2d865a23e126
2016-06-07 23:13:08 +00:00
fionaxu
be2865a60a Backport loadSafeLabel changes
Bug:23531798
Bug:28557603
Change-Id: Iee49f7c37d6a42fe74077bb15ed47919d351d172
2016-06-07 22:51:28 +00:00
Paul Jensen
75095e6f02 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434
am: 42a5983364

* commit '42a59833648243a8ac3aec7adf7f4ca0d3babdd1':
  Don't pass URL path and username/password to PAC scripts

Change-Id: Id92ff5deed707c029fc6d5806aff2a324961c2ec
2016-05-26 14:13:16 +00:00
Paul Jensen
42a5983364 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141
am: 6c35cf2434

* commit '6c35cf2434ca373196b16620455f8f234b63d594':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I9bbca312129011822fc5ea95682bac5ca4258ced
2016-05-26 14:01:19 +00:00
Paul Jensen
6c35cf2434 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff
am: bb27626141

* commit 'bb2762614181a0ee03554a96c070ea1006d7263c':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I9e4d3282765dec1554955b9f72484e9d7e2d6594
2016-05-26 13:44:37 +00:00