dpkg

安装Macports

下载对应系统的Macports
安装时间会比较久,安装完毕后放在了/opt/local/bin 目录下

安装dpkg

打开终端,输入 sudo port -f install dpkg
这个安装命令也会安装比较久,如果提示找不到port命令,给/opt/local/bin 以及 /opt/local/sbin 在 ~/.bash_profile 中配置一下环境变量。

PS:按照安装 theos的教程,生成的那个dpkg-deb。打包不了下面的要安装在/Application的应用。要用Macports来安装dpkg-deb。 原因我还没有深究

生成必要的目录

  • Applications
1
这个目录下放你要安装在/Application 目录下的App。比如  XXX.app (用开发appStore的流程开发的app)
  • DEBIAN
1
这个目录下放5个文件 control、postinst、postrm、preinst、prerm
  • Library/Application Support/ * 创建一些文件
1
这个文件下的文件,安装的时候会放入相应的目录

DEBIAN目录文件解释

  • control

工程配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Package: control.packagename
Name: control.packagename
Version: 1.0
Description:
Section:
Depends: firmware (>= 5.0), mobilesubstrate
Conflicts:
Replaces:
Priority: optional
Architecture: iphoneos-arm
Author: somebody
dev:
Homepage:
Depiction:
Maintainer:
Icon:
  • preinst

Debian软件包(“.deb”)解压前执行的脚本, 为正在被升级的包停止相关服务,直到升级或安装完成。
(成功后执行 ‘postinst’ 脚本)。

  • postinst

主要完成软件包(“.deb”)安装完成后所需的配置工作的脚本.
通常, postinst 脚本要求用户输入, 和/或警告用户如果接受默认值, 应该记得按要求返回重新配置这个软件。
一个软件包安装或升级完成后,postinst 脚本驱动命令, 启动或重起相应的服务。

例如给itunesstored、keychain执行权限

1
2
3
4
5
#!/bin/sh
chmod +s /Applications/downloadipa.app/itunesstored
chmod +s /Applications/testxxx.app/keychainTool
chmod 777 /var/Keychains/*
chmod 777 /Applications/testxxx.app/testxxx
  • prerm
    停止一个软件包的相关进程, 要卸载软件包的相关文件前执行的脚本。
  • postrm
    修改相关文件或连接, 和/或卸载软件包所创建的文件。
    当前的所有配置文件都可在 /var/lib/dpkg/info 目录下找到, 与 foo 软件包相关的命名以 “foo” 开头,以 “preinst”, “postinst”, 等为扩展。
    这个目录下的 foo.list 文件列出了软件包安装的所有文件。
    Debian里用apt-get安装或卸载软件时,会常发生前处理或后处理的错误,这时只要删除 对应的脚本文件,重新执行安装或卸载即可。

用dpkg-deb打包 .deb 并且安装

1
dpkg-deb -b ./ mydeb.deb

把 mydeb.deb拖进 iOS的根目录/ 。 执行 dpkg -i mydeb.deb即可安装。

安装完后运行su mobile -c uicache 刷新UI缓存

如果安装的过程中出现这个错误:

1
2
dpkg-deb: file `dazhong.deb' contains ununderstood data member data.tar.xz     , giving up
dpkg: error processing

打包deb的时候要用这个命令打包

1
dpkg-deb -Z gzip -b ./ mydeb.deb

提权

步骤

1、postinst文件配置:

1
2
chmod +s /Applications/aatext.app/aatext
chown root:wheel /Applications/aatext.app/aatext

2、准备一个bash脚本。添加到工程

1
2
3
C=/${0}
C=${C%/*}
exec "${C:-.}"/aatext

3、修复info.plist文件

1
Executable file 值设置为 bash

然后再按照上面说的dpkg-deb打包成deb,安装。就是一个具有root权限的app了

dpkg 打包root权限app的更多相关文章

  1. adb怎么判断是否有root权限,并更改system/app内容

    一.首先判断root权限: adb root 结果: C:\signapp>adb root restarting adbd as root # 说明有root权限 ,若是adbd cannot ...

  2. Android实现系统ROOT, 并能赋予app root权限

    1. 获取root权限 -->  修改adb源码     a. 打开 system/core/adb/adb_main.cpp,或者是 system/core/adb/daemon/main.c ...

  3. 取之有道——巧用Root权限 启动其他APP中的Activity

    这次博主来分享一个很巧妙的办法来启动其他APP中Activity的方法. 首先说一下这样做的目的:最近博主在攻克一个技术难点,就是搞定某些三方系统中,对于应用权限的限制.为此给出用户指导,引导用户启动 ...

  4. 对于app监测root权限或者强制升级

    只做分享学习 以下方法对于大多数Root检测的App (不限于仅银行类App),均适用. 另,"主用户 + Island用户" 情况下: 如果App仅安装在 Island下,当绕不 ...

  5. Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路

    Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...

  6. Linux基本常用命令|ubuntu获取root权限

    我用的是ubuntu12.4系统,因为默认是没有获取root的权限的 下边讲解怎么获取root权限 在终端中输入: sudo passwd root Enter new UNIX password: ...

  7. 转:Android随笔之——使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)

    本文转载自CSDN的jzj1993,原文连接:http://blog.csdn.net/jzj1993/article/details/39158865 有时我们需要使用安卓实现在后台模拟系统按键,比 ...

  8. android开发实现静默安装(root权限)

    方式是将应用设置为内置的系统应用,注意事system/app目录下面,采用copy2SystemApp()方法就可以,注意chmod 777的权限,若是直接将apk拷贝到system/app目录,没有 ...

  9. 取得root权限后怎么删除程序

    不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...

随机推荐

  1. 利用EFCore 封装Repository(可扩展不同数据的sql操作)

    本篇是对EFCore 进行下封装并实现基本的增删改查的同步异步方法及针对不同数据库的批量插入.sql语句直接操作数据库: 一. 先定义基础仓储接口IRepository public interfac ...

  2. JavaWeb学习笔记(六)—— Cookie&Session

    一.会话技术简介 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程 ...

  3. AC自动机例题

    P3808 [模板]AC自动机(简单版) [题目描述] 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. #include<bits/stdc++.h> using name ...

  4. HDU_2082 找单词 【母函数的应用】

    题目: 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26.那么,对于给定的字母,可以找到多少价值<=50 ...

  5. 小数据池 is 和 == ,以及再谈编码

    一.小数据池 1.id() 小数据池针对的是:int ,str,boo(都是不可变的数据类型) (1)如果是在py文件中写的字符串,几乎都是缓存的 (2)在黑窗口里写的机会都不会缓存 (3)不同的解释 ...

  6. 原生js操作类名

  7. linux安装PHP7以及扩展

    Linux下安装PHP7 事先升级gcc4.8,然后安装PHP7,安装步骤参考:CentOS安装PHP7 1.Linux下编译的php没有php.ini 解决办法:从源代码目录中复制php.ini-d ...

  8. Nginx 安装--图片服务器搭建

    1.  nginx 需要依赖以下模块: gzip模块需要 zlib 库 rewrite模块需要 pcre 库 ssl 功能需要openssl库 1.1.安装pcre 1.         获取pcre ...

  9. centos 7更新yum源与更新系统

    1.备份/etc/yum.repos.d/下的原有文件(假如你想保留原系统的yum源的话),举例 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...

  10. 论文阅读 | Polygon-RNN:Annotating Object Instances with a Polygon-RNN

    论文地址:https://arxiv.org/abs/1704.05548 项目地址:http://www.cs.toronto.edu/polyrnn 概述 Polygon-RNN是一篇收录于CVP ...