導航:首頁 > 操作系統 > androidinitd

androidinitd

發布時間:2022-12-25 07:32:02

1. 如何讓android啟動後自動運行一段腳本

1.修改啟動腳本init.rc在最後添加
#===============================add my shellscript
service sysinit /system/xbin/busybox run-parts /system/etc/init.d
oneshot
上面busybox工具路徑要根據自己的系統寫
2.在system/etc下創建init.d目錄,在此目錄下添加寫好的腳本去掉後綴.sh,添加可執行許可權
3.重啟ok

2. 求助一下,安卓6.0刷完機之後怎麼開啟init.d自啟

安卓模擬器是按在你電腦的你電腦有IP的,IP就是網路地址,根據網路地址就知道實際地址了。所以只有隱藏了IP才能隱藏實際地址。。。

3. android系統如何修改成想要的mac地址格式

android 是linux內核,linux中mac地址是保存在/etc/init.d/networ 文件中的,mac地址可以用:連接,也可以用-連接。但是在android中mac地址是直接寫在硬體中的,需要通過API 才能獲取1、Android 獲取本機Mac 地址方法:需要在AndroidManifest.xml文件中添加許可權: public String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); } 2、Android 獲取本機IP地址方法:public String getLocalIpAddress() {try {for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()) {return inetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e("WifiPreference IpAddress", ex.toString());}return null;}

4. android的 mac地址格式問題

android 是Linux內核,linux中mac地址是保存在/etc/init.d/networ 文件中的,mac地址可以用:連接,也可以用-連接。

但是在android中mac地址是直接寫在硬體中的,需要通過API 才能獲取

1、Android 獲取本機Mac 地址方法:
需要在AndroidManifest.xml文件中添加許可權:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
public String getLocalMacAddress() {
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
return info.getMacAddress();
}

2、Android 獲取本機IP地址方法:
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e("WifiPreference IpAddress", ex.toString());
}
return null;
}

5. android源碼下 怎麼修改內存閥值

