开机动画、反编译、Android 中执行命令

本文深入探讨了Android设备的开机动画原理,从反编译Bootanimation.zip文件开始,详细解释了其内容结构和播放流程。同时,介绍了如何在Android系统中通过命令行执行各种操作,包括安装应用、查看设备信息等,为开发者提供实用的调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1》开机动画 
80% 手机的开机动画都存放在 /system/media/bootanimation.zip文件中,在/system/bin 目录下有个bootanimation 文件,bin目录下的是可执行文件,可以直接执行# ./bootanimation 就能在手机上看到开机动画了。
1) 替换开机动画
① 取出动画文件 ---  #adb pull  /system/media/bootanimation.zip   E:\media
然后解压,可以看到里面的文:part0、part1、desc.txt.
涨姿势:开机动画其实有3屏,第一屏是厂商的商标,第二屏就是part0 中的内容,第三屏是part1.
  显示的策略在 desc.txt 中描述 ----  480  480  12   p  1  0  part0    p  0  0  part1
意思是:开机动画图片分辨率为480*480,以每秒12张的帧率显示;
p 1(代表着播放一次)0(空指令)part0  */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p 0(重复播放)0(空指令)part1*/这一句指令代表着part1文件夹内的图片会循环反复播放
还有一种是指令不常用,我也来解释一下吧
p 0 10 part1  这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,再停顿少许,再播放,再停顿稍许·········重复下去
② 把想要的图片存放到part0 和 part1 文件夹下,用RAR压缩,压缩格式是.zip 存储方式
   
③ 替换掉原来的开机动画
> adb push  E:\media\bootanimation.zip    /data/local/tmp
cat /data/local/tmp/bootanimation.zip  >  /system/media/bootanimation.zip
就可以了。
操作设备文件系统上的文件结果遇到"... Read-only file system"。
解决办法:
1. 最简单的,adb remount
2. 不行的话,adb shell su之后将文件系统remount为读写权限: mount -o remount rw /system。出于安全考虑,记得完事后remount回只读: mount -o ro,remount /system
3. 和方法2类似,mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system

2》 字体更换  -----  替换/system/media/bootanimation.zip
> adb push E:\xxx\DroidSansFallback.ttf  /data/local/tmp/11.ttf
> adb shell
# cat  /data/local/tmp/11.ttf  >  /system/media/bootanimation.zip
# md5  ./bootanimation.zip    可以看到 md5 值和E盘中字体文件的是相同的,重启字体就会改变

3》.截屏  --- screen sdk_version  filepath 
用到一个工具 --  camera_shot.agg  别人写的一个linux下的可执行程序
> adb push  E:\media\camera_shot.agg   /data/local/tmp/screen  
# chmod 777   /data/local/tmp/screen  
获取手机的Android版本号: $ getprop ro.build.version.sdk
 $ ./screen  17  /sdcard/screen.png     就把图片保存到/sdcard/screen.png文件中

4》、屏幕解锁
 rm /data/system/gesture.key  ;
 rm /data/syste/locksettings.*  ;

5》.查看短信,联系人数据库  
cat /data/data/com.android.providers.contacts/databases/contacts2.db > /data/lcoal/tmp/1.db 
adb pull /data/lcoal/tmp/1.db pc_path
 
cat /data/data/com.android.providers.telephony/databases/mmssms.db > /data/lcoal/tmp/1.db 
adb pull /data/lcoal/tmp/1.db pc_path

6》 刷机
要用到一个可执行工具 -- salted_hash  ,还需要手机支持的 系统固件
> adb wait-for-device
>pause
>adb push files\rom.zip /mnt/sdcard/update.zip
>adb push files\.salted_hash  /mnt/sdcard/clockworkmod/.salted_hash
>adb push files\extendedcommand  /data/local/tmp/extendedcommand
>adb push files\recovery.img  /data/local/tmp/recovery.img
>echo  push完成 
>pause 
>adb shell su -c "dd if=/data/local/tmp/extendedcommand of=/cache/recovery/extendedcommand"
>adb shell su -c "dd if=/data/local/tmp/recovery.img of=/dev/block/mmcblk0p13"
>pause 
>adb reboot recovery

7》.反编译 
方法一: ApkTool
1. 把apk 生命名为 123.apk
2.  在把开的工具中输入  1 回车,就会在smali 下生成反编译文件
方法二:
1. 把 .apk 改成 .zip,然后解压,找到 classes.dex 文件
2.  拷贝到 dex2jar 工具 目录下,覆盖原来的 classes.dex 文件
3.  在 Dos 下进入这个 dex2jar 工具目录,执行 >dex2jar  classes.dex
 就在目录下生成了 classes_dex2jar.jar ,把它拷出来放到某个目录
4. 用 可视化工具 -- java Decompiler 打开

8》 Android 代码执行命令
两个类,执行shell命令调用Terminal_sh,执行Root下的命令调用 Terminal_su。
示例:在Dos下把 screen 放入手机上的目录内: # cat /dat/local/tmp/screen >   /data/data/com.example.qidong/filse/screen,cd 到该目录。
public void rebootFunction(View v){
	Terminal_su.RootCommand("chmod 777 "+getFilesDir()+"/screen;"+getFilesDir()+"/screen  17 /sdcard/new_jieping.png");	
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值