summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp2
-rw-r--r--service/CleanSpec.mk4
-rw-r--r--service/apex/Android.bp45
-rw-r--r--service/apex/AndroidManifest.xml24
-rw-r--r--service/apex/apex_manifest.json5
-rw-r--r--service/apex/com.android.wifi.avbpubkeybin0 -> 1032 bytes
-rw-r--r--service/apex/com.android.wifi.pem51
-rw-r--r--service/apex/com.android.wifi.pk8bin0 -> 2375 bytes
-rw-r--r--service/apex/com.android.wifi.x509.pem35
-rw-r--r--service/java/com/android/server/wifi/WifiNative.java10
10 files changed, 174 insertions, 2 deletions
diff --git a/Android.bp b/Android.bp
index 7c74fcb3e..5c41f75c7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,5 +16,7 @@ subdirs = [
"libwifi_system",
"libwifi_system_iface",
"service",
+ "service/apex",
+ "service/proto",
"tests",
]
diff --git a/service/CleanSpec.mk b/service/CleanSpec.mk
index da0481f51..603ba73bd 100644
--- a/service/CleanSpec.mk
+++ b/service/CleanSpec.mk
@@ -50,6 +50,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/wifi.rc)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/WifiStack)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/wifi_inprocess.rc)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/InProcessWifiStack)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/wifi-service.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/wifi-service-resources)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/libwifi-jni.so)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libwifi-jni.so)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/service/apex/Android.bp b/service/apex/Android.bp
new file mode 100644
index 000000000..fff3f2455
--- /dev/null
+++ b/service/apex/Android.bp
@@ -0,0 +1,45 @@
+//
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Mainline wifi apex module.
+apex {
+ name: "com.android.wifi",
+ manifest: "apex_manifest.json",
+ native_shared_libs: ["libwifi-jni"],
+ java_libs: ["wifi-service"],
+ apps: ["wifi-service-resources"],
+
+ required: [
+ "cacerts_wfa",
+ "services",
+ ],
+
+ init_rc: ["../wifi.rc"],
+
+ key: "com.android.wifi.key",
+ certificate: ":com.android.wifi.certificate",
+}
+
+apex_key {
+ name: "com.android.wifi.key",
+ public_key: "com.android.wifi.avbpubkey",
+ private_key: "com.android.wifi.pem",
+}
+
+android_app_certificate {
+ name: "com.android.wifi.certificate",
+ certificate: "com.android.wifi",
+}
diff --git a/service/apex/AndroidManifest.xml b/service/apex/AndroidManifest.xml
new file mode 100644
index 000000000..efc8cc0f0
--- /dev/null
+++ b/service/apex/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.wifi">
+ <!-- APEX does not have classes.dex -->
+ <application android:hasCode="false" />
+ <!-- Setting maxSdk to lock the module to R. minSdk is auto-set by build system -->
+ <uses-sdk android:maxSdkVersion="30" android:targetSdkVersion="30"/>
+</manifest>
+
diff --git a/service/apex/apex_manifest.json b/service/apex/apex_manifest.json
new file mode 100644
index 000000000..a5792552c
--- /dev/null
+++ b/service/apex/apex_manifest.json
@@ -0,0 +1,5 @@
+{
+ "name": "com.android.wifi",
+ "version": 1
+}
+
diff --git a/service/apex/com.android.wifi.avbpubkey b/service/apex/com.android.wifi.avbpubkey
new file mode 100644
index 000000000..e98ee34db
--- /dev/null
+++ b/service/apex/com.android.wifi.avbpubkey
Binary files differ
diff --git a/service/apex/com.android.wifi.pem b/service/apex/com.android.wifi.pem
new file mode 100644
index 000000000..3d080f1e7
--- /dev/null
+++ b/service/apex/com.android.wifi.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+799iaQKCAQBxXf42ntccUK4e2s8OlAKx92WoFSc9j1hqAVXoUlYEso0fSd9/uzv4
+0jG267h1lj2bahFOjp8zoJOLr/l4djMYvVn1uDH78DkbuSEMPdS/TPu0ifyR6Ral
+/1/OZteCb4ut1ct2hl2f4XEHhNxoaYKOz4DdcfWzDH1UMuNdLoAPZ2xHTJ3D/1Qz
+YzglYOwALQPUMXeKGQcWSzxRQXdkGOYxBiGdHtcOHzD4H7Z5GlQJ/Wr2xAreRFUr
+ApzXpbJ2ZlboCooxEPmyzuLDlrawllWIHjgBfbf1Ht8D5dUmo8XWfXrJt8ovj9xl
+e3bnHhNpI+Xgb4NVhoB01px7oVXNp4S7AoIBAQDU5VsyDmdL1a8hVLL0rLzAjBh/
+RSK2IGqibfOITLcmvCn46JOVmytc2F+odjrsAvHUmU+yQNgMpmDNch292TXR2aJq
+kqxV1HsNJ/Pb9wFHb8xP29MgMeLMhfo35EPUdYVtsHTzH+5cbDT50PpOnXff6+h0
+fhrMElXYu4wg6ZPZ4BYt/PY+qhiRZ47MtAqw3byaCe2+sLNSpU/tt+klIYuWvTyV
+pE/suflS3/JnJCzs8MrP0mX73AoILauqGEsc8+hsf5X2Rra2sllV4YfiGKSUoISq
+u9wRjoGkB8SSg1GywotyXFJc3dQoLtMCk0ABBQCM9zp+xjdB9AeWS4tjSBO3
+-----END RSA PRIVATE KEY-----
diff --git a/service/apex/com.android.wifi.pk8 b/service/apex/com.android.wifi.pk8
new file mode 100644
index 000000000..a47b169eb
--- /dev/null
+++ b/service/apex/com.android.wifi.pk8
Binary files differ
diff --git a/service/apex/com.android.wifi.x509.pem b/service/apex/com.android.wifi.x509.pem
new file mode 100644
index 000000000..fbc798dfc
--- /dev/null
+++ b/service/apex/com.android.wifi.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGJzCCBA+gAwIBAgIUYfh1Zzu3M79bdOVvnEraqzmHwFAwDQYJKoZIhvcNAQEL
+BQAwgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MQ8wDQYDVQQKDAZHb29nbGUxEDAOBgNVBAsMB0FuZHJv
+aWQxFTATBgNVBAMMDGFuZHJvaWQtd2lmaTErMCkGCSqGSIb3DQEJARYcYW5kcm9p
+ZC13aWZpLXRlYW1AZ29vZ2xlLmNvbTAgFw0xOTExMjExNzIwMzZaGA80NzU3MTAx
+NzE3MjAzNlowgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw
+FAYDVQQHDA1Nb3VudGFpbiBWaWV3MQ8wDQYDVQQKDAZHb29nbGUxEDAOBgNVBAsM
+B0FuZHJvaWQxFTATBgNVBAMMDGFuZHJvaWQtd2lmaTErMCkGCSqGSIb3DQEJARYc
+YW5kcm9pZC13aWZpLXRlYW1AZ29vZ2xlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAKZmFJJiKPBqWfJ1jt0T1WEQ/6PzDOxF8smQql8TDeO2hbNK
+v75hrZ668RkyQfx5kejU0sY3lG7xj7TouYUlRJys0FqfyVbhUCDC4+gOvX/U5i9F
+VhOS4PLPTEQ7k8/siDkCp412uYkOTbK4TGTL/21vD0aLJKqf/ofSbDS8HWfmhEVJ
+vMIL+bOGdGTQ+wbDp3Pus1zob+yRPE66iQQ7ZKFCVcX0+hSWjzf7nS2Fmf0E952c
+A2KnI0CpSxWogS4YLSbvZPDueo+kwfdHsQkl3H8VNUTbKNwAdVCeemrtkqFjy/s7
+c8Igm4gAPyyh9PDAzw+Qgquy+11NMiln06oKAAZpz26V7ylMkAqR2OMACZqkLRP7
+lWX+qp79NVcXtaz/RJi8/UKSCo5jAlsUoDgz8ddozUXswK1lvlN7BS9wQ4XS5JXY
+IxGjz2ipaWI+cjD+rctaS1d2stujL1Iu93eAgFv0uzCbm8jI1XT/qWhZir0f5KcH
+ihqiMPiY2psob4tA4zdccOTYw545XA/sT7kS2DuTlRXQv7y2Yt62EOsxpAhGEWKr
+Rw+aBuk8Vs/6xST5WfqU0H8syaVqWNlevLC8ltLIF1MJpBC8FXKS1L2QNMGVTDyh
+UDrxnVCRU0gsr7fE39cNTFyobh9Uq3qXAkAbA50zgo2vuEp5htdy1s4QaJKJAgMB
+AAGjUzBRMB0GA1UdDgQWBBS4m2DrPxP8E3qgWUFlFe/25emNFDAfBgNVHSMEGDAW
+gBS4m2DrPxP8E3qgWUFlFe/25emNFDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
+DQEBCwUAA4ICAQBxlQ16HQXTVMPPOmuDlfSZOoWdYyK8cCxVEsuco1uN0pMd5ekl
+EoTE6GrcjBI1LIoI9n3s/3lnYZrdgQ/kIXNHHutizONz6jgT8m4m3w8BqC9QOXKQ
+d7qElOesp4ruJZoAGuQOoDuNg544ypQZGhBwFQi3RPvk/W1U2ZrXNYO1ONHNFE1/
+ZXotGkNxhB9E+eVYo16MKpyxEpT5vE+k0LK/VRFDGrZF2p2C7DXmMOE66lY3iyRP
+ynKVbzoI0dyyVl/BZ/9dGCCgvhJWo3oUfwRLxqwOt81DOiDUT2DV2XB2TEPFLTwQ
+gwlw5Lkmd7ecj7J0E4QIkAPsQYLI/fVelC6QUeqvbKORur4vvkVdhOj2GBpb/6tQ
+F5i8osLk1kqBwMpnDZCGKSS22JqY7lBPmlkCPCfRd3uVmK42ItAUpYcdLk7lb90o
+wO5OgpOPajl6ImYe8kpqoeLBUK4E6qrve3MLMukhCSwR8hrteAEL86R631P6A747
+mkZUgbKPqkeUSFd+0AfzLTjvaevgfIEF/wz5HDHGAloWkd45m5Tdd5I06fqPVu/2
+rxzqZChKW2XHtwaTl5qkYUHi6pqkq+oWhpjWCS84wCNmlX8j4lrZ5mumoOaPpElK
+Tbj1WZ16OOPDXWONclE29gfC/+XaOKLLhjdfh0+ZEJ7BZSCBCMyQWXxbcQ==
+-----END CERTIFICATE-----
diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java
index eeef34fc3..21abbd254 100644
--- a/service/java/com/android/server/wifi/WifiNative.java
+++ b/service/java/com/android/server/wifi/WifiNative.java
@@ -72,6 +72,8 @@ import java.util.TimeZone;
*/
public class WifiNative {
private static final String TAG = "WifiNative";
+ private static final String JNI_LIB = "/apex/com.android.wifi/lib64/libwifi-jni.so";
+
private final SupplicantStaIfaceHal mSupplicantStaIfaceHal;
private final HostapdHal mHostapdHal;
private final WifiVendorHal mWifiVendorHal;
@@ -3365,8 +3367,12 @@ public class WifiNative {
/* Register native functions */
static {
/* Native functions are defined in libwifi-jni.so */
- System.loadLibrary("wifi-jni");
- registerNatives();
+ try {
+ System.load(JNI_LIB);
+ registerNatives();
+ } catch (UnsatisfiedLinkError e) {
+ Log.wtf(TAG, "Failed to load jni library", e);
+ }
}
private static native int registerNatives();