菜鸟教程小白 发表于 2022-12-12 18:34:39

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


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

<p>以下是我尝试过的代码示例。</p>

<pre><code>-(IBAction)stopIntl:(id)sender
{
    NSString *command = ;
    const char* new = ;
    system(new);
    NSLog(@&#34;Stopping InstallD&#34;);
}

-(IBAction)startIntl:(id)sender
{
    NSString *command = ;
    const char* new = ;
    system(new);
    NSLog(@&#34;Starting InstallD&#34;);
}

-(IBAction)reloadShell:(id)sender
{
    system(&#34;/bin/launchctl stop com.apple.mobile.installd&#34;);
    sleep(2);
    system(&#34;/bin/launchctl start com.apple.mobile.installd&#34;);

    NSLog(@&#34;Reloading Shell&#34;);
}

-(IBAction)reloadShell1:(id)sender
{
    NSString *command = ;
    system();
    NSLog(@&#34;Reloading Shell1&#34;);
}
</code></pre>

<p>我的 reload.sh 它可以从终端运行..</p>

<pre><code>#!/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
</code></pre>

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

<p>这是我的守护进程..</p>

<pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;
&lt;!DOCTYPE plist PUBLIC &#34;-//Apple//DTD PLIST 1.0//EN&#34; &#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;&gt;
&lt;plist version=&#34;1.0&#34;&gt;
&lt;dict&gt;
    &lt;key&gt;LaunchEvents&lt;/key&gt;
    &lt;dict&gt;
      &lt;key&gt;com.apple.notifyd.matching&lt;/key&gt;
      &lt;dict&gt;
            &lt;key&gt;com.loader.reload&lt;/key&gt;
            &lt;dict&gt;
                &lt;key&gt;Notification&lt;/key&gt;
                &lt;string&gt;com.loader.reload&lt;/string&gt;
            &lt;/dict&gt;
      &lt;/dict&gt;
    &lt;/dict&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;com.avante.loader&lt;/string&gt;
    &lt;key&gt;UserName&lt;/key&gt;
    &lt;string&gt;root&lt;/string&gt;
    &lt;key&gt;KeepAlive&lt;/key&gt;
    &lt;false/&gt;
    &lt;key&gt;Program&lt;/key&gt;
    &lt;string&gt;/usr/libexec/reload.sh&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;
</code></pre>

<p>请帮帮我!!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是一些人的误解。</p>

<p>就因为你的手机越狱了,<a href="https://stackoverflow.com/a/15970080/119114" rel="noreferrer noopener nofollow">apps don&#39;t run with root privileges</a> .</p>

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

<p>要使您的应用程序以 <code>root</code> 权限运行,<a href="https://stackoverflow.com/a/8796556/119114" rel="noreferrer noopener nofollow">see this answer</a> .否则,它将以用户 <code>mobile</code> 身份运行。</p>

<p><code>launchctl</code> 需要 <code>root</code> 权限才能正常运行。</p>

<p>附: <em>当然,您可以删除启动守护程序。正确的做法是授予您的应用 root 权限。</em></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - launchctl 在 iOS 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21632449/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21632449/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - launchctl 在 iOS 应用程序中不起作用