首页 ROM

extract-files和setup-makefiles算是比较重要的脚本,爱来自LineageOS,对于很多入坑的小可爱们并不知道它是干啥的,所以本章讲述它的重要性,和为什么需要它。

功能介绍

extracr-files适用于依据blobs list来提取blobs然后运行setup-makefiles来生成makefile复制blobs,这样可以节约维护者大量手动复制blobs和写makefiles的痛苦。
同时它也支持了复制部分blobs的功能,例如cne有问题需要升级,我们就可以使用这个功能。
同时还支持pin blobs,一旦这个blobs并没有必要更新,就可以选择pin sha1来解决
setup-makefiles,就没啥好说的了,只是帮助生成makefiles而已

使用方法

首先通过脚本代码了解功能

# 这是一个common tree下的extract-files的功能
while [ "${#}" -gt 0 ]; do
    case "${1}" in
        --only-common )
                ONLY_COMMON=true
                ;;
        --only-target )
                ONLY_TARGET=true
                ;;
        -n | --no-cleanup )
                CLEAN_VENDOR=false
                ;;
        -k | --kang )
                KANG="--kang"
                ;;
        -s | --section )
                SECTION="${2}"; shift
                CLEAN_VENDOR=false
                ;;
         * )
                SRC="${1}"
                ;;
    esac
    shift
done

--only-common意思很简单,就是只拉取并生成common供应商树
--only-target也很简单,就是只拉取并生成target的供应商树,target不理解的话,可以举个例子,例如你的设备树是tama,加了这个就是获取tama的供应商树
-n | --no-cleanup不清理供应商树,这个也很好理解
-k | --kang指显示获取的blobs的sha1,这里的kang并不是指偷窃代码,这种应用场景很多,例如你要升级CNE的blobs又想pin,就可以用它
-s | --section是用于选择你需要获取的blobs,场景使用大多数和-k一样
ADB提取,因为繁琐暂时不提他

使用的时候需要解包好的ROM,用于提取blobs
例如我们要生成一个vendor tree就需要

bash extract-files.sh #解包好的ROM目录

然后就可以获得一个vendor tree

如果我们需要取一部分blobs,那么只需这样

 bash extract-files.sh #解包好的ROM目录 -s "你需要提取的项目"

注意:你必须需要为blobs list进行分类,不然等同虚设

要显示sha1也很简单,只需要加-k就可以了

修补blobs

blobs并不是一直都会正常工作的,肯定会随着一次次更新,而不再可用,这我们extract-files脚本也就派上用场了
打个比方,例如我们的lib-sakurailh.so提示缺blobs了,正好这个blobs因为新改动改变了,从libgirl.so改成libboy.so了,这时候extract-files就派上用场了,根据修复,我们需要使用patchelf对libgirl.so更改为libboy.so,这时候我们需要在extract-files.sh进行添加blob_fixup,代码如下

function blob_fixup() {
    case "${1}" in
    lib-sakurailh.so)
        "${PATCHELF}" --replace-needed "libgirl.so" "libboy.so" "${2}"
        ;;
    esac
}

重新获取之后脚本会给lib-sakurailh打patch并且按照我们写的修复他

最后

任何东西存在即意义,他们虽然渺小,但是总有一些领域会发出光芒,不应该因为某些人一些不擅长的领域而否定他人,更不能因为自己在某些不擅长领域很弱而否定自己,每个人都会成为闪光点,相信自己,不断加油。

这应该是我第一次写关于ROM设备树各项分析,我将会把他们拆分成几大章,然后进行简单分析,同时用一些彩蛋或者幽默的语言显得不这么枯燥。



文章评论

    青益 访客ChromeWindows
    2022-10-22 11:11   回复

    好耶

    小白Official 访客ChromeAndroid
    2022-10-13 21:39   回复

    受教了,谢谢。这些知识对我们这些刚入门的小白非常有用,我一直以为blobs要手动复制的🤣...(◍•ᴗ•◍)❤

目录