[已解決] 不知道怎麼使用.tar.gz (Ubuntu Touch 15.04 Daily Build) [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 (2)


回覆: 不知道怎麼使用.tar.gz
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29252
EXP: 6
離線
Say Sorry First!

剛下載「aucy-preinstalled-touch-armhf.zip」

$ wget -c http://cdimage.ubuntu.com/ubuntu-touch/saucy/daily-preinstalled/pending/saucy-preinstalled-touch-armhf.zip
$ unzip saucy-preinstalled-touch-armhf.zip -d saucy-preinstalled-touch-armhf
$ less saucy-preinstalled-touch-armhf/META-INF/com/google/android/updater-script

才發現這樣的指令
-----------------
...
run_program("/sbin/mount","/data");
...
package_extract_file("saucy-preinstalled-touch-armhf.tar.gz", "/data/ubuntu-rootfs.tar.gz");
-----------------

跟下面「那篇」提到的類似。


=========================================================================================================
run_program("/sbin/tar", "--numeric-owner", "-xzf", "/data/ubuntu-rootfs.tar.gz", "-C", "/data/ubuntu_tmp_extract");
=========================================================================================================


剛剛再仔細閱讀「文章的內容」,

I just had a look at saucy-preinstalled-touch-armhf.zip
You need to change: /META-INF/com/google/android/updater-script


我一開始沒有看到,歹勢

Orz...


samwhelp 寫到:
家豪 寫到:
V字龍 寫到:
把 img 刷進去就夠了,.tar.gz 是別的硬體裝的版本


只安裝這樣沒辦法開機的說

我有試過這篇文章
Windows下Nexus 7 2013刷ubuntu touch的教程
http://forum.ubuntu.org.cn/viewtopic.php?f=177&t=457381&p=3072988

還有這篇文章 (針對.tar.gz的嘗試)
[rom资源] window下nexus7 2013刷ubuntu touch(utopic)
http://bbs.gfan.com/android-7682354-1-1.html

最後讓我無力的文章
[ROM][7 Apr 13][Ubuntu][dev-only] PhabletSAGA | Ubuntu Touch [ROM][7 Apr 13][Ubuntu][dev-on… Post #45
http://forum.xda-developers.com/showpost.php?p=42082066&postcount=45

最後一篇文章似乎是關鍵
但我看得不是很懂
自己改的 zip 用 adb sideload 安裝之後無法開機...



沒玩過刷機

所以單純討論 tar 的用法。

根據你提供的「這篇文章

=========================================================================================================
run_program("/sbin/tar", "--numeric-owner", "-xzf", "/data/ubuntu-rootfs.tar.gz", "-C", "/data/ubuntu_tmp_extract");
=========================================================================================================

這一段指的是不是下面這一行指令

$ tar --numeric-owner -xzf /data/ubuntu-rootfs.tar.gz -C /data/ubuntu_tmp_extract

查一下「tar」的 manual

$ man tar

-------------------------
--numeric-owner
always use numbers for user/group names
-------------------------
-C, --directory DIR
change to directory DIR
-------------------------

不過你提供的「這篇」提到。

把舊的zip裡面的tar檔蓋掉。

但我想你有做那個動作。

家豪 寫到:
最後一篇文章似乎是關鍵
但我看得不是很懂
自己改的 zip 用 adb sideload 安裝之後無法開機...


也許你可以提供,你怎麼蓋掉的指令,或是步驟,供別人參考,幫你看看,看是不是哪裡遺漏或是步驟弄錯了。


2015/1/3 0:08
應用擴展 工具箱
回覆: 不知道怎麼使用.tar.gz
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29252
EXP: 6
離線
$ wget -c http://cdimage.ubuntu.com/ubuntu-touch/saucy/daily-preinstalled/pending/saucy-preinstalled-touch-armhf.zip
$ unzip saucy-preinstalled-touch-armhf.zip -d saucy-preinstalled-touch-armhf
$ less saucy-preinstalled-touch-armhf/META-INF/com/google/android/updater-script

另外你可以看「saucy-preinstalled-touch-armhf/META-INF/com/google/android/updater-script」。

裡面有一行

$ less saucy-preinstalled-touch-armhf/META-INF/com/google/android/updater-script


run_program("/tmp/ubuntu_deploy.sh");



然後再看「saucy-preinstalled-touch-armhf/ubuntu_deploy.sh」

然後裡面也有一行

$ less saucy-preinstalled-touch-armhf/ubuntu_deploy.sh


tar --numeric-owner -xzf /data/ubuntu-rootfs.tar.gz -C $tmp_extract



跟我說的類似。


$ tar --numeric-owner -xzf /data/ubuntu-rootfs.tar.gz -C /data/ubuntu_tmp_extract



只不過,您提供的「那篇」把它寫在「META-INF/com/google/android/updater-script」。

2015/1/3 0:38
應用擴展 工具箱
回覆: 不知道怎麼使用.tar.gz
會員一級
註冊日期:
2015/1/2 19:02
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 18
MP : 2 / 452
EXP: 73
離線
終於搞定了

我不是很熟指令
所以我在 windows 下這樣搞
對 saucy-preinstalled-touch-armhf.zip 右鍵, 7zip 直接全部解壓縮

按照這篇文章
我將這個檔案 /META-INF/com/google/android/updater-script
做了以下修改

Add on top (e.g. after the /data mount)
run_program("/sbin/mount","/sdcard");

And change:
package_extract_file("saucy-preinstalled-touch-armhf.tar.gz", "/data/ubuntu-rootfs.tar.gz");
to
package_extract_file("saucy-preinstalled-touch-armhf.tar.gz", "/sdcard/ubuntu-rootfs.tar.gz");

在底部新增一行
unmount("/sdcard");


接著
經由 samwhelp 的提醒
ubuntu_deploy.sh 做了以下修改
change:
tar --numeric-owner -xzf /data/ubuntu-rootfs.tar.gz -C $tmp_extract
to
tar --numeric-owner -xzf /sdcard/ubuntu-rootfs.tar.gz -C $tmp_extract
--------------
rm /data/ubuntu-rootfs.tar.gz
to
rm /sdcard/ubuntu-rootfs.tar.gz


把 vivid-preinstalled-touch-armhf.tar.gz 改名後蓋掉 saucy-preinstalled-touch-armhf.tar.gz
然後用 7zip 把資料包回 zip
這樣修改, 我成功利用舊的saucy-preinstalled-touch-armhf.zip
把vivid-preinstalled-touch-armhf.tar.gz 安裝 UBUNTU TOUCH 了
下面是刷機的詳細部分

vivid-preinstalled-recovery-armel+flo.img
這個 Recovery 不知道什麼原因考量
"install zip from sidelaod" 被拿掉了
所以我另外下載了 ClockworkMod 的 recovery

adb reboot bootloader
fastboot flash boot "vivid-preinstalled-boot-armhf+flo.img"
fastboot flash system "vivid-preinstalled-system-armel+flo.img"
fastboot flash recovery "recovery-clockwork-6.0.4.7-flo.img"

然後進到recovery
選擇 install zip from sidelaod
adb sideload saucy-preinstalled-touch-armhf.zip

重新開機.....

Ubuntu 15.04



還很不穩定
只是左右滑滑就可能重新開機
我猜到了4月又要延期了(X

感謝各位的協助

2015/1/5 15:04
應用擴展 工具箱
回覆: 不知道怎麼使用.tar.gz
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29252
EXP: 6
離線
家豪 寫到:
終於搞定了

我不是很熟指令


恭喜你已經搞定了!

所以下面只是補充「zip」和「unzip」下指令的用法。
要執行這兩個指令要先安裝兩個套件「zip」和「unzip」。


## 測試環境

以下測試環境是「Xubuntu 14.04 64位元」。

## 安裝套件

$ sudo apt-get install zip unzip

## 下載測試檔

$ wget -c http://cdimage.ubuntu.com/ubuntu-touch/saucy/daily-preinstalled/pending/saucy-preinstalled-touch-armhf.zip

## 了解壓縮檔有哪些檔案

$ unzip -l saucy-preinstalled-touch-armhf.zip


Archive: saucy-preinstalled-touch-armhf.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-04 07:19 META-INF/
0 2013-05-04 07:19 META-INF/com/
0 2013-05-04 07:19 META-INF/com/android/
0 2013-05-04 07:19 META-INF/com/google/
0 2013-11-28 00:42 META-INF/com/google/android/
737 2013-11-28 00:42 META-INF/com/google/android/updater-script
240940 2013-05-04 07:19 META-INF/com/google/android/update-binary
1714 2013-05-04 07:19 META-INF/CERT.RSA
414247490 2013-11-28 00:39 saucy-preinstalled-touch-armhf.tar.gz
1709 2013-11-28 00:42 ubuntu_deploy.sh
--------- -------
414492590 10 files



或是

$ unzip -Z saucy-preinstalled-touch-armhf.zip

$ zipinfo saucy-preinstalled-touch-armhf.zip # 這個等同「unzip -Z saucy-preinstalled-touch-armhf.zip」


Archive: saucy-preinstalled-touch-armhf.zip
Zip file size: 409934635 bytes, number of entries: 10
drwxrwsr-x 3.0 unx 0 bx stor 13-May-04 07:19 META-INF/
drwxrwsr-x 3.0 unx 0 bx stor 13-May-04 07:19 META-INF/com/
drwxrwsr-x 3.0 unx 0 bx stor 13-May-04 07:19 META-INF/com/android/
drwxrwsr-x 3.0 unx 0 bx stor 13-May-04 07:19 META-INF/com/google/
drwxrwsr-x 3.0 unx 0 bx stor 13-Nov-28 00:42 META-INF/com/google/android/
-rw-rw-r-- 3.0 unx 737 tx defN 13-Nov-28 00:42 META-INF/com/google/android/updater-script
-rw-rw-r-- 3.0 unx 240940 bx defN 13-May-04 07:19 META-INF/com/google/android/update-binary
-rw-rw-r-- 3.0 unx 1714 bx defN 13-May-04 07:19 META-INF/CERT.RSA
-rw-r--r-- 3.0 unx 414247490 bx defN 13-Nov-28 00:39 saucy-preinstalled-touch-armhf.tar.gz
-rw-r--r-- 3.0 unx 1709 tx defN 13-Nov-28 00:42 ubuntu_deploy.sh
10 files, 414492590 bytes uncompressed, 409932845 bytes compressed: 1.1%



## 解壓縮

從上面看到最上層並沒有一個資料夾,所以加上「-d work」這個選項,解壓縮到「work」這個資料夾。

$ unzip saucy-preinstalled-touch-armhf.zip -d work


## 切換到工作的資料夾

切換到「work」這個資料夾,處理上面「那篇」提到的修改動作。

$ cd work

...略...

## 重新壓縮

下面這個指令,就會把work資料夾底下的檔案都壓成一個檔放在「../fix.zip」,也就是「work」上一層有一個「fix.zip」。
並且壓縮檔「fix.zip」解開,最上層不會有「work」這個資料夾。

$ zip ../fix * -r

## 檢測剛剛壓縮好的檔案

$ cd ..

$ unzip -l fix.zip


Archive: fix.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-03 23:19 META-INF/
1714 2013-05-03 23:19 META-INF/CERT.RSA
0 2013-05-03 23:19 META-INF/com/
0 2013-05-03 23:19 META-INF/com/google/
0 2013-11-27 16:42 META-INF/com/google/android/
737 2013-11-27 16:42 META-INF/com/google/android/updater-script
240940 2013-05-03 23:19 META-INF/com/google/android/update-binary
0 2013-05-03 23:19 META-INF/com/android/
414247490 2013-11-27 16:39 saucy-preinstalled-touch-armhf.tar.gz
1709 2013-11-27 16:42 ubuntu_deploy.sh
--------- -------
414492590 10 files



## 額外一提

以下只是介紹zip的用法,跟上面的用法比較區分。

這是在work上方那一層資料夾,下的指令。
這樣會把「work」底下的所有檔案壓縮,產生一個「archive.zip」的檔案。
當解壓縮的時候,就會產生一個資料夾「work」。


$ zip archive work -r


這個壓縮檔,就跟上面的結構不一樣,最上層會有個「work」資料夾。

$ unzip -l archive.zip


Archive: archive.zip
Length Date Time Name
--------- ---------- ----- ----
0 2015-01-05 20:25 work/
0 2013-05-03 23:19 work/META-INF/
1714 2013-05-03 23:19 work/META-INF/CERT.RSA
0 2013-05-03 23:19 work/META-INF/com/
0 2013-05-03 23:19 work/META-INF/com/google/
0 2013-11-27 16:42 work/META-INF/com/google/android/
737 2013-11-27 16:42 work/META-INF/com/google/android/updater-script
240940 2013-05-03 23:19 work/META-INF/com/google/android/update-binary
0 2013-05-03 23:19 work/META-INF/com/android/
1709 2013-11-27 16:42 work/ubuntu_deploy.sh
414247490 2013-11-27 16:39 work/saucy-preinstalled-touch-armhf.tar.gz
--------- -------
414492590 11 files


$ mkdir tmp

$ cp archive.zip tmp/

$ cd tmp

$ unzip archive.zip

2015/1/5 20:50
應用擴展 工具箱

« 1 (2)

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.