1.bootanimation_main.cpp位于android源码目录frameworks/base/cmds/bootanimation里,将原来 boot->playBootMusic("/system/media/boot.wav");语句改为如下: if(argc > 1){ //if(!strcmp(argv[1],"shutdown")) //为严谨起见可加上此语句,同时要在头文件中加入# include <string.h> boot->playBootMusic("/system/media/logon.wav");//关机音乐,路径\名称可变 }else{ boot->playBootMusic("/system/media/boot.wav");//开机音乐,路径\名称可变 } 2.ShutdownThread.java位于android源码目录frameworks/base/services/java/com/android/server/power里,在private static void beginShutdownSequence(Context context){.....}方法中增加一行代码: private static void beginShutdownSequence(Context context){ ..... SystemProperties.set("sys.start_shutdown", "1"); //原语句 SystemProperties.set("sys.fasboot_shutdown", "1"); //原语句 SystemProperties.set("ctl.start", "bootanim:shutdown"); //新增语句,设置系统属性,运行init.rc中定义好的bootanim服务,并代入shutdown参数 if(SystemProperties.getBoolean("ro.sys.bootfast", false)&&......//原语句 ..... } 3.编译android源代码,打包生成镜像并重新烧写系统; 4.制作好开关机音乐文件,使用adb push将开关机音乐文件推送到/system/media文件夹下;
