Setting the WiFi network interface up or down is racy because it
is not synchronized with the WiFi components managing the interface.
This causes a problem for hostapd when the interface is marked down
before hostapd starts because it causes the driver to enter the
de-initialization process. hostapd does not know how to react to this
change of events.
Bug: 31205821
Test: bug no longer reproduces on upcoming devices, unit tests pass
Change-Id: I96938e2aef89b400593d42ce1b0a6ccc2d2e5754
More generalized functionality is now available through HwBlob.
Change-Id: Id6c713fb01af7593ea3ff8405f3a9e5325877412
Bug: 31438033
Test: run updated "hidl_test" and "hidl_test_java"
step1: PowerProfile.POWER_WIFI_ACTIVE represents energy consumption(mAh) per hour
devied by 3600, then WIFI_POWER ==> energy consumption(mAh) per second
step2: WIFI_BPS represents 1000000 bit per second
then (double)WIFI_BPS) / 8 ==> 1000000/8 Byte per second
step3: as upload and download, so divided by 2;
then (((double)WIFI_BPS) / 8 / 2048)) ==> 1000000/8/2048 KB per second
==> packet per second (where 1 packet = 2 KB)
so WIFI_POWER / (((double)WIFI_BPS) / 8 / 2048) represents mAh per Packet where 1 packet = 2 K.
when divided by (60*60) again , that make WifiPowerEstimator narrow 3600 times.
Change-Id: Ic055a5145b6dfb1129c8969826329a3024c9e2b6
Signed-off-by: yuanhuihui <yuanhuihui@xiaomi.com>
getCurrentInputMethodSubtype() acquires InputManagerService.mMethodMap
within its body. There seems to be no reason for holding
InputMethodManager.mH to call getCurrentInputMethodSubtype(). Holding mH
can cause potential deadlock b/w two threads acquiring mH and mMethodMap
in different orders.
Bug: 31247871
Bug: 31273203
Bug: b.android.com/218423
Change-Id: I20cf2c20f49b1b02c0f7a18257b49d4bcc081b5d
There is no functional change. This is to support adding new types of zygotes
that all operate using the same protocol.
Bug: 21643067
(cherry picked from commit 94e824bc1b)
Merged-In: Ie673ee816cae34ac20ffb8c774ec3e6461c3fd0a
Change-Id: I104e6133a90dc93a9854836b5e92d3cd542163a3
This is a non-functional change that separates out functionality
that should be shared between the system zygote and the WebView
zygote from that which is system zygote specific.
* Move MethodAndArgsCaller to Zygote.
* Split out server socket functions into ZygoteServer.
* Add a new (stub, for now) WebViewZygoteInit class.
Bug: 22084679
Bug: 21643067
(cherry picked from commit ba816e0c9e)
Merged-In: I4c508a42af7ab7b53d10570ad53b846df7782cc4
Change-Id: I54f04c03443d10dabe6426697d1ff8a0cc66b985
As Error Prone states:
Suppressing "deprecated" is probably a typo for "deprecation"
Bug: 27723540
(cherry picked from commit a7f834f1ce)
Change-Id: I0c6a9fc0a160769955cccf97ec7decb1f2b9b8fb
Add TRANSPORT_WIFI_NAN - specifies a peer-to-peer Wi-Fi NAN data
connectivity request.
While NAN uses Wi-Fi L1 PHY and part of the MAC - it is a different
protocol and constitutes a different transport.
(cherry-pick of commit 7b84987a6a)
Bug: 26564277
Change-Id: I975ebc72d8f97a592d18038b3d6465b7a40efa75
If the OTA updates a system app which was previously preopted to a non-
preopted state the app might end up being verified at runtime. That's
because by default the apps are verify-profile but for preopted apps
there's no profile.
Do a hacky check to ensure that if we have no profiles (a reasonable
indication that before the OTA the app was preopted) system apps get
compiled with a non-profile filter (by default interpret-only).
Bug: 30032273
Test: Andreas "has verified that Calin's change to A/B works as expected
and promotes things like SystemUI to speed. From my side, that's
ready to be merged"
Change-Id: I7a052a8ea76cab7f649dc993237ea05534d6c4b9
(cherry picked from commit 0bd7762079)
Add functionality to capture/intercept installd communication, and
use this to return the full communication for dexopt. These parameters
can be used to drive otapreopt_chroot directly.
Keep the old direct invocation alive until devices have transitioned
to a service that exposes this API.
In preparation for renaming of A/B OTA artifacts to include target
slot names.
Bug: 25612095
Bug: 28069686
Change-Id: I14728ee1266f3882cada8f08dd21891ed5f7a0cb
(cherry picked from commit cc241a580c)
To be able to report progress of an A/B OTA dexopt, expose a
progress function that the script can query.
Bug: 25612095
Bug: 29223204
Change-Id: Ie8162946d18f6fa78649a40ad5d3949d31a181cd
(cherry picked from commit bf06232f4d)
When support for lockscreen wallpapers was added in API level 24 the
behaviour for earlier API versions changed. Calls to the old 'set' APIs
no longer affect the overall device wallpaper, and can result in an end
user not being able to change their lockscreen wallpaper.
This upload restores the original API behaviour.
Bug: 31204228
Change-Id: Ia16d2e2e379c54d798eef8f5c653099c2c581d78
The receive timeout stopped being set incorrect due to commit
c80af6d8. There is an associated CTS regression test in cts/.
Test: Ran CTS test android.net.cts.LocalSocketTest
Bug: 31205169
Change-Id: I99808478946f8eae502c49d2cb83465648b9c904
* changes:
NetworkSelectionStatus: Fix copy constructor
Deprecate QNS network disable reason BAD_LINK
[NAN] API changes/fixes addressing apilint issues
[NAN] Add method to ConfigRequest to determine if non-default
[NAN] Simplify publish/subscribe configuration - merge match filters
[NAN] Udpate NAN API documentation, clean-up visibility
[NAN] Do not expose WifiManager.isNanSupported as new API
[NAN] Update finalize to check and warn user if resources not freed
[NAN] Fix bad merge use rethrowFromSystemServer
Add Log.wtf when transitionTo is used improperly
Ensure BSSIDs are correctly aged out in settings view
[NAN] Provide calling package name to service
Add WiFi toggle prompts - framework
Reenable the unit tests for StateMachine
Remove WiFi related methods from NetworkManagementService
Don't pull in external/junit through mockito
WifiConfiguration: Expose NetworkSelectionStatus strings
Add Bluetooth toggle prompts - framework
[NAN] Add LV utilities (TLV with T size of 0).
[NAN] Fix TlvElement member names - reflect public access.
TetherUtil: Use ConnectivityManager for tethering
[NAN] TLV utilities iterator - throw correct exception
[NAN] Modify arguments from "array, length" to "array"
[NAN] NAN System Api: RTT
Properly disable WiFi tethering
[NAN] Provide inteface MAC address to app.
[NAN] Add (T)LV validation testing
Add IPv6 tethering coordinator
Stop listening for WiFi interface status changes
[NAN] Add validity checks for service name
[NAN] Fix assumption about Strings containing single-byte characters.
[NAN] NAN data-path API: network specifier
DO NOT MERGE StateMachine: remove final from SendMessage
wifi: allow config of default+verbose ring buffers
Don't save the anonymous identity for EAP-SIM/AKA/AKA-Prime
Add a WifiScanner API to listener for ongoing scans
Fix invitation request from persistent GC
SettingsBackupAgent: Remove redundant size parameter
WifiConfiguration: Make NetworkSelectionStatus public
Use WifiManager for wifi backup/restore
Fix race conditions between Tethering and TetherInterfaceStateMachine
WifiManager: Add new API to restore old backup data
Tethering: Own WiFi tethering state and lifetime
IpConfigStore: Changes for parsing old wifi backup
WifiManager: Add new API's for backup/restore
XmlUtils: Add missing readThisByteArrayXml method
Use an ArrayMap instead of HashMap to track tether interfaces
Consolidate cleanup logic in TetherInterfaceSM.TetheredState
Annotate TetherInterfaceStateMachineTest for APCT
Rely on Tethering mutex for TetherInterfaceSM
Rename TetherInterfaceSM to TetherInterfaceStateMachine
[NAN] Add retry count for transmitting L2 NAN messages
Remove dead code from TetherInterfaceSM
Remove transient StartingState from TetherInterfaceSM
Expand test coverage of TetherInterfaceSM
Add demonstration unittest for TetherInterfaceSM
Extract TetherInterfaceSM to its own class.
Make Tethering.TetherInterfaceSM more self contained
WifiManager: add WIFI_MODE_NO_LOCKS_HELD
Create frameworks-base-testutils lib
Clean up class members in Tethering.TetherInterfaceSM
Move android.net.util.IpUtilsTest into a util/ directory
Fix trivial warnings in Tethering.java
Fix some trivial warnings in WifiP2pDevice.java
[NAN] Add support for NAN RTT.
[NAN] Remove OnNanDown notification from API
Remove unused method from NetworkManagementService
WifiConfiguration: Add new selection disable reasons
[NAN] Add type and nullability annotations. Update hide annotation.
[NAN] Add master switch to enable/disable usage of NAN APIs.
[NAN] Re-factor connect/config flow
[NAN] Refactor session lifecycle to clarify API & eliminate race conditions
[NAN] Removed NAN event registration - dispatch all callbacks.
[NAN] Consolidate publish/subscribe callback sets into single set
[NAN] Replace session callback configuration control
[NAN] Expose match style configuration as public API.
[NAN] API cleanup - rename FLAGS.
[NAN] Renamed listeners to callback per API guidelines
[NAN]: API update - consolidate Puslish|Subscribe Data+Subscribe -> Config
NAN: Support multiple instantiation per UID - introduce a client ID.
Using transitionTo in exit/enter (except in the terminal state) is
documented as undefined behavior and may cause unexpected results.
The current implementation appears to finish the current transition and
then transition to the new target state.
TEST=flash and play with the phone, no sign of immediate WTFs
Change-Id: I38a34b85c43d53c51514339587fc1269a069a454
(cherry picked from commit 8d3ed21583)
In order to make the tests run a few methods must be made public so that
they can be called from a class loaded by a different class loader.
Fixed: 28217358
Change-Id: I98ce1e952a78528ae6ebd3a0e843c9ddfe937337
(cherry picked from commit 36afe5b5cc)
These are no longer necessary, since WiFi manages its own details.
Bug: 30041228
Change-Id: Ia3824da43367ae74d3f3a204318cfe5470d74957
Test: Compiles
(cherry picked from commit 212b95f587)
Removed final from public sendMessage and sendMessageDelayed commands to
unblock unittest development. This allows tests to verify calls to
sendMessage and sendMessageDelayed.
Also fixed one checkstyle error with import order.
BUG: 28593024
Change-Id: I26e02c3d75049d385ded7891c4fc9967273c27be
TEST: builds
TEST: runtest frameworks-wifi
(cherry picked from commit 0dbeb9e01a)
Add the missing XML to byte array conversion method.
While there,
1. Fix writeByteArrayXml method to store the hex chars of the value.
2. Cleanup couple of error strings in |readThisIntArrayXml| method.
BUG: 29039296
Change-Id: I6386f7df7c5c8b7bc3bc5a268196da617209cea9
TEST: Compiles & manual testing.
(cherry picked from commit 651209b597)
commit efa6f355b06675aa4d0879fd279e22c16d5c046c
Author: Mikhail Naganov <mnaganov@google.com>
Date: Wed Aug 10 12:25:13 2016 -0700
MIDI: Use server-side socket in blocking mode for virtual devices
Since virtual MIDI servers may misbehave, blocking mode will throttle
them if clients are not coping with their sending speed.
Bug: 29413812
Change-Id: I9c4a2a7a7ea3ea060c93fedc7d0f033427c557c9
commit 755dfb5f83749d3963c63d98d692307f8271c804
Author: Mikhail Naganov <mnaganov@google.com>
Date: Fri Jul 8 13:26:19 2016 -0700
Protect MIDI framework against client blocks in MidiReceiver.onSend
Make the server-side socket non-blocking when creating MidiOutputPort
for clients. Thus if a client ceases to read from its side of the
socket pair, the server will just fail to write instead of blocking.
One drawback is that the MidiOutputPort on the client can't indicate
that it has become dysfunctional, but it's not possible without
changing the API.
Bug: 29413812
Change-Id: I9dfcbdd214a815cea8fd1365324fd78ca459268a
commit c740b13953761f58233ac651a0b5227733b1bdcc
Author: Mikhail Naganov <mnaganov@google.com>
Date: Fri Jun 17 04:11:25 2016 -0700
UsbMidiDevice: Clean up terminology and fix comments
When working with physical MIDI devices, an *input* stream is used
for reading from *output* port of the device, and vice versa. Thus,
using "input" and "output" without specifying whether it's a stream
or a port is confusing.
Clarify names of counter variables, and fix a couple of comments
that were incorrect due to this confusion. No functional changes.
Change-Id: If561eaca4bade94e9296d2c703c9fcebc91296e2
commit 4269c6417287737624f6165a8bbeb5aa427de9a0
Author: Glenn Kasten <gkasten@google.com>
Date: Thu May 5 18:49:16 2016 -0700
Update MIDI package summary
Bug: 28625060
Change-Id: If552ca8e1a0666d402b5f536699bf3fb09c1e324
commit 862d40b73168bde7d0be5280d997985c18061014
Author: Phil Burk <philburk@google.com>
Date: Tue Apr 19 15:56:24 2016 -0700
MidiDevice: do not open ports on closed device
Fix involves client side mIsDeviceClosed flag.
Bug: 24949216
Change-Id: I666284a787fbb9a710d2372fb424e8e54f6a2825
Signed-off-by: Phil Burk <philburk@google.com>
commit 6f1de358b9f2616e03f4655f01454770915ddd66
Author: Phil Burk <philburk@google.com>
Date: Mon Apr 18 16:05:28 2016 -0700
MidiService: fix resource leak
The proxy object was being used to match when adding or removing objects.
But they are different each time. So now we use an asBinder() object.
Bug: 28153736
Change-Id: I1bccebf1e9464668db757ff08b41902d0cf0e3a7
Signed-off-by: Phil Burk <philburk@google.com>
commit f7386bd535bb8a1d7f8df8f44a1748ab770c991a
Author: Phil Burk <philburk@google.com>
Date: Tue Apr 5 14:19:53 2016 -0700
MidiDevice: fix connectPorts for same Process
If connectPorts() was called for a device in the same process then
the connection would die when the ParcelFileDescriptor was closed.
Bug: 26406775
Change-Id: Id0538452593b4761ac2a93d366ade76d2e35ce73
Signed-off-by: Phil Burk <philburk@google.com>
Change-Id: I4dfc2a2cbaf04bf1a790ae2cb39bf74fb5bb16ac