Я почти уверен, что это можно сделать только на взломанных телефонах.
Поместите этот список запуска в / System / Library / LaunchDaemons.Он будет запускать скрипт всякий раз, когда изменяется база данных sms.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.billybob.SMSremote</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/script</string>
</array>
<key>Nice</key>
<integer>20</integer>
<key>WatchPaths</key>
<array>
<string>/private/var/mobile/Library/SMS/sms.db</string>
</array>
</dict>
</plist>
Для сценария я бы использовал что-то вроде следующего, чтобы определить, есть ли сообщение, содержащее строку:
sqlite3 /var/mobile/Library/SMS/sms.db "select 'String Found' from message where text like '&&XX&&' order by date desc limit 1"
для всего сценария, может быть,
case $( sqlite3 /var/mobile/Library/SMS/sms.db "select 'String Found' from message where text like '&&XX&&' order by date desc limit 1" ) in 'String Found') sqlite3 /var/mobile/Library/SMS/sms.db "delete * from message where text like '&&XX&&'" ; commandscript;;esac
В словах заказа, когда строка найдена, удалите все сообщения, содержащие строку, и выполните командный скрипт.
Конечно, вам нужен взломанный телефон и sqlite из cydia.Тот же процесс можно выполнить и в других базах данных.Я не уверен, как бы вы сделали это без сценария оболочки, но я уверен, что это возможно.Я еще не тестировал скрипт, поэтому вы можете сделать копию своего sms.db перед попыткой.