綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[已解決] updater-script 如何增加字到build.prop?

[複製連結] 查看: 4868|回覆: 20|好評: 2
跳轉到指定樓層
樓主
rsps1008 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-8-7 16:52

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 rsps1008 於 2013-8-9 16:58 編輯

如題,updater-script 增加字到build.prop的指令是...?我記得我看過這個指令,但我一直找不到-.-
先謝謝各位><
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏2 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
monitorstudio | 收聽TA | 只看該作者
發表於 2013-8-7 18:29
我只知道這種方法, 不過還是獻醜一下

1.先在updater-script裡加入以下指令:
  1. package_extract_file("檔案名稱.sh", "/tmp/檔案名稱.sh");
  2. run_program("/tmp/檔案名稱.sh");
複製代碼
2.在刷機包裡面加入
~/檔案名稱.sh

3.在加入的"檔案名稱sh"裡輸入以下指令:
  1. #!/sbin/sh
  2. echo "欲加入的第一行字" | tee -a /system/build.prop
  3. echo "欲加入的第二行字" | tee -a /system/build.prop
  4. ......依此類推
複製代碼
4.記得檔案格式要存成UNIX/Linux格式喔!

評分

參與人數 1幫助 +3 技術 +1 收起 理由
rsps1008 + 3 + 1 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| rsps1008 | 收聽TA | 只看該作者
發表於 2013-8-7 18:35
本帖最後由 rsps1008 於 2013-8-7 18:37 編輯


請問檔案名稱.sh要放在刷機包的哪裡呢?
SYSTEM裡面嗎?
還是和META-INF放同一個目錄?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
monitorstudio | 收聽TA | 只看該作者
發表於 2013-8-7 18:39
要注意空格...

對了, 這裡要澄清一下, 這是給updater-script的, 不是update-script...
不過版主大大應該有能力自己把它轉換一下吧!
(其實是小弟不會update-script)

還有, 那個sh檔(shell script)如果要在filesystem(正常開機狀態, 不是在recovert裡)運行的話, 第一行要換成:
  1. #!/system/bin/sh
複製代碼

評分

參與人數 1幫助 +5 收起 理由
rsps1008 + 5 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
monitorstudio | 收聽TA | 只看該作者
發表於 2013-8-7 18:43
rsps1008 發表於 2013-8-7 18:35
請問檔案名稱.sh要放在刷機包的哪裡呢?
SYSTEM裡面嗎?
還是和META-INF放同一個目錄? ...

和META-INF,system......的資料夾一起壓縮即可
如果要放在刷機包的~/system裡面要這樣寫:
  1. package_extract_file("system/檔案名稱.sh", "/tmp/檔案名稱.sh");
複製代碼
要注意的是, "system/檔案名稱.sh"的system前面沒有"/"

評分

參與人數 1幫助 +5 收起 理由
rsps1008 + 5 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
 樓主| rsps1008 | 收聽TA | 只看該作者
發表於 2013-8-7 18:51
本帖最後由 rsps1008 於 2013-8-7 18:53 編輯
monitorstudio 發表於 2013-8-7 18:39
要注意空格...

對了, 這裡要澄清一下, 這是給updater-script的, 不是update-script...


是updater-script沒錯...(手殘= =..)
是說update-script我聽都沒聽過=A=+
請問一下,要怎麼讓他在rececovery運行呢?
開頭#!/sbin/sh就可以了嗎?
抱歉我很菜-.-

點評

update-script就是第一代的刷機腳本,叫做a.....什麼來者的??? updater-script是第二代的,edify腳本  發表於 2013-8-7 19:03
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
monitorstudio | 收聽TA | 只看該作者
發表於 2013-8-7 19:01
rsps1008 發表於 2013-8-7 18:51
是updater-script沒錯...(手殘= =..)
是說update-script我聽都沒聽過=A=+
請問一下,要怎麼讓他在rececov ...

呃…是真的有update-script...
是的,只要以那個開頭就可以在recovery運行無誤了~

評分

參與人數 1幫助 +5 技術 +1 收起 理由
rsps1008 + 5 + 1 非常感謝=)

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
monitorstudio | 收聽TA | 只看該作者
發表於 2013-8-7 22:34
本帖最後由 monitorstudio 於 2013-8-8 15:25 編輯

其實shell腳本是非常好用的,因為看到版大在做刷機包(終於有同類了!!!!!這一天終於來了!!!!!),因為太感動了,所以就把一些基本的語法說一說,這樣以後在做刷機包/ROM的時候會方便許多~

("~/" 代表任意路徑)

1.確認檔案/資料夾/名稱是否存在:
確認檔案是否存在:

  1. if [ -f ~/檔案名稱 ]; then   //如果存在,則
  2. 敘述1;
  3. 敘述2;
  4. 敘述......;
  5. elif [ 判斷式 ]; then  //如果不存在,則(可以沒有 elif )
  6. 敘述1;
  7. 敘述2;
  8. 敘述......;
  9. else;   //其它狀況,則(可以沒有else)
  10. 敘述1;
  11. 敘述2;
  12. 敘述......;

