小编Kik*_*two的帖子

iOS App的Root权限

我正在开发一个针对越狱iOS设备的应用程序.它有助于自动执行某些任务.我需要在/ private/var/mobile/Library中创建一个简单的文本文件(实际上是.lua文件).显然,调试器会抛出访问被拒绝的异常.该应用程序现在被命名为"CreateFile",用于测试.

我尝试了以下步骤来获得root访问权限:

  1. 正常构建应用程序.
  2. 在应用程序包中创建可执行文件的副本.
  3. 打开原始可执行文件并使用以下脚本替换其内容:

    #!/bin/bash
    dir=$(dirname "$0")
    exec "${dir}"/CreateFile "$@"
    
    Run Code Online (Sandbox Code Playgroud)

    在iOS上直接启动根应用程序失败.因此,我们使用启动根可执行文件的脚本替换应用程序的主可执行文件.

  4. 在终端中,导航到应用包.

  5. chmod 0775原始可执行文件和chmod 6775复制的可执行文件.
  6. 将应用程序包复制到/ Applications到设备.重启SpringBoard,你应该好好去.如果应用程序未启动,请在设备上重复步骤5和6.

使用此方法,我可以成功将应用程序安装到/ Applications文件夹并启动它,但是我希望我仍然没有root权限,因为只要应用程序尝试写入操作,它就会崩溃.

如果有人能对这种情况有所了解,我将非常感激!

编辑:

在@creker的建议下做了一些额外的测试.当我尝试在应用程序的文档中创建允许目录中的文件时,它创建就好了,没有任何问题.因此,我确信文件创建不会导致崩溃,并且它只是无法访问的文件夹路径.

同样在@creker的建议下,我尝试将应用程序安装到/ Applications而没有任何启动脚本.应用程序以这种方式打开时崩溃.如果我在安装后将应用程序可执行文件chmod到775,则应用程序将打开但在尝试创建文件时仍会崩溃.

我查看了崩溃记者的系统日志.这是崩溃线:

System.UnauthorizedAccessException: Access to the path "/private/var/mobile/Library/test.txt" is denied
Run Code Online (Sandbox Code Playgroud)

仍然希望解决这个问题,欢迎任何想法!

root jailbreak ios

15
推荐指数
1
解决办法
1269
查看次数

查找两条 3D 线段之间的最短距离

我有两条线段,由其起点/终点处的 3D 点表示。

线:

class Line
{
    public string Name { get; set; }
    public Point3D Start { get; set; } = new Point3D();
    public Point3D End { get; set; } = new Point3D();
}
Run Code Online (Sandbox Code Playgroud)

3D 点只是坐标 X、Y 和 Z 的 3 个双精度数。

3D点:

class Point3D
{
    public double X { get; set; }
    public double Y { get; set; }
    public double Z { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题:

我可以找到两条“线”之间的距离以及该距离“线”的端点吗?[这是一张图片,可以更好地说明我想要实现的目标1

我拥有的:

目前,我可以使用此代码成功获取两条线之间的距离(改编自此处使用线段到线段部分):

    public double lineNearLine(Line l1, …
Run Code Online (Sandbox Code Playgroud)

.net c# geometry vector c#-4.0

5
推荐指数
1
解决办法
9430
查看次数

使用OpenCV解决非平面物点和图像点之间的变换

已添加问题以增加清晰度

我正在使用OpenCV来尝试校准激光扫描仪.

我有一组由扫描仪捕获的2d点.为了举例,我们让这些点表示如下:

IMAGE POINTS
{(0.08017784, -0.08993121, 0)}
{(-0.1127666, -0.08712908, 0)}
{(-0.1117229, 0.1782855, 0)}
{(0.09053531, 0.198439, 0)}
Run Code Online (Sandbox Code Playgroud)

我知道这些点对应于以下现实世界点:

OBJECT POINTS
{(0, 0, 0)}
{(190, 0, 0)}
{(190, 260, 0)}
{(0, 260, 122)}
Run Code Online (Sandbox Code Playgroud)

我一直在使用OpenCV来解决旋转和平移矩阵,它允许我给出一个世界点(例如100,200,20)并在捕获的坐标系中返回2d点.

到目前为止,我的结果表明,如果物点是共面的,那么OpenCV几乎可以完美地找到旋转/平移结果.

但是,在我上面给出的例子中,并非所有点都在同一个平面上的问题,我得到的答案非常错误.

我知道这是可能的(不一定是openCV)因为我有另一个可以做到这一点的商业软件.作为参考,上述问题的解决方案是矩阵:

SOLUTION
[-0.99668, 0.03056, 0.07543]
[ 0.05860, 0.91263, 0.40454]
[-0.05647, 0.40762,-0.91140]
[79.34385, -89.63855,-982.25938]
Run Code Online (Sandbox Code Playgroud)

我使用均方根误差来确定结果的有效性.我提供的解决方案的均方根误差是1.61560.虽然OpenCV的结果超过了1000.

问题:

使用给定的图像点和对象点如何使用OpenCV(或其他方法)来获得解决方案.

我已经尝试过的:

我从OpenCV尝试过基本的SolvePNP,如下所示:

Cv2.SolvePnP(objectPoints, imagePoints, camMatrix, dist, out double[] rvec, out double[] tvec, false, SolvePnPFlags.Iterative);
Run Code Online (Sandbox Code Playgroud)

有关SolvePNP的文档

如上所述,如果我的对象点都是平面的,则此解决方案有效.但是对于其他平面上的点,解决方案会崩溃并且非常错误.

提前致谢!

opencv computer-vision augmented-reality opencvsharp

5
推荐指数
1
解决办法
225
查看次数