forked from passengerKing/Github-Action-SHSH2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 0658ab2
Showing
3 changed files
with
192 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
name: Auto Save SHSH2 | ||
permissions: write-all # Allow Release 允许发布 release | ||
env: | ||
## --- required | ||
MODEL: iPhone8,1 # specify device by its model (eg. iPhone8,1) | ||
ECID: ab46efcbf71 # must be either DEC or HEX | ||
## --- choosing one of these three below and comment others | ||
LATEST: true # if set true, FIRMWARE_VERSION and FIRMWARE_BUILD_ID will become invalid | ||
FIRMWARE_VERSION: 15.7 # specify firmware version | ||
# FIRMWARE_BUILD_ID: 19H12 # if set this, FIRMWARE_VERSION will become invalid | ||
## --- | ||
NO_BOARDBAND: false # Request tickets without baseband. If set true, BOARDBAND will become invalid | ||
BOARDBAND: n71ap # recommend set this for iPhone | ||
## --- | ||
GEN: "0x1111111111111111" # manually specify generator in format 0x%%16llx | ||
APNONCE: "" # required for saving blobs for A12/S4 and newer devices with generator | ||
## --- Enable the following options to use beta firmware | ||
BETA: false | ||
## --- Logging | ||
LOG_REQ: false # print the TSS request that will be sent to Apple | ||
LOG_RSP: false # print the TSS response that comes from Apple | ||
|
||
|
||
on: | ||
push: | ||
branches: | ||
- 'master' | ||
schedule: | ||
- cron: '20 5 * * 1' # Runs at 05:20 UTC on Mon. | ||
workflow_dispatch: | ||
inputs: | ||
args: | ||
description: 'Manual Arguments(Will use args here instead of using env. Use `--ecid` instead of `-e` if you get some error. Do not set `-s` and `--save-path`!)\n\n本程序免费开源,如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!' | ||
required: true | ||
default: "-d iPhone6,2 -B n53ap --ecid 6F40A4CD908 -l" | ||
|
||
jobs: | ||
save_shsh2: | ||
runs-on: windows-2022 | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: prepare (auto) | ||
if: github.event.inputs == 0 | ||
shell: bash | ||
run: | | ||
echo "Auto mode.\n本程序免费开源,如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!" | ||
tss_arg="" | ||
if [ -z "${{ env.MODEL }}" ] || [ -z "${{ env.ECID }}" ]; then | ||
echo "::error env.MODEL and env.ECID can't be NULL" | ||
exit 1 | ||
fi | ||
if [ -z "${{ env.APNONCE }}" ]; then | ||
echo "::warning env.APNONCE is NULL, If you are using A12/S4 and newer, the blobs may not use. Read more: https://github.com/1Conan/tsschecker#nonce-entangling-apple-a12s4-and-newer" | ||
fi | ||
if [ -n "${{ env.MODEL }}" ]; then | ||
tss_arg=$tss_arg" -d "${{ env.MODEL }} | ||
fi | ||
if [ -n "${{ env.ECID }}" ]; then | ||
tss_arg=$tss_arg" --ecid "${{ env.ECID }} | ||
fi | ||
if [ "${{ env.LATEST }}" = "true" ] | ||
then | ||
tss_arg=$tss_arg" -l " | ||
elif [ -n "${{ env.FIRMWARE_BUILD_ID }}" ] | ||
then | ||
tss_arg=$tss_arg" -Z "${{ env.FIRMWARE_BUILD_ID }} | ||
else | ||
tss_arg=$tss_arg" -i "${{ env.FIRMWARE_VERSION }} | ||
fi | ||
if [ "${{ env.NO_BOARDBAND }}" = "true" ]; then | ||
tss_arg=$tss_arg" -b " | ||
else | ||
tss_arg=$tss_arg" -B "${{ env.BOARDBAND }} | ||
fi | ||
if [ -n "${{ env.GEN }}" ]; then | ||
tss_arg=$tss_arg" --generator "${{ env.GEN }} | ||
fi | ||
if [ -n "${{ env.APNONCE }}" ]; then | ||
tss_arg=$tss_arg" --apnonce "${{ env.APNONCE }} | ||
fi | ||
if [ "${{ env.BETA }}" = "true" ]; then | ||
tss_arg=$tss_arg" --ota --beta " | ||
fi | ||
if [ "${{ env.LOG_REQ }}" = "true" ]; then | ||
tss_arg=$tss_arg" --print-tss-request " | ||
fi | ||
if [ "${{ env.LOG_RSP }}" = "true" ]; then | ||
tss_arg=$tss_arg" --print-tss-response " | ||
fi | ||
tss_arg=$tss_arg" -s --save-path .\\blobs " | ||
echo tssArg="$tss_arg" >> $GITHUB_ENV | ||
- name: prepare (manually) | ||
if: github.event.inputs | ||
shell: bash | ||
run: | | ||
echo "Manually run.\n本程序免费开源,如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!" | ||
echo ECID=`echo "${{ github.event.inputs.args }}" | awk -F '--ecid' '{print $2}' | awk '{print $1}'` >> $GITHUB_ENV | ||
echo tssArg="${{ github.event.inputs.args }} -s --save-path .\\blobs" >> $GITHUB_ENV | ||
- name: run tsschecker | ||
shell: pwsh | ||
run: | | ||
if(!(Test-Path "blobs")) { mkdir "blobs" } | ||
echo ${{ env.tssArg }} "\n本程序免费开源,如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!" | ||
.\\tsschecker378.exe ${{ env.tssArg }} | ||
- name: get info | ||
id: shsh2-info | ||
shell: bash | ||
run: | | ||
output=`ls blobs` | ||
if [ -z $output ]; then | ||
echo "blobs folder is empty!" | ||
exit 1 | ||
fi | ||
firmware=`echo ${output} | awk -F '_' '{print $4}'` | ||
echo firmware="${firmware}" >> $GITHUB_OUTPUT | ||
echo nonce=`echo ${output} | awk -F '_' '{print $5}' | awk -F '.' '{print $1}'` >> $GITHUB_OUTPUT | ||
echo model=`echo ${output} | awk -F '_' '{print $2}'` >> $GITHUB_OUTPUT | ||
echo tagName="${firmware}" >> $GITHUB_OUTPUT | ||
mv "./blobs/"$output "./blobs/"`date +"%Y-%m-%d"`"_"$output | ||
echo artifactName=$output >> $GITHUB_OUTPUT | ||
- uses: actions/upload-artifact@v2 | ||
with: | ||
name: steps.shsh2-info.outputs.artifactName | ||
path: blobs/* | ||
|
||
- name: Release | ||
uses: softprops/action-gh-release@v1 | ||
if: ${{ success() }} | ||
with: | ||
tag_name: ${{ steps.shsh2-info.outputs.tagName }} | ||
body: >- | ||
${{ format(fromJSON('"ecid: {0}\nmodel: {1}\nfirmware: {2}\nnonce: {3}\n\n\n本程序免费[开源](https://github.com/tom-snow/autosave_SHSH2),如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!"'), | ||
env.ECID, | ||
steps.shsh2-info.outputs.model, | ||
steps.shsh2-info.outputs.firmware, | ||
steps.shsh2-info.outputs.nonce | ||
) }} | ||
files: blobs/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# autosave_SHSH2 | ||
使用 Actions 自动保存 shsh2. ([English Readme](#english-readme)) | ||
|
||
## 使用说明 | ||
1. 点击右上角的 `Use this template` 以本仓库作为模版创建仓库(建议设为私有仓库). | ||
2. 开启仓库的 actions 功能 | ||
3. 修改 [save_shsh2.yml](./.github/workflows/save_shsh2.yml) 文件中的各种变量 | ||
4. 享受自动运行的快乐。 | ||
|
||
|
||
**本程序免费[开源](https://github.com/tom-snow/autosave_SHSH2),如果你从其他人那付费获得了 Github Action 自动保存 shsh2 的程序,那么恭喜你被骗了!** | ||
|
||
PS: 当前不会检查历史提交的 Release,也就是说会同一个设备&版本号&G值会有多个 shsh2 文件(文件名不同),文件内容应该完全相同的,不会影响使用。当前不打算修复,可能以后也不会去修复。 | ||
|
||
## 参数设置 | ||
注意:对于 A12/S4 及以上设备,你必须设置 `APNONCE` + `GEN` 变量,否则生成的 shsh2 将不可用。你可以在电脑通过数据线连接到你的苹果设备,然后打开 [blobsaver](https://github.com/airsquared/blobsaver/releases),点击 `Specify APNonce` 下的 `Read from device` 来固定与获取 `APNONCE` + `GEN` 变量。 | ||
|
||
其他参考: [tsschecker 帮助](https://github.com/1Conan/tsschecker#help) | ||
|
||
<br><br><br><br><br><br> | ||
|
||
# English Readme | ||
Using actions save shsh2 automatically. | ||
|
||
## Usage | ||
1. Click `Use this template` to create a Repo for you (recommend private repo) | ||
2. Enable actions | ||
3. Modify [save_shsh2.yml](./.github/workflows/save_shsh2.yml) (The env block above) | ||
4. Enjoy! | ||
|
||
## ENVS | ||
Note: For Apple A12/S4 and newer device, you should set `APNONCE` + `GEN` variable. You can get it from [blobsaver](https://github.com/airsquared/blobsaver/releases). | ||
|
||
Other env: [tsschecker help](https://github.com/1Conan/tsschecker#help) |
Binary file not shown.