複製代碼
確認資料夾是否存在:

  1. if [ -d ~/資料夾名稱 ]; then   //如果存在,則
  2. 敘述1;
  3. 敘述2;
  4. 敘述......;
  5. elif [ 判斷式 ]; then  //如果不存在,則(可以沒有 elif )
  6. 敘述1;
  7. 敘述2;
  8. 敘述......;
  9. else;   //其它狀況,則(可以沒有else)
  10. 敘述1;
  11. 敘述2;
  12. 敘述......;
  13. endif;

複製代碼
確認名稱是否存在(不論資料夾,檔案,分區......):

  1. if [ -e ~/名稱 ]; then   //如果存在,則
  2. 敘述1;
  3. 敘述2;
  4. 敘述......;
  5. elif [ 判斷式 ]; then  //如果不存在,則(可以沒有 elif )
  6. 敘述1;
  7. 敘述2;
  8. 敘述......;
  9. else;   //其它狀況,則(可以沒有else)
  10. 敘述1;
  11. 敘述2;
  12. 敘述......;

複製代碼
2.新增資料夾:

  1. mkdir ~/資料夾名稱
複製代碼
3.刪除檔案/資料夾:

刪除檔案:

  1. rm ~/檔案名稱
複製代碼
刪除資料夾:

  1. rm -r ~/資料夾名稱
複製代碼
4.複製檔案/資料夾:

複製檔案:

  1. cp 原檔案路徑 欲複製到的路徑
複製代碼
複製資料夾:

  1. cp -r 原資料夾路徑 欲複製到的路徑
複製代碼
5.移動檔案/資料夾(把檔案移動到原本的位置可以用來重新命名,至少我都這樣用XD):
移動檔案:

  1. mv ~/原檔案路徑&名稱 ~/欲複製到的路徑&名稱(可不必與原檔案名稱相同)
複製代碼
移動資料夾:

  1. mv -r ~/原始路徑 ~/欲移動到的路徑
複製代碼
6.增加一行字(我發現只要增加的無內容的一行就可以用來新增檔案),有兩種寫法:

  1. echo "..." | tee -a ~/...
  2. echo "..." >> ~/...
複製代碼
兩種是一樣的

7.修改權限:

  1. chmod 權限 ~/檔案or資料夾名稱
複製代碼
這裡有幾點很重要:
1.系統辨別權限是用數字來辨別的
2.權限總共有三種(讀,寫,執行)
3.我們在管理的是:擁有者,群組,其它三種使用者所擁有的權限

像三讀一寫就是:
擁有者:讀寫
群組:讀
其它:讀

數值:
讀:4
寫:2
執行:1

按照上面的方法,三讀一寫就是:
擁有者:讀寫 4+2+0=6
群組:讀 4+0+0=4
其它:讀 4+0+0=4

所以是我們熟悉的0644

以此類推,0755就是三讀一寫三執行

su的檔案權限比較特別,它是
  1. 6755
複製代碼
8.修改擁有者:

  1. chown 擁有者 群組擁有者
複製代碼
例:chown root system
上面的等於chown 0 1000

9.如果要執行其他的sh檔案(shell script)只要直接把它的路徑寫出來就好,例如我想要執行/system/etc/init.d/90zipalign這個腳本檔案,我只要這樣寫

  1. /system/etc/init.d/90zipalign
複製代碼

  1. ./system/etc/init.d/90zipalign
複製代碼
有很多種寫法,但這兩種就很夠了~


所以綜合以上所學,如果/data有test資料夾存在,則刪除該資料夾,並建立新檔案"test",如果檔案原本就存在,則將其重新命名為test.log,並增加一段文字"This is just a test",如果沒有資料夾且沒有檔案,則新建一個檔案"test"可以這麼寫:

#!/system/bin/sh
if [ -d /data/test ]; then
rm -r /data/test;
echo "" >> /data/test;
elif [ -f /data/test ]; then
mv /data/test /data/test.log;
echo "This is just a test" >> /data/test.log;
else;
echo "" >> /data/test;
endif;

評分

參與人數 3碎鑽 +7 經驗 +2 幫助 +11 技術 +2 收起 理由
prograit + 1 + 1 非常讚
RainOpera + 3 + 1 + 5 + 2 讚一個!
rsps1008 + 3 + 1 + 5 超厲害!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
 樓主| rsps1008 | 收聽TA | 只看該作者
發表於 2013-8-7 23:18
monitorstudio 發表於 2013-8-7 22:34
其實shell腳本是非常好用的,因為看到版大在做刷機包(終於有同類了!!!!!這一天終於來了!!!!!),因為太感動 ...

請容許菜鳥小弟我在此一拜(跪
感謝大師的指點,有這些我想我又可以更上一層了^_^
研究中...~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
 樓主| rsps1008 | 收聽TA | 只看該作者
發表於 2013-8-9 16:58
monitorstudio 發表於 2013-8-7 22:34
其實shell腳本是非常好用的,因為看到版大在做刷機包(終於有同類了!!!!!這一天終於來了!!!!!),因為太感動 ...

請問一下大大知道,updater-script清除某一應用程式資料的指令嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則