@@ -195,4 +195,90 @@ linux下安装brotli:
195
195
tmp目录下即为系统文件。
196
196
197
197
## Android 10
198
- Android 10上面,vdex不包含dex文件了,dex文件存放在原apk中或者jar包中。
198
+ Android 10上面,vdex不包含dex文件了,dex文件存放在原apk中或者jar包中。
199
+
200
+ ## Android 11
201
+ Android 11 新增` apex ` 格式文件,部分代码存储在` /system/apex ` 目录下面:
202
+ ```
203
+ system/apex/
204
+ ├── com.android.apex.cts.shim.apex
205
+ ├── com.android.art.release.apex
206
+ ├── com.android.i18n.apex
207
+ ├── com.android.permission.apex
208
+ ├── com.android.runtime.apex
209
+ ├── com.android.vndk.current.apex
210
+ ├── com.android.wifi.apex
211
+ ├── com.google.android.adbd.apex
212
+ ├── com.google.android.cellbroadcast.apex
213
+ ├── com.google.android.conscrypt.apex
214
+ ├── com.google.android.extservices.apex
215
+ ├── com.google.android.ipsec.apex
216
+ ├── com.google.android.media.apex
217
+ ├── com.google.android.mediaprovider.apex
218
+ ├── com.google.android.media.swcodec.apex
219
+ ├── com.google.android.neuralnetworks.apex
220
+ ├── com.google.android.os.statsd.apex
221
+ ├── com.google.android.permission.apex
222
+ ├── com.google.android.resolv.apex
223
+ ├── com.google.android.sdkext.apex
224
+ ├── com.google.android.tethering.apex
225
+ └── com.google.android.tzdata2.apex
226
+
227
+ ```
228
+ 以` com.android.wifi.apex ` 为例:
229
+ 1 . 查看文件格式:
230
+ ```
231
+ file com.android.wifi.apex
232
+
233
+ output:
234
+
235
+ com.android.wifi.apex: Java archive data (JAR)
236
+ ```
237
+ 2 . 解压文件:
238
+ ```
239
+ unzip com.android.wifi.apex -d com.android.wifi.apex_out
240
+
241
+ 查看解压后的文件:
242
+
243
+ com.android.wifi.apex_out/
244
+ ├── AndroidManifest.xml
245
+ ├── apex_build_info.pb
246
+ ├── apex_manifest.pb
247
+ ├── apex_payload.img
248
+ ├── apex_pubkey
249
+ ├── assets
250
+ ├── META-INF
251
+ └── resources.arsc
252
+
253
+ ```
254
+
255
+ 3 . 挂载` apex_payload.img ` 文件:
256
+ ```
257
+ sudo mount -o loop,ro apex_payload.img tmp/
258
+ ```
259
+ 4 . 查看tmp目录下内容:
260
+ ```
261
+ tmp
262
+ ├── apex_manifest.pb
263
+ ├── app
264
+ │ └── OsuLogin
265
+ │ └── OsuLogin.apk
266
+ ├── etc
267
+ │ └── security
268
+ │ └── cacerts_wfa
269
+ │ ├── 21125ccd.0
270
+ │ ├── 674b5f5b.0
271
+ │ └── ea93cb5b.0
272
+ ├── javalib
273
+ │ ├── framework-wifi.jar
274
+ │ └── service-wifi.jar
275
+ ├── lost+found [error opening dir]
276
+ └── priv-app
277
+ └── ServiceWifiResources
278
+ └── ServiceWifiResources.apk
279
+ ```
280
+ ` javalib ` 目录下的jar即为` wifi service ` 相关的源码。
281
+ ps: Android 10上的` /system/apex ` 目录下存放的是对应的文件夹,在文件夹下存放着相关的jar包,省去了解压挂载文件系统的步骤。
282
+ WifiServiceImpl.java所在的jar,需要查看bp文件。
283
+ https://android.googlesource.com/platform/frameworks/opt/net/wifi/+/refs/tags/android-11.0.0_r42/service/Android.bp。
284
+
0 commit comments