vim build/target/product/generic_no_telephony.mk
网络问题:
x1 介绍
用于解决 AOSP 开源项目网络感叹号问题。
0x2 解决思路
将被干掉的 Google 网址更换为没被干掉的网址。
0x3 详细步骤
修改 NetworkMonitor.java,文件位置位于:
${源码目录}/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
1. 查找 private static final String DEFAULT_HTTPS_URL
将其值 https://www.google.com/generate_204
修改为:
https://www.qualcomm.cn/generate_204
2. 查找 private static final String DEFAULT_HTTP_URL
将其值 http://connectivitycheck.gstatic.com/generate_204
修改为:
http://www.qualcomm.cn/generate_204
3. 查找 private static final String DEFAULT_FALLBACK_URL
将其值 http://www.google.com/gen_204
修改为:
http://www.qualcomm.cn/generate_204
Android 8.0 新增:
4. 查找 private static final String DEFAULT_OTHER_FALLBACK_URLS
将其值 http://play.googleapis.com/generate_204
修改为:
http://www.qualcomm.cn/generate_204
修改完保存即可。
嫌一个一个改麻烦?
那用三条 sed 命令:
sed -i 's@www.google.com/generate_204@www.qualcomm.cn/generate_204@g' frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
sed -i 's@www.google.com/gen_204@www.qualcomm.cn/generate_204@g' frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
sed -i 's@connectivitycheck.gstatic.com/generate_204@www.qualcomm.cn/generate_204@g' frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
具体裁剪内容:
1. build/target/product是编译产品关键的mk文件存放处,此处可以更改各个mk文件编译内容进行裁剪
base.mk文件:去除不必要的lib库文件和bin文件
core_minimal.mk: dmtracedump, Shell, HTMLViewer, screencap等工具和apk等
core.mk: libnfc_ndef, mms-common nfc功能库文件和mms短信功能等
embedded.mk: dumpstate, dumpsys
emulator.mk: camera.goldfish , camera.goldfish.jpeg , lights.goldfish , gps.goldfish等
full_base.mk: 去除不需要的库和apk
full_base_telephony.mk: 去除apk和电话功能
generic_no_telephony.mk:去除apk和不必要的库
languages_full.mk,locales_full.mk: 去除不需要的语言设置(可以去除res包的大小)
2. external/icu4c/stubdata/icu-data-default.txt: 修改此文件,去除编译出的icu.dat文件大小,去除不需要的语言,重新用脚本生成想要的dat文件
external/skia/Android.mk: 去除其中test的编译
3. frameworks/base/data/etc/platform.xml: 去除不需要的属性
frameworks/base/data/fonts/Android.mk: 去除不需要的字体
frameworks/base/data/fonts/fallback_fonts.xml: 去除不需要的字体
frameworks/base/data/fonts/fonts.mk: 去除不需要的字体
4. frameworks/base/data/sounds/AllAudio.mk: 去除不需要的声音文件(除了ui的保留,其他都可以去除)
frameworks/base/data/videos/VideoPackage1.mk: 去除不需要的视频文件
frameworks/native/data/etc/handheld_core_hardware.xml: 去除不需要的属性
frameworks/native/data/etc/tablet_core_hardware.xml: 去除不需要的属性
frameworks/base/preloaded-classes: 裁剪不必要的资源加载
5. init.rc: 裁剪不需要的本地服务
system.prop: 裁剪不必要的属性内容