解压后的文件:


├─META-INF
│  │  CERT.RSA
│  │  CERT.SF
│  │  MANIFEST.MF
│  │
│  └─com
│      ├─android
│      │      otacert
│      │
│      └─google
│          └─android
│                  update-binary
│                  updater-script

├─system
│  ├─etc
│  │      audio_effects.conf
│  │
│  ├─lib
│  │  └─soundfx
│  │          libv4a_fx_ics.so
│  │
│  ├─priv-app
│  │  └─Viper4Android
│  │          ViPERFX.apk
│  │
│  ├─su.d
│  │      permissive.sh
│  │
│  └─vendor
│      └─etc
│              audio_effects.conf

└─tmp
        misc
        vipertweaks.sh

META-INF\com\google\android\updater-script的代码:

功能:安装程序并执行脚本\tmp\vipertweaks.sh

#RECOVERY交互性提示
ui_print("---------------------------------"); #在控制台显示的信息
ui_print("蝰蛇音效-ViPERFX");
ui_print("ViPERFX 2.5.0.5");
ui_print("For Android6.0");
ui_print("----By想飞的小伙(jsjson)");
ui_print("诈尸更新蝰蛇音效!");
ui_print("----2016.09.01 21:14 update");
ui_print("---------------------------------");
#执行程序
#挂载文件夹
run_program(
"/sbin/busybox",
"mount",
"/system"
);
#运行/sbin/busybox mount /system 挂载/system文件夹 ui_print("删除旧文件以及一些默认音效管理器,并替换成为蝰蛇...");
ui_print("Delete default sound Manager...");
#删除文件原有的音效管理器
delete_recursive(
"/system/app/AudioFX",
"/system/app/DSPManager",
"/system/app/Viper4Android",
"/system/app/MaxxAudioFX",
"/system/app/MusicFX",
"/system/app/MaxxAudio",
"/system/app/Material_V4A"
);
#删除的文件或文件夹,
删除文件
"/system/app/AudioFX",
"/system/app/DSPManager",
"/system/app/Viper4Android",
"/system/app/MaxxAudioFX",
"/system/app/MusicFX",
"/system/app/MaxxAudio",
"/system/app/Material_V4A"delete_recursive(
"/system/priv-app/AudioFX",
"/system/priv-app/DSPManager",
"/system/priv-app/Viper4Android",
"/system/priv-app/MaxxAudioFX",
"/system/priv-app/MusicFX",
"/system/priv-app/MaxxAudio",
"/system/priv-app/Material_V4A"
);
#开始安装
ui_print("starting...");
ui_print("安装蝰蛇开始...");
ui_print("---------------------------------");show_progress(1, 15); #下面的操作可能进行15秒钟完成,完成后进度前进1(100%)package_extract_dir(
"system",
"/system"
);
#释放ROM包里system文件夹下所有文件和子文件夹至/systemshow_progress(1, 15); #下面的操作可能进行15秒钟完成,完成后进度前进1(100%)ui_print("安装中...");
#赋予权限
set_metadata_recursive(
"/system/priv-app",
"uid", 0,  #ROOT用户
"gid", 0,  #任何组
"dmode", 0755, #赋予755权限
"fmode", 0644, #赋予644权限
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);#递归地设置给定的目录dirname机器所有子目录,对应key的值
set_metadata_recursive(
"/system/su.d",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0755,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);
set_metadata_recursive(
"/system/lib",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0644,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);
set_metadata_recursive(
"/system/lib/soundfx",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0644,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);
set_metadata_recursive(
"/system/vendor/pittpatt",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0644,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);
set_metadata_recursive(
"/system/vendor/etc",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0644,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);set_metadata_recursive(
"/system/vendor/pittpatt",
"uid", 0,
"gid", 0,
"dmode", 0755,
"fmode", 0755,
"capabilities", 0x0,
"selabel",
"u:object_r:system_file:s0"
);
#解压tmp
package_extract_dir("tmp", "/tmp");set_perm(
0,
0,
0777,
"/tmp/vipertweaks.sh"
);
#set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
(设置手机system中的etc/init.goldfish.sh的
用户为root,
用户组为shell,
所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限ui_print("");
#运行vipertweaks.sh
run_program("/tmp/vipertweaks.sh", "vipertweak");ui_print("");
ui_print("继续安装中...");
ui_print("");
run_program("/sbin/busybox", "umount", "/system");
ui_print("安装完成!");
ui_print("----------Enjoy!--------");
ui_print("只为单纯的蝰蛇音效!");
ui_print("享受极致音效吧!");
ui_print("Done!");

安装完后执行\tmp\vipertweaks.sh:
功能:修改build.prop文件中的参数

#!/sbin/shbp="/system/build.prop" #设置变量为系统下的/system/build.prop的字符串busybox mount /system #挂在/system
busybox mount /data #挂在/dataif [ -f /system/build.prop.bak ];  #当/system/build.prop.bak文件存在并且是正规文件时返回真thenrm -rf $bp #删除变量$bpcp $bp.bak $bp #将/system/build.prop.bak的“.bak”去掉elsecp $bp $bp.bak #若为假,则将/system/build.prop后的加上“.bak”
fi#将misc文件中的字符串加入到build.prop中echo " " >> $bp #向/system/build.prop后加空格
echo "# ViPER4Android Build.prop Tweaks" >> $bp #向/system/build.prop后加# ViPER4Android Build.prop Tweaks
echo " " >> $bp #向/system/build.prop后加空格for mod in misc; #当变量mod中的值符合misc文件中的值时执行dofor prop in `cat /tmp/$mod`;doexport newprop=$(echo ${prop} | cut -d '=' -f1) #以'=' 为分隔符,取第一个字段sed -i "/${newprop}/d" /system/build.propecho $prop >> /system/build.propdone
done#misc文件中的值
#lpa.decode=false
#lpa.releaselock=false
#lpa.use-stagefright=false
#tunnel.decode=false

\system\su.d\permissive.sh代码:

功能:设置Selinux成permissive,解决蝰蛇音效不能用的问题

su #获取ROOT
mount -o remount,rw /system #重新挂在/system为rw读写
mkdir -p /system/su.d #建立目录su.d,“-p”若所要建立目录的上层目录目system前尚未建立,则会一并建立上层目录
echo "#!/system/bin/sh" > /system/su.d/permissive.sh #直接清空原来的内容,填入新内容"#!/system/bin/sh"
echo "setenforce 0" > /system/su.d/permissive.sh #填入内容 setenforce 0
echo "0" > /sys/fs/selinux/enforce  #执行 enforce 0
chmod 755 /system/su.d/permissive.sh #设置755权限

其它的就是蝰蛇APK包和它所需的文件

某个蝰蛇音效的卡刷包代码分析相关推荐

  1. 【教程】用安卓厨房制作你自己的卡刷包!你也可以是Romer !

    ROM定制工具--dsixda's Android Kitchen是由xda-developers论坛的一位来自加拿大的大神做出来的.这是一个定制rom的神器!! 在这里向作者表示崇高的敬意--原帖地 ...

  2. 解决99%的卡刷包无法通过ROM制作工具修改的问题

    有部分朋友在制作ROM过程中遇到了 解包失败.解包出来的文件为空或直接不识别ROM等等情况,很多人以为是ROM制作工具的问题,其实不是,这些问题可以归纳为一种问题,那就是ROM卡刷包命名不规范导致的. ...

  3. Android8+厨房,【教程】用安卓厨房制作你自己的卡刷包!你也可以是Romer !

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 4.然后是美化 不喜欢或者不懂美化的同学可以绕过这一步了.这一步骤是毕竟比较难的,整个制作过程中涉及到手动反编译的就在这里. 美化主要是弄以下方面,修改s ...

  4. Compare线刷包与卡刷包

    Android系统分为卡刷包和线刷包 小米11线刷包 从该版本的boot.img中抽取出的内容如下图 小米11卡刷包 从该版本的boot.img中可以提取的内容是 也就是说,想要做配置文件抽取需要用线 ...

  5. 当前版本与卡刷包android_手机端提取Android 8.x及以上版本卡刷包中的system文件

    本教程全在手机端进行,仅适用于Android平台,当然部分步骤在电脑端也能够操作. 请务必尽可能的让手机空有足够的空间 你需要,Termux或者魔改版的Termux(UTermux)两者均可,以及解压 ...

  6. 【转】adb sideload 刷机模式. 一种用USB线,刷卡刷包的方法.

      我前段时间刷Android机失败了,不忍眼睁睁变成砖头,终于找到了砖头起死回生的办法...... 感觉挺有用的,分享一下. ------------------------------------ ...

  7. 华为nova3e能升级鸿蒙系统吗,华为NOVA3E怎样刷机?华为NOVA3E卡刷包分享以及卡刷教程详解...

    华为NOVA3E手机怎样刷机?哪里有华为NOVA3E的卡刷包?最近,在网上看到不少人问这样的问题,华为NOVA3E是一款新出来的进行,现在市面上能用的卡刷包并不多,不过,今天刷机帮小编就来和大家分享一 ...

  8. android 游玩南昌 模块,模块玩起来:Android 7.X可用的Xposed框架卡刷包放出

    感谢IT之家网友ZeroSimple的线索投递 7月20日消息 自适用于Android 7.X的Xposed框架现身Github以来,ROM开发者以及喜欢折腾的安卓玩家纷纷尝试编译和使用,毕竟Andr ...

  9. 安卓小白如何制作一个精简ROOT的卡刷ROM?小白制作ROM包详细图文教程

    安卓小白如何使用最短的时间制作一个精简ROOT的卡刷ROM? 小白用户如何便捷的制作一款属于自己的刷机包? 小白制作刷机包时具体需要什么样的操作步骤? 接下来和大家分享一下小白制作ROM包详细图文教程 ...

  10. android更改卡刷代码,[备忘]Android线刷包转卡刷包制作过程

    第一步:安装JDK,下载制作工具 下载jdk并安装: 下载:simg2img_win.rar.Auto-sign.rar及官方的线刷ROM,META-INF.rar. JDK的安装和环境变量配置请自行 ...

最新文章

  1. 如何快速写一个违背双亲委托机制的classloader
  2. 高并发:RocketMQ 削峰实战!
  3. 入门单片机选择51还是stm32?入门单片机有哪些好的教学视频?
  4. 2019cvpr oral | 实时自适应立体匹配
  5. AI视觉组仙人一步之高级玩法——从Python回归C语言
  6. Ubuntu nfs配置
  7. DPM 2010(三)---Exchange2010单邮箱恢复
  8. Mysql练习_mysql练习题
  9. 3. 中间件安全基础(三)
  10. [MVC.NET] Asp.Net MVC3 简单入门第一季
  11. tensorflow里面函数记录
  12. opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
  13. sql 按照天环比_SQL 求同比 环比
  14. 常用位操作以及相关原理
  15. 日语口语中需要注意的问题~ 不定期更新
  16. 关于树莓派屏幕显示不全的问题
  17. 编译优化之 - 通用循环优化
  18. Google 新系统 Fuchsia 概览和浅析
  19. vim的配置(c语言)
  20. DDS格式介绍及相关工具

热门文章

  1. java毕业设计便利店库存管理Mybatis+系统+数据库+调试部署
  2. IIS6、IIS7和IIS8各版本的差别
  3. 86年版五笔和98年版五笔区别
  4. 软件测试(十二)—— 界面测试和易用性测试
  5. setImageResource导致的ANR
  6. 正确姿势使用TraceView工具
  7. pycharm导出依赖包_使用pycharm导出虚拟环境依赖包
  8. 【每日更新 question answers】一个 正经的前端学习
  9. 舆情监控系统python开源_开源舆情监控系统
  10. jquery.uploadify php,jquery组件Uploadify的使用