首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機(jī)救磚 | ROM固件

查看: 29306|回復(fù): 3
上一主題 下一主題
[教程]

Android系統(tǒng)recovery刷機(jī)腳本updater-script語法說明 ...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2014-3-7 00:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式 | 來自河南
Android系統(tǒng)recovery刷機(jī)腳本updater-script語法說明
這篇教程部分說明來源于網(wǎng)絡(luò),主要為了讓大家了解updater-script語法和使用,以及熟悉權(quán)限的定義和如何使用

unmount
    • unmount(mount_point);
    • mount_point---是mount設(shè)置產(chǎn)生的值。作用與掛載相對應(yīng),卸載分區(qū)或設(shè)備。此函數(shù)與mount配套使用。
    • unmount("/system");   卸載/system分區(qū)

    復(fù)制代碼

  • format
    • format(type, location);
    • type="MTD"  location=partition(分區(qū)),location參數(shù)代表分區(qū)。
    • format("MTD", "system");  格式化system分區(qū)

    復(fù)制代碼

  • mount
    • mount(type, location, mount_point);
    • type="MTD"   location="" 掛載yaffs2文件系統(tǒng)分區(qū);type="vfat"  location="/dev/block/"  掛載設(shè)備。
    • mount("MTD", "system", "/system");         掛載system分區(qū),返回值"/system”
    • mount("ext4", "/dev/block/mmcblk1p2", "/system");     掛載/dev/block/mmcblk1p2,返回值"/system”/system分區(qū)格式為ext4
    • mount("vfat", "/dev/block/mmcblk1p2", "/system");     掛載/dev/block/mmcblk1p2,返回值"/system”/system分區(qū)格式為vfat

    復(fù)制代碼

  • Delete
    • delete();刪除文件
    • delete("/data/zipalign.log");    刪除文件/data/zipalign.log

    復(fù)制代碼

  • delete_recursive
    • delete_recursive();刪除文件夾
    • delete_recursive("/data/dalvik-cache");刪除文件夾/data/dalvik-cache

    復(fù)制代碼

  • show_progress
    • show_progress(,);為下面進(jìn)行的程序操作顯示進(jìn)度條,進(jìn)度條會根據(jù)設(shè)置的參數(shù)前進(jìn)
    • show_progress(0.1, 10);show_progress下面的操作可能進(jìn)行10s,完成后進(jìn)度條前進(jìn)0.1(也就是10%)

    復(fù)制代碼

  • package_extract_dir
    • package_extract_dir(package_path, destination_path);解壓package_path文件夾到destination_path目錄
    • package_extract_dir("system", "/system");  解壓ROM包里system文件夾下所有文件和子文件夾至/system目錄

    復(fù)制代碼

  • package_extract_file
    • package_extract_file(package_path, destination_path);解壓package_path文件到destination_path目錄
    • package_extract_dir("my.zip", "/system");  解壓ROM包里的my.zip文件到/system目錄

    復(fù)制代碼

  • Symlink
    • symlink(...);建立指向target符號鏈接src1,src2,也就是軟鏈接
    • symlink("toolbox", "/system/bin/ps");建立指向toolbox的符號鏈接/system/bin/ps

    復(fù)制代碼

  • set_perm
    • set_perm(...);設(shè)置文件的用戶為uid,用戶組為gid,權(quán)限為mode
    • set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");  設(shè)置文件/system/etc/dbus.conf的所有者為1002,所屬用戶組為1002,權(quán)限為:所有者有讀權(quán)限,所屬用戶組有讀權(quán)限,其他無任何權(quán)限。

    復(fù)制代碼

    【語法】set_perm(<uid>,<gid>,<mode>, "<path>");
    <uid>表示用戶名稱
    <gid>表示用戶組名稱
    <mode>表示權(quán)限模式
    <path> 表示文件路徑,可以使多個,用空格隔開
    【作用】設(shè)置單個文件或目錄的所有者和權(quán)限,像linux中的chmod、chown或chgrp命令一樣,只是集中在了一個命令當(dāng)中
    【舉例】set_perm(0,2000,0550,"system/etc/init.goldfish.sh")(設(shè)置手機(jī)system中的etc/init.goldfish.sh的用戶為root,用戶組為shell,所有者以及所屬用戶組成員可以進(jìn)行讀取和執(zhí)行操作,其他用戶無操作權(quán)限)
    【說明】在此命令中最難明白的是0 2000 0550這幾組參數(shù)所代表的意思,這是Linux相關(guān)的參數(shù)
    具體如下:0代表用戶為root,2000代表用戶組為shell。0550這組數(shù)據(jù)的最后三位550,分別代表所有者\組用戶\其他用戶的權(quán)限,也就是我們在RE管理中“用戶\群組\其他”三行。
    我們以XXX來表示這三組權(quán)限,其中:
    ×=4 讀的權(quán)限  
    ×=2 寫的權(quán)限  
    ×=1 執(zhí)行的權(quán)限  
    我們必須首先了解用數(shù)字表示的屬性含義:0表示沒有權(quán)限,1表示可執(zhí)行權(quán)限,2表示可寫權(quán)限,4表示可讀權(quán)限,然后將其相加。所以數(shù)字屬性的格式應(yīng)為3個從0到7的八進(jìn)制數(shù)。
    例如:想讓某個文件的屬性有"讀/寫"兩種權(quán)限,需要把4(可讀)+2(可寫)=6(讀/寫)。若要rwx屬性則4+2+1=7;若要rw-屬性則4+2=6;若要r-x屬性則4+1=5。
    常用修改權(quán)限的命令:  
    Set_perm 0 0 0600 ××× (只有所有者有讀和寫的權(quán)限)  
    Set_perm 0 0 0644 ××× (所有者有讀和寫的權(quán)限,組用戶只有讀的權(quán)限)  
    Set_perm 0 0 0700 ××× (只有所有者有讀和寫以及執(zhí)行的權(quán)限)  
    Set_perm 0 0 0666 ××× (每個人都有讀和寫的權(quán)限)  
    Set_perm 0 0 0777 ××× (每個人都有讀和寫以及執(zhí)行的權(quán)限)  
    范例 :
    -rw------- (600) -- 只有用戶有讀寫權(quán)限。
    -rw-r--r-- (644) -- 只有用戶有讀寫權(quán)限;而組用戶和其他用戶只有讀權(quán)限。
    -rwx------ (700) -- 只有用戶有讀、寫、執(zhí)行權(quán)限。
    -rwxr-xr-x (755) -- 用戶有讀、寫、執(zhí)行權(quán)限;而組用戶和其他用戶只有讀、執(zhí)行權(quán)限。
    -rwx--x--x (711) -- 用戶有讀、寫、執(zhí)行權(quán)限;而組用戶和其他用戶只有執(zhí)行權(quán)限。
    -rw-rw-rw- (666) -- 所有用戶都有文件讀、寫權(quán)限。這種做法不可取。
    -rwxrwxrwx (777) -- 所有用戶都有讀、寫、執(zhí)行權(quán)限。更不可取的做法。

  • set_perm_recursive
    • set_perm_recursive(...);設(shè)置文件夾和文件夾內(nèi)文件的權(quán)限
    • set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");   設(shè)置/data/app的所有者和所屬用戶組為1000,app文件夾的權(quán)限是:所有者和所屬組擁有全部權(quán)限,其他有執(zhí)行權(quán)限;
    • app文件夾下的文件權(quán)限是:所有者有讀寫權(quán)限,所屬組有讀權(quán)限,其他有讀權(quán)限。

    復(fù)制代碼

    【語法】set_perm_recursive <uid> <gid> <dir-mode> <file-mode> <path> [...<pathN>]
    <uid>表示用戶,<gid>表示用戶組,<dir-mode>表示文件夾的權(quán)限,<file-mode>表示文件的權(quán)限,<path> [... <pathN>]表示文件夾的路徑,可以多個,用空格分開
    【作用】設(shè)置文件夾及文件夾中的文件的所有者和用戶組
    【說明】其中<dir-mode> <file-mode>分別代表目錄和file的權(quán)限,具體參數(shù)如上述
    【舉例】set_perm_recursive 0 0 0755 0644 SYSTEM:app(設(shè)置手機(jī)system/app文件夾及其中文件的用戶為root,用戶組為root,app文件夾權(quán)限為所有者可以進(jìn)行讀、寫、執(zhí)行操作,其他用戶可以進(jìn)行讀取和執(zhí)行操作,其中的文件的權(quán)限為所有者可以進(jìn)行讀寫操作,其他用戶可以進(jìn)行讀取操作)
    下面是我們常用的兩組修改權(quán)限的命令:
    一組是常規(guī)程序用RE管理器拷貝到system/app后修改的權(quán)限命令如下:
    set_perm(0,0,0644,"/system/app/Calendar.apk");
    一組是我們要移動dalvik-cache到cache過程中拷貝修改mot_boot_mode.bin命令如下:
    set_perm(0,0,0755,"/system/bin");

  • ui_print
    • ui_print("pwelyn");屏幕打印輸出"pwelyn"
    • ui_print("GR[GreatRom/GfanRom]");    屏幕打印GR[GreatRom/GfanRom]

    復(fù)制代碼

  • run_program
    • run_program();運行shell腳本
    • run_program("/system/xbin/installbusybox.sh");    運行installbusybox.sh腳本文件

    復(fù)制代碼

  • write_raw_image
    • write_raw_image(, partition);寫入至partition分區(qū)
    • write_raw_image("/tmp/boot.img", "boot")將boot.img直接寫入boot分區(qū)

    復(fù)制代碼

  • assert
    • assert(...);如果執(zhí)行sub1不返回錯誤則執(zhí)行sub2,如果sub2不返回錯誤則執(zhí)行sub3一次類推。
    • assert(package_extract_file("boot.img", "/tmp/boot.img"),
    • write_raw_image("/tmp/boot.img", "boot"),
    • delete("/tmp/boot.img"));   執(zhí)行package_extract_file,如果不返回錯誤則執(zhí)行write_raw_image,如果write_raw_image不出錯則執(zhí)行delete

    復(fù)制代碼

  • 刷機(jī)后自動重啟
    • run_program("/sbin/sleep", "3");
    • run_program("/sbin/reboot");

    復(fù)制代碼

  • 結(jié)束
    教程結(jié)束感謝大家支持



上一篇:安卓4.2設(shè)置背景白底黑字教程
下一篇:android源碼中ccache使用及原理簡介
沙發(fā)
發(fā)表于 2014-3-7 00:46 | 只看該作者 | 來自四川
精華內(nèi)容,樓主V5!
回復(fù) 支持 反對

使用道具 舉報

板凳
發(fā)表于 2016-3-10 19:44 | 只看該作者 | 來自山東
感謝分享,ZNDS有你更精彩:)
回復(fù) 支持 反對

使用道具 舉報

地板
發(fā)表于 2016-3-10 19:44 | 只看該作者 | 來自山東
精華內(nèi)容,樓主V5!
回復(fù) 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號 )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號

GMT+8, 2024-10-20 16:30 , Processed in 0.070043 second(s), 14 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表