【Android】移除 Android frameworks 层,当 Linux 系统使用。(服务移除篇)
前言说明
此文章仅作为技术经验记录,核心思想,就是在 init.rc 里面移除服务,致使 frameworks 不被启动,其它不便多说。
此文章内容为系统服务移除篇,最终实现的效果是 Android 相关的系统核心服务均不被运行,实现释放大量的硬件资源。
下一篇为文件裁剪篇(视情况而定),主要目的是移除大量 Android frameworks 的文件,加快编译速度和减小固件大小。
应用补丁
From 7c7192cdfc157eca58f03dd8b0e4e32767c9dbad Mon Sep 17 00:00:00 2001
From: lovemengx <lovemengx@qq.com>
Date: Wed, 5 Aug 2020 20:30:46 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20frameworks=20=E6=9C=8D?=
=?UTF-8?q?=E5=8A=A1,=20=E5=BC=80=E6=9C=BA=E9=80=9F=E5=BA=A6=E6=8F=90?=
=?UTF-8?q?=E5=8D=87=E5=88=B0=209=20=E7=A7=92=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
device/rda/common/res/init.rc | 293 +++++++++---------
.../rda/etau/NollecA9V2V8810P/oem_driver.rc | 2 +-
device/rda/etau/init.rda8810.rc | 110 +++----
3 files changed, 204 insertions(+), 201 deletions(-)
diff --git a/device/rda/common/res/init.rc b/device/rda/common/res/init.rc
index b404e840ba..4b665d2a24 100755
--- a/device/rda/common/res/init.rc
+++ b/device/rda/common/res/init.rc
@@ -120,6 +120,7 @@ loglevel 15
write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance
# qtaguid will limit access to specific data based on group memberships.
# net_bw_acct grants impersonation of socket owners.
@@ -360,20 +361,20 @@ on boot
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
- setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
- setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
- setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
- setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
- setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
- setprop net.tcp.buffersize.hsupa 4094,87380,262144,4096,16384,262144
- setprop net.tcp.buffersize.hsdpa 4094,87380,262144,4096,16384,262144
- setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608
- setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
- setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
- setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144
+# setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
+# setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
+# setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
+# setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
+# setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
+# setprop net.tcp.buffersize.hsupa 4094,87380,262144,4096,16384,262144
+# setprop net.tcp.buffersize.hsdpa 4094,87380,262144,4096,16384,262144
+# setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608
+# setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
+# setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
+# setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144
# Set this property so surfaceflinger is not started by system_init
- setprop system_init.startsurfaceflinger 0
+# setprop system_init.startsurfaceflinger 0
#open coredump
setrlimit 4 -1 -1
@@ -425,26 +426,26 @@ service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
-service watchdogd /sbin/watchdogd
- class core
- critical
- seclabel u:r:watchdogd:s0
+#service watchdogd /sbin/watchdogd
+# class core
+# critical
+# seclabel u:r:watchdogd:s0
-service healthd /system/bin/healthd
- class core
- critical
- seclabel u:r:healthd:s0
+#service healthd /system/bin/healthd
+# class core
+# critical
+# seclabel u:r:healthd:s0
-on property:selinux.reload_policy=1
- restart ueventd
- restart installd
+#on property:selinux.reload_policy=1
+# restart ueventd
+# restart installd
service console /system/bin/sh
class core
console
disabled
- user shell
+ user root
group log
#on property:ro.debuggable=1
@@ -478,9 +479,9 @@ service usb_traced /system/bin/usb_traced
class main
disabled
-service AT_transfer /system/bin/AT_transfer
- class main
- disabled
+#service AT_transfer /system/bin/AT_transfer
+# class main
+# disabled
on property:debug.usbtrace=1
write /sys/class/android_usb/android0/f_mlog/bp_trace 1
@@ -498,131 +499,133 @@ on property:debug.fta.enable=0
setprop sys.usb.config mtp,adb
stop AT_transfer
-service servicemanager /system/bin/servicemanager
- class core
- user system
- group system
- critical
- onrestart restart healthd
- onrestart restart zygote
- onrestart restart media
- onrestart restart surfaceflinger
- onrestart restart drm
+#service servicemanager /system/bin/servicemanager
+# class core
+# user system
+# group system
+# critical
+# onrestart restart healthd
+# onrestart restart zygote
+# onrestart restart media
+# onrestart restart surfaceflinger
+# onrestart restart drm
service vold /system/bin/vold
class core
socket vold stream 0660 root mount
ioprio be 2
-service netd /system/bin/netd
- class main
- socket netd stream 0660 root system
- socket dnsproxyd stream 0660 root inet
- socket mdns stream 0660 root system
+#service netd /system/bin/netd
+# class main
+# socket netd stream 0660 root system
+# socket dnsproxyd stream 0660 root inet
+# socket mdns stream 0660 root system
service debuggerd /system/bin/debuggerd
class main
-service ril-daemon /system/bin/rild
- class main
- socket rild stream 660 root radio
- socket rild-debug stream 660 radio system
- user root
- group radio cache inet misc audio log system
-
-service surfaceflinger /system/bin/surfaceflinger
- class main
- user root
- group graphics drmrpc
- onrestart restart zygote
-
-service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
- class main
- socket zygote stream 660 root system
- onrestart write /sys/android_power/request_state wake
- onrestart write /sys/power/state on
- onrestart restart media
- onrestart restart netd
-
-service drm /system/bin/drmserver
- class main
- user drm
- group drm system inet drmrpc
-
-service media /system/bin/mediaserver
- class main
- user root
- group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc
- ioprio rt 4
-
-service bootanim /system/bin/bootanimation
- class main
- user graphics
- group graphics
- disabled
- oneshot
-
-service shutdownanim /system/bin/bootanimation shut
- class main
- user graphics
- group graphics
- disabled
- oneshot
-
-service installd /system/bin/installd
- class main
- socket installd stream 600 system system
-
-service flash_recovery /system/etc/install-recovery.sh
- class main
- oneshot
-
-service racoon /system/bin/racoon
- class main
- socket racoon stream 600 system system
- # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
- group vpn net_admin inet
- disabled
- oneshot
-
-service mtpd /system/bin/mtpd
- class main
- socket mtpd stream 600 system system
- user vpn
- group vpn net_admin inet net_raw
- disabled
- oneshot
-
-service keystore /system/bin/keystore /data/misc/keystore
- class main
- user keystore
- group keystore drmrpc
- socket keystore stream 666
-
-service dumpstate /system/bin/dumpstate -s
- class main
- socket dumpstate stream 0660 shell log
- disabled
- oneshot
-
-service sshd /system/bin/start-ssh
- class main
- disabled
-
-service mdnsd /system/bin/mdnsd
- class main
- user mdnsr
- group inet net_raw
- socket mdnsd stream 0660 mdnsr inet
- disabled
- oneshot
-
-service usbdrvinstall /system/bin/sh /vendor/modules/usbdrvinstall.sh
- user root
- group root
- disabled
- oneshot
-
-service su_daemon /system/xbin/su --daemon
- class main
- user root
+#service ril-daemon /system/bin/rild
+# class main
+# socket rild stream 660 root radio
+# socket rild-debug stream 660 radio system
+# user root
+# group radio cache inet misc audio log system
+
+#service surfaceflinger /system/bin/surfaceflinger
+# class main
+# user root
+# group graphics drmrpc
+# onrestart restart zygote
+
+#service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
+# class main
+# socket zygote stream 660 root system
+# onrestart write /sys/android_power/request_state wake
+# onrestart write /sys/power/state on
+# onrestart restart media
+# onrestart restart netd
+
+#service drm /system/bin/drmserver
+# class main
+# user drm
+# group drm system inet drmrpc
+
+#service media /system/bin/mediaserver
+# class main
+# user root
+# group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc
+# ioprio rt 4
+
+#service bootanim /system/bin/bootanimation
+# class main
+# user graphics
+# group graphics
+# disabled
+# oneshot
+#
+#service shutdownanim /system/bin/bootanimation shut
+# class main
+# user graphics
+# group graphics
+# disabled
+# oneshot
+
+#service installd /system/bin/installd
+# class main
+# socket installd stream 600 system system
+#
+#service flash_recovery /system/etc/install-recovery.sh
+# class main
+# oneshot
+#
+#service racoon /system/bin/racoon
+# class main
+# socket racoon stream 600 system system
+# # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
+# group vpn net_admin inet
+# disabled
+# oneshot
+#
+#service mtpd /system/bin/mtpd
+# class main
+# socket mtpd stream 600 system system
+# user vpn
+# group vpn net_admin inet net_raw
+# disabled
+# oneshot
+
+#service keystore /system/bin/keystore /data/misc/keystore
+# class main
+# user keystore
+# group keystore drmrpc
+# socket keystore stream 666
+
+## 可以用dumpstate 获取设备的各种信息
+#service dumpstate /system/bin/dumpstate -s
+# class main
+# socket dumpstate stream 0660 shell log
+# disabled
+# oneshot
+
+#service sshd /system/bin/start-ssh
+# class main
+# disabled
+
+## mdnsd 是多播 DNS 和 DNS 服务发现的守护程序
+#service mdnsd /system/bin/mdnsd
+# class main
+# user mdnsr
+# group inet net_raw
+# socket mdnsd stream 0660 mdnsr inet
+# disabled
+# oneshot
+
+#service usbdrvinstall /system/bin/sh /vendor/modules/usbdrvinstall.sh
+# user root
+# group root
+# disabled
+# oneshot
+
+#service su_daemon /system/xbin/su --daemon
+# class main
+# user root
diff --git a/device/rda/etau/NollecA9V2V8810P/oem_driver.rc b/device/rda/etau/NollecA9V2V8810P/oem_driver.rc
index c5ae844e58..3719883cae 100755
--- a/device/rda/etau/NollecA9V2V8810P/oem_driver.rc
+++ b/device/rda/etau/NollecA9V2V8810P/oem_driver.rc
@@ -1,6 +1,6 @@
on early-boot
# insmod /vendor/modules/ssv6x5x.ko
- insmod /vendor/driver/rda_headset.ko
+# insmod /vendor/driver/rda_headset.ko
insmod /vendor/modules/galcore.ko registerMemBase=0x20080000 irqLine=25 baseAddress=0x80000000 showArgs=1
insmod /vendor/modules/vpu.ko
insmod /vendor/modules/voc.ko
diff --git a/device/rda/etau/init.rda8810.rc b/device/rda/etau/init.rda8810.rc
index bd5794b342..867136a978 100755
--- a/device/rda/etau/init.rda8810.rc
+++ b/device/rda/etau/init.rda8810.rc
@@ -1,4 +1,4 @@
-import init.ril.rc
+#import init.ril.rc
import init.rda.usb.rc
import init.storage.rc
import oem_driver.rc
@@ -14,7 +14,6 @@ on post-fs-data
mkdir /data/misc/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
- chmod 777 /data/misc/wifi/wpa_supplicant.conf
on init
mkdir /vendor 0770 system system
@@ -74,18 +73,19 @@ on boot
chown system system /sys/devices/virtual/input/input2/driver/enabled
chown system system /sys/devices/platform/rda-headset.0/enabled
- mkdir /data/local/tmp/xlog 0777
-
on property:ro.debuggable=1
write /sys/module/kgdboc/parameters/kgdboc ttyS0
-# turn on and turn off Wi-Fi
- write /sys/class/rfkill/rfkill0/state 1
- write /sys/class/rfkill/rfkill0/state 0
-
on property:init.svc.wpa_supplicant=stopped
stop dhcpcd_wlan0
+on property:persist.sys.usb.config=*
+ setprop sys.usb.config none
+ setprop sys.usb.config adb
+
+on property:app.sdcard.exist=1
+ mount vfat /dev/block/mmcblk0p1 /sdcard
+
service androidlogonsd /system/xbin/androidlogonsd.sh
class main
disabled
@@ -97,13 +97,13 @@ service androidlogonsd /system/xbin/androidlogonsd.sh
###############################################################
# redirect logs(LOGE, LOGI...) to linux console
###############################################################
-service logcat /system/bin/logcat -f /dev/kmsg *:W
- disabled
- oneshot
+#service logcat /system/bin/logcat -f /dev/kmsg *:W
+# disabled
+# oneshot
-service bootlogo /system/bin/bootlogo /system/media/bootlogo
- user root
- oneshot
+#service bootlogo /system/bin/bootlogo /system/media/bootlogo
+# user root
+# oneshot
service swapd /system/xbin/createswap.sh
class main
@@ -126,34 +126,34 @@ service fatd /system/xbin/createfat.sh
class main
oneshot
-service gsmMuxd /system/bin/gsmMuxd -m basic -s /dev/modem0 -l /dev/ttyMux -b 115200 -n 8 -f 2047
- class main
- user root
- group radio cache inet misc audio sdcard_rw log system
- seclabel u:r:gsmMuxd:s0
-
-service ril_ctl /system/bin/logwrapper /system/bin/ril_ctl
- class main
- user root
- seclabel u:r:ril_ctl:s0
-
-service wpa_supplicant /system/bin/wpa_supplicant \
- -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -dd \
- -g@android:wpa_wlan0
- class main
- socket wpa_wlan0 dgram 660 wifi wifi
- disabled
- oneshot
+#service gsmMuxd /system/bin/gsmMuxd -m basic -s /dev/modem0 -l /dev/ttyMux -b 115200 -n 8 -f 2047
+# class main
+# user root
+# group radio cache inet misc audio sdcard_rw log system
+# seclabel u:r:gsmMuxd:s0
-service dhcpcd_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -A -dd
- class main
- disabled
- oneshot
+#service ril_ctl /system/bin/logwrapper /system/bin/ril_ctl
+# class main
+# user root
+# seclabel u:r:ril_ctl:s0
-service iprenew_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -n
- class main
- disabled
- oneshot
+#service wpa_supplicant /system/bin/wpa_supplicant \
+# -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -dd \
+# -g@android:wpa_wlan0
+# class main
+# socket wpa_wlan0 dgram 660 wifi wifi
+# disabled
+# oneshot
+#
+#service dhcpcd_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -A -dd
+# class main
+# disabled
+# oneshot
+#
+#service iprenew_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -n
+# class main
+# disabled
+# oneshot
#Do not need on Android4.2
#service hciattach /system/bin/logwrapper /system/bin/hciattach -n -s 115200 /dev/ttyS1 rda 115200 noflow
@@ -186,19 +186,19 @@ service iprenew_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -n
# oneshot
-service preinstall /system/bin/sh /system/bin/preinstall.sh
- user root
- group root
- disabled
- oneshot
-
-service apanic /system/bin/sh /system/bin/init.apanic.sh
- user root
- group root
- disabled
- oneshot
-
-on property:sys.boot_completed=1
- start preinstall
- start apanic
+#service preinstall /system/bin/sh /system/bin/preinstall.sh
+# user root
+# group root
+# disabled
+# oneshot
+#
+#service apanic /system/bin/sh /system/bin/init.apanic.sh
+# user root
+# group root
+# disabled
+# oneshot
+#
+#on property:sys.boot_completed=1
+# start preinstall
+# start apanic
--
2.19.2
【Android】移除 Android frameworks 层,当 Linux 系统使用。(服务移除篇)的更多相关文章
- Linux 系统Telnet服务
Linux 系统Telnet服务 telnet与ssh相比,安全性能并不高,但是在ssh版本升级或者其他的情况下还是需要开启这一项服务.linux提供服务是由运行在后台的守护进程daemon来执行的, ...
- Linux系统xinetd服务启动不了
Linux系统xinetd服务启动不了 xinetd服务时发现xinetd服务启动不了,并出现错误提示xinetd:unrecognized service,当出现这个错误提示的时候说明系统未安装xi ...
- Linux系统Apache服务 - 配置 HTTP 的虚拟机主机
接Linux系统Apache服务 - 配置HTTP的默认主页 1.创建/srv目录,作为httpd的文件目录,并创建/srv/default/www和/srv/www1.example.com/www ...
- 让Android 变身回一台真正的Linux系统吧!!!
在Android上开发也有两年的时间了,虽然一直都知道Android是构建在Linux Kernel上的手机操作系统,但在此之前一直没有实感. 直到第一次买了Android的手机,并请人帮我Root后 ...
- Android内存解析(一)—从Linux系统内存逐步认识Android应用内存
总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在android开发时,管理好内存的 ...
- Linux系统NBD驱动安装拓展篇
前言: 最近在安装中标麒麟机器的时候,发现麒麟的操作系统找不到src.rpm包,且系统内部也没有内核文件,导致正常方法安装NBD驱动无法实施.故这里找了另一种办法帮助此类型操作系统安装NBD驱动. 一 ...
- linux系统oracle服务自启动
终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸.具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启 ...
- Linux系统文件系统及文件基础篇
学习Linux,重难点在于掌握不同类别的文件系统及其作用.通过对Linux系统的安装,我们首先来了解下Linux系统里各个目录文件夹下的大致功能:主要的目录树的有/./root./home./usr. ...
- Linux系统默认服务建议开启关闭说明列表
服务名称 功能简介 建议 acpid 电源管理接口.如果是笔记本用户建议开启,可以监听内核层的相关电源事件. 开启 anacron 系统的定时任务程序.cron的一个子系统,如果定时任务错过了执行时间 ...
- 自学linux——4.Linux的自有服务(基础篇)
linux自有服务(内置) 一.运行级别(模式) 在Linux中存在一个进程:init,进程id是1. 查看进程:#ps -ef|grep init 对应的配置文件:inittab(运行级别配置文件位 ...
随机推荐
- Python基础部分:5、 python语法之变量与常量
目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...
- ES6 学习笔记(十一)迭代器和生成器函数
1.前言 JavaScript提供了许多的方法来获取数组或者对象中的某个元素或者属性(迭代).从以前的for循环到之后的filter.map再到后来的for...in和for...of的迭代机制.只要 ...
- 如何在bat中进入虚拟环境
很多情况下我们希望在项目中建立一个build.bat用于项目的自动构建,避免每次构建时都需要手动在控制台中输入命令. 例如对于 pyinstall 的项目,只需要如下的实现: pyinstaller ...
- Appscan安全扫描问题-会话检测失败
在进行手动探索-使用浏览器记录时,在后续的继续探索中经常碰到会话检测失败的问题.然而在[配置-登录管理-自动]中记录账号密码后再继续探索仍然提示会话检测失败....网上查找了资料,从该博主的博文中成功 ...
- 如何快捷地修改虚拟机镜像——libguestfs-tools工具集介绍
前言 在使用云服务器产品时,由于问题修复.功能添加.软件更新等原因,往往需要对已有系统镜像进行二次修改. 这种情况下,最为简单的做法是:使用原镜像创建实例,在实例中进行修改,修改完毕后再转镜像.这种做 ...
- eBPF 实践 -- 网络可观测
简介 观测云采集器,是一款开源.一体式的数据采集 Agent,它提供全平台操作系统支持,拥有全面数据采集能力,涵盖基础设施.指标.日志.应用性能.用户访问以及安全巡检等各种场景.通过 eBPF 技术的 ...
- 2022年rhce最新认证—(满分通过)
RHCE认证 重要配置信息 在考试期间,除了您就坐位置的台式机之外,还将使用多个虚拟系统.您不具有台式机系统的 root 访问权,但具有对虚拟系统的完整 root 访问权. 系统信息 在本考试期间,您 ...
- Vue3 企业级优雅实战 - 组件库框架 - 7 组件库文档的开发和构建
该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...
- 微信公众号没有scope授权
微信公众号有自己的appid 开发平台的绑定也有自己的appid 看文档的时候,注意是使用公众号的appi还是开放平台的appid
- Vue使用axios请求接口返回成功200但是进入到catch中
发生这个问题时查阅了许多资料,没有一个是对得上的.最后发现原来是在请求拦截器中的错误 错误代码如下 // 添加响应拦截器 axios.interceptors.response.use(functio ...