android源碼下 修改內存閥值的方法為:
第一步:首先建立一個XXX.txt文件,輸入以下代碼:
#!/system/bin/sh
echo "1536,2048,4096,6144,8192,12288" > /sys/mole/lowmemorykiller/parameters/minfree ;
這個代碼是基於MFM配置3對應的數值,用了幾天這個數值了沒發現問題,所以暫時以這個數值為例。
然後保存,將保存好的XXX.txt文件修改為67-Jasonfix
將這個67-Jasonfix文件用RE管理器放入system/etc/init.d下(這個文件夾裡面都是開機腳本設定。
然後將許可權改為:全部打鉤。
第二步:修改install-recovery.sh(在system/etc目錄下)
(1).找到這些腳本所在行
sh /system/etc/init.d/XXXXX
對應加入
sh /system/etc/init.d/67-Jason
(2).然後找到
echo A,B,C,D,E,F /sys/mole/lowmemorykiller/parameters/minfree
刪除這行並保存即可。

6. 安卓系統init.d文件夾裡面的內容什麼用,可以替換嗎

.d 是 directory 的縮寫,表示這是一個目錄(文件夾)。
這個在配置文件中比較常見。
一般如果有一系列格式相同的,目的一致的配置文件,就把它們放在一個以.d結尾的文件夾中。
例如,
init.d 中存放的就是一系列系統服務的管理(啟動與停止)腳本。
又如,
在我的 /etc/ 文件夾下有一個 modprob.conf 文件,用來配置系統載入的內核模塊。
同時又有一個 modprob.d 文件夾,裡面的文件與 modprob.conf 的格式和載入方式都相同。
這樣做的好處是,當新裝的軟體需要配置內核模塊時,只需簡單地向 modprob.d 文件夾中
添加一個文件就可以了,避免了修改 modprob.conf 文件的麻煩。而且各個配置的作用和來源
一目瞭然,維護起來也更加方便,當系統升級有新的 modprob.conf 時,只需簡單的替換原來的,因為用戶和其他程序添加的配置都以單獨文件的形式存放在 modprob.d 文件夾中,不會受到影響。

7. 安卓系統優化軟體 強制所有CPU在線中init.d腳本選項是什麼意思

1,init.d腳本--內核刷入方法下好後放入內存卡用REC刷入。
2,刷入內核後,在system/ect下建立一個init.d文件夾,就可以往其中添加各種各樣的腳本了,例如 一個關閉鍵盤燈腳本('05'、'60'這樣的字樣是代表優先順序,越小優先順序越高)

8. 如何去寫 Android init.rc (Android init language)

C風格的反斜杠轉義符可以用來插入空白到語言符號。雙引號也可以用來防止文本被空格分成多個語言符號。當反斜杠在行末時,作為折行符。 * 以#開始(前面允許有空格)的行為注釋行。 * Actions和Services隱含聲明一個新的段落。所有該段落下Commands或Options的聲明屬於該段落。第一段落前的Commands或Options被忽略。 * Actions和Services擁有獨一無二的命名。在它們之後聲明相同命名的類將被當作錯誤並忽略。init.action 當前正在執行的action,如果沒有則為"" init.command 被執行的命令,如果沒有則為"" init.svc.<name> 命名為<name>的服務的狀態("stopped", "running", "restarting") init.rc 示例:----------------- # not complete -- just providing some examples of usage#on boot export PATH /sbin:/system/sbin:/system/bin export LD_LIBRARY_PATH /system/lib mkdir /dev mkdir /proc mkdir /sys mount tmpfs tmpfs /dev mkdir /dev/pts mkdir /dev/socket mount devpts devpts /dev/pts mount proc proc /proc mount sysfs sysfs /sys write /proc/cpu/alignment 4 ifup lo hostname localhost domainname localhost mount yaffs2 mtd@system /system mount yaffs2 mtd@userdata /data import /system/etc/init.conf class_start default service adbd /sbin/adbd user adb group adb service usbd /system/bin/usbd -r user usbd group usbd socket usbd 666 service zygote /system/bin/app_process -Xzygote /system/bin --zygote socket zygote 666 service runtime /system/bin/runtime user system group system on device-added-/dev/compass start akmd on device-removed-/dev/compass stop akmd service akmd /sbin/akmd disabled user akmd group akmd 調試---------------默認情況下,init執行的程序輸出的信息和錯誤到/dev/null.為了debug,你可以通過Android程序logwrapper執行你的程序。

9. 如何寫 Android init.rc-ljbphoebe-ChinaUnix博客

Commands:命令
Actions: 動作
Triggers: 觸發條件
Services: 服務
Options: 選項
Propertise: 屬性

(1) Commands是一些基本的操作,例如:
mkdir /sdcard 0000 system system mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
mkdir /sqlite_stmt_journals 01777 root root
mount tmpfs tmpfs /sqlite_stmt_journals size=4m
這些命令在init可執行程序中被解析,然後調用相關的函數來實現。

(2) Actions(動作)表示一系列的命令,通常在Triggers(觸發條件)中調用,動作和觸發條件的形式為:
on動作的使用示例如下:
on init
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
mkdir /system
init表示一個觸發條件,這個觸發事件發生後,進行設置環境變數和建立目錄的操作稱為一個「動作」

(3) Services(服務)通常表示啟動一個可執行程序,Options(選項)是服務的附加內容,用於配合服務使用。
service vold /system/bin/vold
socket vold stream 0660 root mount
service bootsound /system/bin/playmp3
user media
group audio
oneshot
vold和bootsound分別是兩個服務的名稱,/system/bin/vold和/system /bin/playmp3分別是他們所對應的可執行程序。
socket、user、group、oneshot就是配合服務使用的選項。其中oneshot選項表示該服務只啟動一次,而如果沒有oneshot選項,
這個可執行程序會一直存在--如果可執行程序被殺死,則會重新啟動。

(4) Properties(屬性)是系統中使用的一些值,可以進行設置和讀取。
setprop ro.FOREGROUND_APP_MEM 1536
setprop ro.VISIBLE_APP_MEM 2048
on property:ro.kernel.qemu=1
start adbd
setprop 用於設置屬性,on property可以用於判斷屬性,這里的屬性在整個Android系統運行中都是一致的。
init腳本的關鍵字可以參考init進程的system/core/init/keyword.h文件。
init.rc的使用方法,可以參考說明文件system/core/init/readme.txt
如果想要修改啟動過程只需要修改init.c(system/core/init)或者init.rc里的內容即可.

如何去寫
Android init.rc (Android init language)
Android 初始化語言由四大類聲明組成 : 行為類 (Actions), 命令類 (Commands) ,服務類 (Services), 選項類 (Options).
* 初始化語言以行為單位,由以空格間隔的語言符號組成。 C 風格的反斜杠轉義符可以用來插入空白到語言符號。雙引號也可以用來防止文本被空格分成多個語言符號。當反斜杠在行末時,作為折行符。
* 以 # 開始 ( 前面允許有空格 ) 的行為注釋行。
* Actions 和 Services 隱含聲明一個新的段落。所有該段落下 Commands 或 Options 的聲明屬於該段落。第一段落前的 Commands 或Options 被忽略。
* Actions 和 Services 擁有獨一無二的命名。在它們之後聲明相同命名的類將被當作錯誤並忽略。
Actions
-------
Actions 是一系列命令的命名。 Actions 擁有一個觸發器 (trigger) 用來決定 action 何時執行。當一個 action 在符合觸發條件被執行時,如果它還沒被加入到待執行隊列中的話,則加入到隊列最後。
隊列中的 action 依次執行, action 中的命令也依次執行。 Init 在執行命令的中間處理其它活動 ( 設備創建 / 銷毀 ,property 設置,進程重啟) 。
Actions 表現形式為:
on
Services
--------
Services 是由 init 啟動,在它們退出時重啟 ( 可選 ) 。 Service 表現形式為 :
service [ ]*


...

Options
-------
Options 是 Services 的修飾,它們影響 init 何時、如何運行 service.

critical
這是一個設備關鍵服務 (device-critical service) . 如果它在 4 分鍾內退出超過 4 次,設備將重啟並進入恢復模式。

disabled
這個服務的級別將不會自動啟動,它必須被依照服務名指定啟動才可以啟動。

setenv
設置已啟動的進程的環境變數 的值

socket [ [ ] ]
創建一個名為 /dev/socket/ 的 unix domin socket ,並傳送它的 fd 到已啟動的進程。 必須為 "dgram" 或 "stream". 用戶和組默認為 0.

user
在執行服務前改變用戶名。當前默認為 root. 如果你的進程需要 linux 能力,你不能使用這個命令。你必須在還是 root 時請求能力,並下降到你需要的 uid.

group [ ]*
在執行服務前改變組。在第一個組後的組將設為進程附加組 ( 通過 setgroups()). 當前默認為 root.

oneshot
在服務退出後不重啟。

class
為 service 指定一個類別名。同樣類名的所有的服務可以一起啟動或停止。如果沒有指定類別的服務默認為 "default" 類。

onrestart
當服務重啟時執行一個命令。

Triggers
--------
Triggers( 觸發器 ) 是一個字元串,可以用來匹配某種類型的事件並執行一個 action 。

boot
這是當 init 開始後執行的第一個觸發器 ( 當 /init.conf 被載入 )

=
當 property 被設為指定的值 時觸發。

device-added-
device-removed-
當設備節點被添加或移除時觸發。

service-exited-
當指定的服務存在時觸發


Commands
--------

exec [ ]*
Fork 並執行一個程序 (). 這將被 block 直到程序執行完畢。最好避免執行例如內建命令以外的程序,它可能會導致 init 被阻塞不動。

export
設定全局環境變數 的值 ,當這個命令執行後所有的進程都可以取得。

ifup
使網路介面 聯機。

import
解析一個 init 配置文件,擴展當前配置文件。

hostname
設置主機名

chmod
改變文件訪問許可權

chown
改變文件所屬和組

class_start
當指定類別的服務沒有運行,啟動該類別所有的服務。

class_stop
當指定類別的服務正在運行,停止該類別所有的服務。

domainname
設置域名。

insmod
載入該路徑 的模塊

mkdir [mode] [owner] [group]
在 創建一個目錄 , 可選選項 :mod,owner,group. 如果沒有指定,目錄以 755 許可權, owner 為 root,group 為 root 創建 .

mount
[ ]*
嘗試 mount 到目錄
. 可以用 mtd@name 格式以命名指定一個 mtd 塊設備。 包含"ro","rw","remount","noatime".
例如:
mount -t vfat -o fmask=0000,dmask=0000,rw,flush,noatime,nodiratime /dev/block/mmcblk1p1 /SD1
chown system system /SD1
chmod 0777 /SD1
mount -t vfat -o fmask=0000,dmask=0000,rw,flush,noatime,nodiratime /dev/block/mmcblk1p6 /SD3
chown system system /SD3
chmod 0777 /SD3
setkey
暫時沒有

setprop
設置系統 property 的值 .

setrlimit
設置 resource 的 rlimit.

start
啟動一個沒有運行的服務。

stop
停止一個正在運行的服務。

symlink
創建一個 的符號鏈接到

sysclktz
設置系統時區 (GMT 為 0)

trigger
觸發一個事件。用於調用其它 action 。

write [ ]*
打開 的文件並寫入一個或多個字元串。
Properties
----------
Init 會更新一些系統 property 以提供查看它正在幹嘛。
init.action
當前正在執行的 action, 如果沒有則為 ""

init.command
被執行的命令,如果沒有則為 ""

init.svc.
命名為 的服務的狀態 ("stopped", "running", "restarting")


init.rc 示例 :
-----------------

# not complete -- just providing some examples of usage
#
on boot
export PATH /sbin:/system/sbin:/system/bin
export LD_LIBRARY_PATH /system/lib

mkdir /dev
mkdir /proc
mkdir /sys

mount tmpfs tmpfs /dev
mkdir /dev/pts
mkdir /dev/socket
mount devpts devpts /dev/pts
mount proc proc /proc
mount sysfs sysfs /sys

write /proc/cpu/alignment 4

ifup lo

hostname localhost
domainname localhost

mount yaffs2 mtd@system /system
mount yaffs2 mtd@userdata /data

import /system/etc/init.conf

class_start default

service adbd /sbin/adbd
user adb
group adb

service usbd /system/bin/usbd -r
user usbd
group usbd
socket usbd 666

service zygote /system/bin/app_process -Xzygote /system/bin --zygote
socket zygote 666

service runtime /system/bin/runtime
user system
group system

on device-added-/dev/compass
start akmd

on device-removed-/dev/compass
stop akmd

service akmd /sbin/akmd
disabled
user akmd
group akmd

調試
---------------
默認情況下, init 執行的程序輸出的信息和錯誤到 /dev/null. 為了 debug ,你可以通過 Android 程序 logwrapper 執行你的程序。這將復位向輸出 / 錯誤輸出到 Android logging 系統 ( 通過 logcat 訪問 ) 。


===============================================================

Android——init.rc腳本

在Android中使用啟動腳本init.rc,可以在系統的初始化中進行簡單的操作。
init.rc啟動腳本路徑:system/core/rootdir/init.rc
內容:

Commands:命令
Actions:動作
Triggers:觸發條件
Services:服務
Options:選項
Properties:屬性
Commands是一些基本操作。如:
mkdir /system
mkdir /data 0771 system system
mkdir /persist 0771 system system
devwait /dev/block/mmcblk0p12
mount ext3 /dev/block/mmcblk0p
Action表示一系列命令,通常在Triggers中調用,如:

on init //表示一個觸發條件
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /system/lib
export ANDROID_BOOTLOGO 1
Services通常表示啟動一個可執行程序,Options是服務的附加內容,用於配合服務使用。
service vold /system/bin/vold //vold是服務名稱,/system/bin/vold是所對應的可執行程序。
socket vold stream 0660 root mount //socket是配合服務使用的選項
ioprio be 2
service netd /system/bin/netd
socket netd stream 0660 root system
配合服務使用的選項有socket,user,group,oneshot。
oneshot表示該服務只啟動一次,而如果沒有oneshot選項,這個可執行程序將一直存在——如果可執行程序被殺死,則會重新啟動。
Properties是系統中使用的一些值,可以進行設置和讀寫。
setprop ro.HIDDEN_APP_MEM 5120 //setprop用於設置屬性
setprop ro.CONTENT_PROVIDER_MEM 5632
setprop ro.EMPTY_APP_MEM 6144
...
on property:ro.kernel.qemu=1 //on property用於判斷屬性
start adbd
這里的屬性在整個android系統運行中都是一致的。
init腳本的關鍵字可以參考init進程中的system/core/init/keyword.h文件。如:
KEYWORD(chroot, COMMAND, 1, do_chroot) //chroot是命令,do_chroot()是調用的函數,這個函數在init進程中的system/core/init/builtins.c文件中定義。
例如:
service akmd /system/bin/logwrapper /sbin/akmd

10. 自己寫的一個腳本,手機是安卓的,這個腳本開機過程中會執行,這里怎麼執行我就不細說了,它是由系統執行

system分區默認是只讀的,加一行命令,讓它可讀寫,如果沒有mount,但是有busybox,在命令前面加busybox
mount -o remount rw /system

閱讀全文

與androidinitd相關的資料

熱點內容
單片機的原理概述 瀏覽:506
火控pdf 瀏覽:267
如何復制雲伺服器centos環境 瀏覽:984
債權pdf 瀏覽:299
紅色番字的app怎麼下載 瀏覽:876
雲伺服器流程教課 瀏覽:702
中國農業銀行app怎麼沒有網 瀏覽:997
幾率表演算法 瀏覽:902
程序員理工科 瀏覽:708
企業郵箱登錄收件伺服器地址 瀏覽:558
計算機思維與演算法設計的重要性 瀏覽:664
linux刷新磁碟命令 瀏覽:76
我的世界如何查看伺服器種子pc 瀏覽:284
linuxlamp編譯安裝 瀏覽:609
枚舉演算法ppt 瀏覽:184
cmd查看進程命令 瀏覽:956
手機內怎麼刪除APP 瀏覽:834
魚群和鳥群演算法區別 瀏覽:93
pdf尺寸設置 瀏覽:211
android訪問本地伺服器 瀏覽:512