feat: fakesign

This commit is contained in:
zx
2024-09-06 10:11:45 -04:00
parent 1ad3ee67c4
commit de075a9691
5 changed files with 26 additions and 4 deletions

View File

@@ -18,11 +18,11 @@ easiest install ever, just `pip install -U git+https://github.com/asdfzxcvbn/pyz
[] refactor: dont prepare, just copy and fix as you go [] refactor: dont prepare, just copy and fix as you go
[1] feat: plist operations (-u, -n, -v, -b, -m, -d, -l, -r) [2] feat: plist operations (-n, -v, -b, -m, -l, -r)
[x] feat: remove watch app [x] feat: remove watch app
[] feat: fakesign [x] feat: fakesign
[] feat: thin binaries [] feat: thin binaries

View File

@@ -39,6 +39,10 @@ def main() -> None:
"-d", "--enable-documents", action="store_true", "-d", "--enable-documents", action="store_true",
help="enable documents support" help="enable documents support"
) )
parser.add_argument(
"-s", "--fakesign", action="store_true",
help="fakesign all binaries for use with appsync/trollstore"
)
parser.add_argument( parser.add_argument(
"-c", "--compress", metavar="level", type=int, default=6, "-c", "--compress", metavar="level", type=int, default=6,

View File

@@ -47,6 +47,8 @@ def main(parser: ArgumentParser) -> None:
app.remove_watch_apps() app.remove_watch_apps()
if args.enable_documents: if args.enable_documents:
app.plist.enable_documents() app.plist.enable_documents()
if args.fakesign:
app.fakesign_all()
# create subdirectories if necessary # create subdirectories if necessary
if "/" in args.o: if "/" in args.o:

View File

@@ -1,5 +1,6 @@
import os import os
import shutil import shutil
from glob import glob
from .executable import Executable from .executable import Executable
from .plist import Plist from .plist import Plist
@@ -37,3 +38,20 @@ class AppBundle:
else: else:
print("[?] watch app not present") print("[?] watch app not present")
def fakesign_all(self) -> None:
self.executable.fakesign()
count = 1
for ts in sum((
glob(f"{self.path}/**/*.appex", recursive=True),
glob(f"{self.path}/**/*.framework", recursive=True)
), []): # type: ignore
pl = Plist(f"{ts}/Info.plist")
Executable(f"{ts}/{pl['CFBundleExecutable']}").fakesign()
count += 1
for ts in glob(f"{self.path}/**/*.dylib", recursive=True):
Executable(ts).fakesign()
count += 1
print(f"[*] fakesigned \033[96m{count}\033[0m items")

View File

@@ -1,2 +0,0 @@
lief