• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - launchctl 在 iOS 应用程序中不起作用

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:34:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试从我的用于越狱手机的应用程序中停止并启动 com.apple.mobile.installd。我尝试了几乎所有可能的方式 NSTask、system()、shell 脚本,但它不起作用。有人可以帮帮我吗?

以下是我尝试过的代码示例。

-(IBAction)stopIntlid)sender
{
    NSString *command = [NSString stringWithFormat"/bin/launchctl stop com.apple.mobile.installd >> /Applications/loader.app/output.txt"];
    const char* new = [command UTF8String];
    system(new);
    NSLog(@"Stopping InstallD");
}

-(IBAction)startIntlid)sender
{
    NSString *command = [NSString stringWithFormat"/bin/launchctl start com.apple.mobile.installd >> /Applications/loader.app/output.txt"];
    const char* new = [command UTF8String];
    system(new);
    NSLog(@"Starting InstallD");
}

-(IBAction)reloadShellid)sender
{
    system("/bin/launchctl stop com.apple.mobile.installd");
    sleep(2);
    system("/bin/launchctl start com.apple.mobile.installd");

    NSLog(@"Reloading Shell");
}

-(IBAction)reloadShell1id)sender
{
    NSString *command = [NSString stringWithFormat"/usr/libexec/reload.sh >> /Applications/loader.app/output.txt"];
    system([command UTF8String]);
    NSLog(@"Reloading Shell1");
}

我的 reload.sh 它可以从终端运行..

#!/bin/sh

#  reload.sh
#
#  Copyright (c) 2014 Avanté Codeworx. All #rights reserved.

launchctl stop com.apple.mobile.installd
sleep 2
launchctl start com.apple.mobile.installd
exit

自从过去十天以来一直在敲我的头,还尝试了 Launch Daemon 它可以工作但继续运行.. 永远不会崩溃..

这是我的守护进程..

<?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>LaunchEvents</key>
    <dict>
        <key>com.apple.notifyd.matching</key>
        <dict>
            <key>com.loader.reload</key>
            <dict>
                <key>Notification</key>
                <string>com.loader.reload</string>
            </dict>
        </dict>
    </dict>
    <key>Label</key>
    <string>com.avante.loader</string>
    <key>UserName</key>
    <string>root</string>
    <key>KeepAlive</key>
    <false/>
    <key>rogram</key>
    <string>/usr/libexec/reload.sh</string>
</dict>
</plist>

请帮帮我!!



Best Answer-推荐答案


这是一些人的误解。

就因为你的手机越狱了,apps don't run with root privileges .

仅仅因为您的应用安装在 /Applications/ 中,它不会以 root 权限运行。

要使您的应用程序以 root 权限运行,see this answer .否则,它将以用户 mobile 身份运行。

launchctl 需要 root 权限才能正常运行。

附: 当然,您可以删除启动守护程序。正确的做法是授予您的应用 root 权限。

关于ios - launchctl 在 iOS 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21632449/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap