From 8d65db32eba568be3df36247e02ee32f5284e89a Mon Sep 17 00:00:00 2001 From: Bernie Innocenti Date: Wed, 9 May 2018 17:58:50 +0900 Subject: [PATCH] Disable APF memory clear on pre-APFv4 devices Fixes a system crash on HU when connecting to a wifi AP. Change-Id: I8b71323985b6c5fc8a75f99470c9f86343d57f90 Bug: 78905546 Test: manually on android auto device --- services/net/java/android/net/apf/ApfFilter.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/net/java/android/net/apf/ApfFilter.java b/services/net/java/android/net/apf/ApfFilter.java index 2bf6e92f26a8e..a7209a076461a 100644 --- a/services/net/java/android/net/apf/ApfFilter.java +++ b/services/net/java/android/net/apf/ApfFilter.java @@ -429,9 +429,13 @@ public class ApfFilter { try { mHardwareAddress = mInterfaceParams.macAddr.toByteArray(); synchronized(this) { - // Clear APF memory. - byte[] zeroes = new byte[mApfCapabilities.maximumApfProgramSize]; - mIpClientCallback.installPacketFilter(zeroes); + // Clear the APF memory to reset all counters upon connecting to the first AP + // in an SSID. This is limited to APFv4 devices because this large write triggers + // a crash on some older devices (b/78905546). + if (mApfCapabilities.hasDataAccess()) { + byte[] zeroes = new byte[mApfCapabilities.maximumApfProgramSize]; + mIpClientCallback.installPacketFilter(zeroes); + } // Install basic filters installNewProgramLocked();