果然有程度的文章
讚!

carcardon wrote:
可以呀~其實繁化不難...(恕刪)
Nubia Z5S這款新機功能價格真是頂級.............到爆
又是全頻機國際板就連亞太EVDO B版也支援..........讚
我朋友它有買台版Z5,亞太速度超過中華....下載450KB左右
上傳190KB左右.害我很想....................跳槽
但是沒有繁體真的就很................機車
露天拍賣上已有高手繁化,又加了台灣全部電信VPN
我想真的是太厲害了.繁化一個系統真的要很有耐心
前前後後大約150~200各app........想到就暈倒

jogoblog wrote:
Nubia Z5S這...(恕刪)

繁化確實不容易...
但你介紹的那家價格有點貴...加上Nubia在台灣沒有很多人有~~應該不好銷售~
而且如果我有二支...我就得多花5000...

如果能刷一支~第二支以上可以自己刷那就還好~
挖到寶~挖到你愛的寶^^
對啊~真的很煩~不過有些比較負責的店家幫你繁化之後~
往後有新的繁化版本出來~也會免費幫你升級

其實是有方法可以請人幫你繁化系統後,直接從系統提取出他繁化過的rom
再把那個rom拿去刷別的手機
不過這個做法不仁道,因為畢竟是別人辛苦而來的東西
這樣做有一點像小偷的行為

另外就是要提取出rom就沒有像繁化rom那麼簡單了
因為要先瞭解怎麼設定system/bin裡面的東西
跟這個rom裡面所有檔案應該擁有的權限

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

在外面使用電腦,手邊沒有rom的update-script,隨便抓一個z5s-mini官方的update-script來解說

assert((getprop("ro.product.device") == "NX503A"&&getprop("ro.product.model") =="NX503A")&&getprop("ro.product.name") == "NX503A");

上面這行是驗證的行為,通常我會把它刪掉
會驗證手機上ro.product.model ro.prduct.name的參數~
通常是為了防止此rom檔不小心被別人拿去刷入其它型號的手機

show_progress(0.500000, 0);
上面這語法通常是拿來秀刷機時那個進度棒
有時候這個設錯也會造成無法刷機的情形
詳細設定方法請自行google~或者也可以完全不用動它

format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
上面的語法是格式化system分區之後再掛載system分區
寫刷機腳本時,這個動作是一定需要的~(簡單的說就像重灌windows系統一樣,格式化硬碟或硬碟分區才能安裝windows)

package_extract_dir("recovery", "/system");
package_extract_dir("system", "/system");
上面這個語法是說明把刷機ROM裡面的recovery 跟system相關資料 對應到手機裡的/system

symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("fw_bcmdhd_apsta.bin", "/system/etc/firmware/bcm4339/fw_bcmdhd.bin");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/cat", "/system/bin/chmod",
"/system/bin/chown", "/system/bin/cmp", "/system/bin/cp",
"/system/bin/date", "/system/bin/dd", "/system/bin/df",
"/system/bin/dmesg", "/system/bin/du", "/system/bin/getevent",
"/system/bin/getprop", "/system/bin/grep", "/system/bin/hd",
"/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop",
"/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice",
"/system/bin/kill", "/system/bin/ln", "/system/bin/log",
"/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof",
"/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount",
"/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat",
"/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
"/system/bin/ps", "/system/bin/reboot", "/system/bin/renice",
"/system/bin/rm", "/system/bin/rmdir", "/system/bin/rmmod",
"/system/bin/route", "/system/bin/schedtop", "/system/bin/sendevent",
"/system/bin/setconsole", "/system/bin/setprop", "/system/bin/sleep",
"/system/bin/smd", "/system/bin/start", "/system/bin/stop",
"/system/bin/sync", "/system/bin/top", "/system/bin/touch",
"/system/bin/umount", "/system/bin/uptime", "/system/bin/vmstat",
"/system/bin/watchprops",
"/system/bin/wipe");

Symbolic link 就是在建立一個獨立的檔案,而這個檔案會讓資料的讀取指向他 link 的那個檔案的檔名,由於只是利用檔案來做為指向的動作, 所以,當來源檔被刪除之後,symbolic link 的檔案會『開不了』, 會一直說『無法開啟某檔案!』。實際上就是找不到原始『檔名』而已啦,在這邊每個手機會samlink的東西都不一樣,可以看到system/bin下面很多檔案都是連結到toolbox,一些第三方的rom可能還會另外加入busybox工具另外連接到busybox,怎麼說呢,這東西有一點像以前dos電腦年代,要使用某些指令的時候,必須磁片或硬碟裡面先擁有那些指令檔,例否開機需要用到command檔案的時候,就必須先放入dos開機片的道理是一樣的,系統內有些參數會用到上面的symlink的指令,所以通常我們會先透過re管理器看一下system/bin下面symlink了那些東西記錄下來,再需要提取出rom的時候,腳本裡面加入這些symlink,除了system/bin裡面的,system/font 跟system/etc裡通常也會存在一些字型跟系統底層包的symlink,所以每支手機symlink的東西不太一樣,要提取rom前需要自行先進入system裡面紀錄,另外要說的是,通常我會把busybox放在/system/xbin裡面,這樣比較不會跟系統內建的toolbox搞混,busybox的工具通常是用在跑一些像v6-superchanger渦淪加速的腳本會用到,通常不去定義它也沒關係,不過第三方的rom也很多自定義的指令,所以通常會另外加入bosybox(像大部份cm官方的rom)

