iOS Contacts CLI — это минималистичная утилита командной строки для управления контактами на устройствах с Jailbreak.
Она позволяет массово добавлять номера телефонов или полностью очищать адресную книгу одной командой через SSH или терминал на устройстве. Программа написана на Objective-C и использует приватные entitlements для обхода защиты TCC (запросов на доступ к контактам).
- Массовый импорт: Добавление списка номеров одной командой (аргументами).
- Полная очистка: Мгновенное удаление всех контактов из адресной книги.
- Обход TCC: Работает без всплывающих окон "Разрешить доступ к контактам" (благодаря
ent.xml). - Скорость: Использует нативный
Contacts.framework, обрабатывает 50+ контактов за доли секунды. - Без зависимостей: Не требует Python, Cycript или сторонних библиотек. Только скомпилированный бинарник.
- iOS Device с Jailbreak (протестировано на iOS 14, 15, 16 Rootless/Rootful).
- Установленные инструменты разработчика (для сборки):
clang(компилятор)ldid(илиldid-procursusдля подписи)make(опционально, для удобства)
Установка зависимостей (Sileo / Apt):
sudo apt update
sudo apt install clang ldid makeВ репозитории включен Makefile для автоматической компиляции и подписи.
- Скачайте файлы на устройство (или склонируйте репозиторий).
- Выполните команду:
make
- Готово! Бинарный файл
contactsсоздан и подписан.
Если нужно пересобрать: make rebuild
Используйте флаг -i и перечислите номера через пробел. Имена контактов генерируются автоматически (например, Bot User 1234).
./contacts -i +79001112233 +79004445566 +15550199Вывод:
Saving 3 contacts...
SUCCESS: Contacts imported.
Используйте флаг -d. Внимание: действие необратимо.
./contacts -dВывод:
Found 52 contacts. Deleting...
SUCCESS: All contacts deleted.
Пример добавления диапазона номеров через цикл:
#!/bin/bash
# Генерация строки аргументов
NUMBERS=""
for i in {10..50}; do
NUMBERS="$NUMBERS +799900000$i"
done
# Массовый импорт
./contacts -i $NUMBERSError: Communication Error (Code 500)
- Причина: У бинарника нет прав доступа к демону контактов.
- Решение: Убедитесь, что файл
ent.xmlнаходится в папке при сборке. Если вы перемещали бинарник, переподпишите его:Иногда помогает сброс прав TCC:ldid -Sent.xml contacts
tccutil reset AddressBook.
zsh: killed (Killed: 9)
- Причина: Бинарник не подписан или подпись невалидна для вашей версии iOS.
- Решение: Установите
ldid(илиldid-procursus) и выполнитеmake.
contacts.m— Исходный код (Objective-C).ent.xml— Файл прав (Entitlements) для доступа кkTCCServiceAddressBook.Makefile— Скрипт сборки.
Используйте на свой страх и риск. Автор не несет ответственности за потерянные данные адресной книги. Делайте бэкапы!