gpt4 book ai didi

google-chrome-extension - 仅使用命令行界面在服务器上打包Chrome扩展程序

转载 作者:行者123 更新时间:2023-12-03 14:38:03 27 4
gpt4 key购买 nike

是否可以仅通过CLI(Ubuntu-server)在服务器上使用键(* .pem)打包chrome扩展名?

最佳答案

更新:Chrome现在使用版本3,而Google发布的脚本仅适用于版本2

https://developer.chrome.com/extensions/crx#scripts列出了第2版的官方打包脚本-Bash中的一个脚本和Ruby中的一个脚本。
Google现在希望将应用打包到网络商店中。

但是,以下是修改后的脚本,可用于打包CRX3软件包:

# Purpose: Pack a Chromium extension directory into crx format

if test $# -ne 2; then
echo "Usage: crxmake.sh <extension dir> <pem path>"
exit 1
fi

dir=$1
key=$2
name=$(basename "$dir")
crx="$name.crx"
pub="$name.pub"
sig="$name.sig"
zip="$name.zip"
tosign="$name.presig"
binary_crx_id="$name.crxid"
trap 'rm -f "$pub" "$sig" "$zip" "$tosign" "$binary_crx_id"' EXIT


# zip up the crx dir
cwd=$(pwd -P)
(cd "$dir" && zip -qr -9 -X "$cwd/$zip" .)


#extract crx id
openssl rsa -in "$key" -pubout -outform der | openssl dgst -sha256 -binary -out "$binary_crx_id"
truncate -s 16 "$binary_crx_id"

#generate file to sign
(
# echo "$crmagic_hex $version_hex $header_length $pub_len_hex $sig_len_hex"
printf "CRX3 SignedData"
echo "00 12 00 00 00 0A 10" | xxd -r -p
cat "$binary_crx_id" "$zip"
) > "$tosign"

# signature
openssl dgst -sha256 -binary -sign "$key" < "$tosign" > "$sig"

# public key
openssl rsa -pubout -outform DER < "$key" > "$pub" 2>/dev/null


crmagic_hex="43 72 32 34" # Cr24
version_hex="03 00 00 00" # 3
header_length="45 02 00 00"
header_chunk_1="12 AC 04 0A A6 02"
header_chunk_2="12 80 02"
header_chunk_3="82 F1 04 12 0A 10"
(
echo "$crmagic_hex $version_hex $header_length $header_chunk_1" | xxd -r -p
cat "$pub"
echo "$header_chunk_2" | xxd -r -p
cat "$sig"
echo "$header_chunk_3" | xxd -r -p
cat "$binary_crx_id" "$zip"
) > "$crx"
echo "Wrote $crx"

该脚本是根据源代码中的信息进行修订的:

Create Function
Header Description

以及 header 的 serialization documentation

此脚本可以轻松地在docker容器中用于自动化:
FROM alpine:3.9
RUN apk add --no-cache git openssl zip vim
COPY scripts/crxmake.sh /usr/local/bin/crxmake

关于google-chrome-extension - 仅使用命令行界面在服务器上打包Chrome扩展程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com