set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 1000, 0750, "/system/bin/busybox");
set_perm(0, 1000, 04750, "/system/bin/diag_mdlog");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm(0, 2000, 0755, "/system/vendor");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/lib/drm");
set_perm(0, 2000, 0755, "/system/vendor/lib/egl");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/pittpatt");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-r0-ri30.4a-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rn30-ri30.5-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rp30-ri30.5-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
上面的語法就是在設定system裡面所有資料夾跟檔案的權限
set_perm_recursive是設定整個資料夾的權限
set_perm是設定單個檔案的權限
這東西跟ntfs硬碟裡面權限設定的原理差不多
每個檔案要怎麼設定,就自行google吧~權限這東西有點雜,我也不知道該怎麼解說
但大部份rom裡面檔案的設定都差不多
通常我也是先用re管理器看一下system裡面檔案的結構紀錄下來
然後再代入刷機腳本


show_progress(0.200000, 0);
show_progress(0.200000, 10);
這個一樣是進度條的語法可以不用更動它


package_extract_file("boot.img", "/dev/block/platform/msm_sdcc.1/by-name/boot");
刷入刷機檔裡面的boot核心映象檔

show_progress(0.100000, 0);
unmount("/system");
解除掛解system分區 ~
必要的指令之一 修改完system分區時一定要加入的語法跟mount一樣

ui_print("Writing radio image...");
ui_print通常是用來顯示刷機時秀出的訊息
把writing radio image改成 hahaha
在刷機時處理到下面這一段時就會改顯示hahaha給你看

package_extract_file("emmc_appsboot.mbn", "/dev/block/platform/msm_sdcc.1/by-name/aboot");
package_extract_file("NON-HLOS.bin", "/dev/block/platform/msm_sdcc.1/by-name/modem");
package_extract_file("sdi.mbn", "/dev/block/platform/msm_sdcc.1/by-name/dbi");
package_extract_file("tz.mbn", "/dev/block/platform/msm_sdcc.1/by-name/tz");
package_extract_file("rpm.mbn", "/dev/block/platform/msm_sdcc.1/by-name/rpm");
package_extract_file("sbl1.mbn", "/dev/block/platform/msm_sdcc.1/by-name/sbl1");
這是nubia比較特別的地方,官方的rom裡面都包含了其它分區的映象檔
有一點htc rom的做法,在刷機的時候~boot.img等相關檔案也要跟著升級
如果不升級的話,像藍芽、wifi或網路就的出問題
fota升級的時候也會驗證這個部份,若版本不符也不會讓你透過fota升級
而要提取這些手機內部mbn映象檔的方法,我在其它文章有教學過~可自行參考

要提取rom必須先了解怎麼寫刷機腳本update-script
並把整個system資料夾從手機copy出來
(更快的方法是直接用recovery備份,再從備份的system.img壓出整個system資料夾再刪掉不必要的東西這樣最快)
設定一些meta相關的簽名檔跟刷機必須的update-binary
update-binary找不到沒關係~可以直接從官方包提取出來
像今天要改小米的rom,就下載小米的rom從裡面提取出binary檔
今天要改的是mtk的rom,就下載此品牌相關mtk產品的rom從裡面提取出binary檔
update-binary檔可以從相接近的晶片跟機型的rom下手~

上面大概就是製做rom跟提取rom的大致介紹
說起來真的比繁化系統還要麻煩多了

挖到寶 wrote:
繁化確實不容易......(恕刪)

carcardon wrote:
對啊~真的很煩~不過...(恕刪)


請問我手機拿到後~可以去找你跟你請教繁化嗎?

另外~新增繁中語系~跟直接繁體化的方式是不是不一樣?

繁體化之後~OTA或是官方更新是不是就失效~必須重新繁化呢?

感恩^^~
挖到寶~挖到你愛的寶^^
基本上按照C大前面的教學就可以繁化成功唷 ^^
官方已經有Z5S的卡刷包了,最簡單的方式就是下載卡刷包繁化,然後刷回去就成功了

OTA升級的部分,我就不清楚了~~ 可能要請教一下C大
個位網友說明一下,對於介紹那篇文章,本人只是去逛逛看到的,所以才留訊息,給需要的網友,本人也沒有能力去繁化!只是有中文(繁體)語系選項跟繁化不一樣,是又添加語系選項,據所知目前最夯的line安裝後才不會線顯示(連我).使用line打訊息對方才不會顯示簡體字,,若使用字形改成繁體字,,就自己手機顯示繁體,,,其實只要有關由這手機傳出去的訊息對方收到都是簡體字.若不懂得再請網友指教一下!



我有照你的文章作繁體化

我的手機是NUBIA Z5S

我去官方下V1.3刷機包


照你的式解編譯 .APK繁化後

最後將打包好的 resources.arsc 放到原本的下載的官方刷機包內去覆蓋

然後傳上手機去升級會失敗

請問有哪個地方做錯

我有先將framework-res.apk 這個單獨去做繁化後覆蓋到下載官包.丟到手機上去升級一樣不行?
只是繁化或者增減替換app的話,倒是還有別的辦法,比如用用adb獲取root后靠adb shell、adb push來替換文件,以前製作過某些無法解鎖BL機型的rom時,用過這個辦法來實現,只不過不是什麼文件都能隨便換,但某些機型也曾做過完整漢化,真正麻煩的還是改app這一步。

carcardon wrote:
可以呀~其實繁化不難...(恕刪)


想問一下,把system/app裡面所有的apk檔跟system/framework裡的apk都繁化後,

該怎麼打包成rom呢?不會是要一個一個用root explorer覆蓋吧?

可以教學一下嗎?感恩!
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!