diff --git a/bin/getclasses.pl b/bin/getclasses.pl index bf7b210..d6579b2 100755 --- a/bin/getclasses.pl +++ b/bin/getclasses.pl @@ -9,11 +9,22 @@ while () { chomp($_); if ($_ =~ m/ \/system\/app\/(.*).apk/) { - $sysapp = $1; + $sysapp = $1; # gets the system app directory path, ie "Calendar/Calendar" if (-e "$mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes-full-debug.jar") { system("cp $mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes-full-debug.jar $sysapp.jar"); + } elsif (-e "$mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes.jar") { + system("cp $mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes.jar $sysapp.jar"); } else { - print "???Cannot find compiled classes for $sysapp???"; + # newer Android builds removed the subdirectory, so trim the path + @fw_parts = split m%/%, $fw; # splits on / + $fw = shift @fw_parts; # grabs first array element, ie "Calendar" + if (-e "$mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes-full-debug.jar") { + system("cp $mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes-full-debug.jar $sysapp.jar"); + } elsif (-e "$mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes.jar") { + system("cp $mydroid_dir$sysapp_dir$sysapp"."_intermediates/classes.jar $sysapp.jar"); + } else { + print "???Cannot find compiled classes for $sysapp???\n"; + } } } elsif ($_ =~ m/ \/system\/framework\/(.*).jar/) { $fw = $1;