From bfa25878f976173af752fa91dcc526a6e4e75080 Mon Sep 17 00:00:00 2001 From: Raphael Moll Date: Sun, 18 Apr 2010 00:07:37 -0700 Subject: [PATCH 1/4] Remove obsolete machine-setup.html reference. Bug 1231 Change-Id: I629361cf5dddc9d0fbf493e016f1aaf2a50b6935 --- core/main.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/main.mk b/core/main.mk index 68c1defc01..5cb160ba55 100644 --- a/core/main.mk +++ b/core/main.mk @@ -30,7 +30,7 @@ ifeq (0,$(shell expr $$(echo $(MAKE_VERSION) | sed "s/[^0-9\.].*//") \>= 3.81)) $(warning ********************************************************************************) $(warning * You are using version $(MAKE_VERSION) of make.) $(warning * You must upgrade to version 3.81 or greater.) -$(warning * see file://$(shell pwd)/docs/development-environment/machine-setup.html) +$(warning * see http://source.android.com/download) $(warning ********************************************************************************) $(error stopping) endif From c25e5032077ac08edd4b57c9bbf7305a848acf8d Mon Sep 17 00:00:00 2001 From: Bruce Beare Date: Wed, 28 Apr 2010 14:12:52 -0700 Subject: [PATCH 2/4] generic_x86 support Add in Makefiles and support files for x86 builds Based on changes by: wonjong.lee Additional changes by: Mark Gross Additional changes by: Bruce Beare Change-Id: Id087411b282b1b68a0251e7f9cbbdde183549787 Signed-off-by: Bruce Beare --- target/board/generic_x86/AndroidBoard.mk | 8 + target/board/generic_x86/BoardConfig.mk | 20 ++ target/board/generic_x86/README.txt | 26 ++ .../generic_x86/buildspec-generic_x86.mk | 3 + target/board/generic_x86/init.rc | 243 ++++++++++++++++++ target/product/AndroidProducts.mk | 1 + target/product/generic_x86.mk | 27 ++ tools/applypatch/Android.mk | 2 + 8 files changed, 330 insertions(+) create mode 100644 target/board/generic_x86/AndroidBoard.mk create mode 100644 target/board/generic_x86/BoardConfig.mk create mode 100644 target/board/generic_x86/README.txt create mode 100644 target/board/generic_x86/buildspec-generic_x86.mk create mode 100644 target/board/generic_x86/init.rc create mode 100644 target/product/generic_x86.mk diff --git a/target/board/generic_x86/AndroidBoard.mk b/target/board/generic_x86/AndroidBoard.mk new file mode 100644 index 0000000000..9d64d52ca7 --- /dev/null +++ b/target/board/generic_x86/AndroidBoard.mk @@ -0,0 +1,8 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.rc +LOCAL_SRC_FILES := init.rc +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) +include $(BUILD_PREBUILT) diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk new file mode 100644 index 0000000000..cdc48f3c04 --- /dev/null +++ b/target/board/generic_x86/BoardConfig.mk @@ -0,0 +1,20 @@ +TARGET_COMPRESS_MODULE_SYMBOLS := false +TARGET_PRELINK_MODULE := false +TARGET_NO_RECOVERY := true +TARGET_HARDWARE_3D := false +BOARD_USES_GENERIC_AUDIO := true +USE_CAMERA_STUB := true +TARGET_PROVIDES_INIT_RC := true +USE_CUSTOM_RUNTIME_HEAP_MAX := "32M" +TARGET_CPU_ABI := x86 +TARGET_USERIMAGES_USE_EXT2 := true +TARGET_BOOTIMAGE_USE_EXT2 := true +TARGET_USE_DISKINSTALLER := false + +# For KVM +# BOARD_KERNEL_CMDLINE := console=tty0 console=ttyS1,115200n8 console=tty0 androidboot.hardware=generic_x86 vga=788 + +# For mrst_ref +BOARD_KERNEL_CMDLINE := init=/init pci=noearly console=ttyS0 console=ttyS1,115200n8 console=tty0 earlyprintk=mrst loglevel=8 notsc no_percpu_apbt androidboot.hardware=generic_x86 s0ix_latency=160 + +BOARD_BOOTIMAGE_MAX_SIZE := 8388608 diff --git a/target/board/generic_x86/README.txt b/target/board/generic_x86/README.txt new file mode 100644 index 0000000000..3b88b4448b --- /dev/null +++ b/target/board/generic_x86/README.txt @@ -0,0 +1,26 @@ +The generic_x86 board target provides basic services on +very basic hardware. To build with generic_x86, you will +need an appropriate kernel for your device (or emulation). + +A1. Create a new top level directory and pull the AOSP repository + mkdir $HOME/AOSP + cd $HOME/AOSP + repo init -u git://android.git.kernel.org/platform/manifest.git + repo sync + +A2. Copy in the buildspeck.mk + cd $HOME/AOSP + cp build/target/board/generic_x86/buildspec-generic_x86.mk buildspec.mk + +A3. Copy in the kernel + cd $HOME/AOSP + cp ~/bzImage.your_device $HOME/AOSP/prebuilt/android-x86/kernel/kernel + +A4. Build + cd $HOME/AOSP + source build/envsetup.sh + lunch generic_x86-eng + make -j8 + +The build will generate some image files whose format may or may not be correct for your +device. diff --git a/target/board/generic_x86/buildspec-generic_x86.mk b/target/board/generic_x86/buildspec-generic_x86.mk new file mode 100644 index 0000000000..5c4e6a5534 --- /dev/null +++ b/target/board/generic_x86/buildspec-generic_x86.mk @@ -0,0 +1,3 @@ +BUILD_ENV_SEQUENCE_NUMBER := 9 +DISABLE_DEXPREOPT := true +TARGET_ARCH := x86 diff --git a/target/board/generic_x86/init.rc b/target/board/generic_x86/init.rc new file mode 100644 index 0000000000..2a6f665143 --- /dev/null +++ b/target/board/generic_x86/init.rc @@ -0,0 +1,243 @@ + +on init + +sysclktz 0 + +loglevel 3 + +# setup the global environment + export PATH /sbin:/system/sbin:/system/bin:/system/xbin + export LD_LIBRARY_PATH /system/lib + export ANDROID_BOOTLOGO 1 + export ANDROID_ROOT /system + export ANDROID_ASSETS /system/app + export ANDROID_DATA /data + export EXTERNAL_STORAGE /sdcard + export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar + +# Backward compatibility + symlink /system/etc /etc + +# create mountpoints and mount tmpfs on sqlite_stmt_journals and debugfs on d + mkdir /d + mkdir /sdcard 0000 system system + mkdir /system + mkdir /data 0771 system system + mkdir /cache 0770 system cache + mkdir /sqlite_stmt_journals 01777 root root + mount tmpfs tmpfs /sqlite_stmt_journals + mount debugfs debugfs /d + + mount rootfs rootfs / rw remount + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + +# mount mtd partitions + # Hack... + # We'll attempt to mount both as sdcard and harddisk... + # Only one or the other will actually work... this way, we can + # use the same init.rc for both + mount ext3 /dev/block/mmcblk0p6 /system + mount ext3 /dev/block/mmcblk0p6 /system rw remount + mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev + mount ext3 /dev/block/mmcblk0p7 /cache nosuid nodev + mount ext3 /dev/block/sda6 /system + mount ext3 /dev/block/sda6 /system rw remount + mount ext3 /dev/block/sda8 /data + + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /data + chmod 0771 /data + + # Same reason as /data above + chown system cache /cache + chmod 0770 /cache + + # This may have been created by the recovery system with odd permissions + chown system system /cache/recovery + chmod 0770 /cache/recovery + +# create basic filesystem structure + mkdir /data/misc 01771 system misc + mkdir /data/misc/hcid 0770 bluetooth bluetooth + mkdir /data/local 0771 shell shell + mkdir /data/local/tmp 0771 shell shell + mkdir /data/data 0771 system system + mkdir /data/app-private 0771 system system + mkdir /data/app 0771 system system + mkdir /data/property 0700 root root + + # create dalvik-cache and double-check the perms + mkdir /data/dalvik-cache 0771 system system + chown system system /data/dalvik-cache + chmod 0771 /data/dalvik-cache + + # create the lost+found directories, so as to enforce our permissions + mkdir /system/lost+found 0770 + mkdir /data/lost+found 0770 + mkdir /cache/lost+found 0770 + + # double check the perms, in case lost+found already exists, and set owner + chown root root /data/lost+found + chmod 0770 /data/lost+found + chown root root /cache/lost+found + chmod 0770 /cache/lost+found + +on boot + +### Load some modules + +# basic network init + ifup lo + hostname localhost + domainname localdomain + + +# set RLIMIT_NICE to allow priorities from 19 to -20 + setrlimit 13 40 40 + mkdir /data/core 0777 + write /proc/sys/kernel/core_pattern /data/core/%e.%p + setrlimit 4 -1 -1 + +# Define the oom_adj values for the classes of processes that can be +# killed by the kernel. These are used in ActivityManagerService. + setprop ro.FOREGROUND_APP_ADJ 0 + setprop ro.VISIBLE_APP_ADJ 1 + setprop ro.SECONDARY_SERVER_ADJ 2 + setprop ro.HIDDEN_APP_MIN_ADJ 7 + setprop ro.CONTENT_PROVIDER_ADJ 14 + setprop ro.EMPTY_APP_ADJ 15 + setprop ro.BACKUP_APP_ADJ 2 + setprop ro.HOME_APP_ADJ 4 + + +# Define the memory thresholds at which the above process classes will +# be killed. These numbers are in pages (4k). + setprop ro.FOREGROUND_APP_MEM 1536 + setprop ro.VISIBLE_APP_MEM 2048 + setprop ro.SECONDARY_SERVER_MEM 4096 + setprop ro.BACKUP_APP_MEM 4096 + setprop ro.HOME_APP_MEM 4096 + setprop ro.HIDDEN_APP_MEM 5120 + setprop ro.CONTENT_PROVIDER_MEM 5632 + setprop ro.EMPTY_APP_MEM 6144 + + +# Write value must be consistent with the above properties. + write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15 + + write /proc/sys/vm/overcommit_memory 1 + write /sys/module/lowmemorykiller/parameters/minfree 1536,2048,4096,8192,16384 + + # Set init its forked children's oom_adj. + write /proc/1/oom_adj -16 + + # Permissions for System Server and daemons. + chown radio system /sys/android_power/state + chown radio system /sys/android_power/request_state + chown radio system /sys/android_power/acquire_full_wake_lock + chown radio system /sys/android_power/acquire_partial_wake_lock + chown radio system /sys/android_power/release_wake_lock + chown radio system /sys/power/state + chown radio system /sys/power/wake_lock + chown radio system /sys/power/wake_unlock + chmod 0660 /sys/power/state + chmod 0660 /sys/power/wake_lock + chmod 0660 /sys/power/wake_unlock + + chown system system /sys/class/timed_output/vibrator/enable + chown system system /sys/class/leds/keyboard-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/button-backlight/brightness + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + chown system system /sys/class/leds/blue/brightness + chown system system /sys/class/leds/red/device/grpfreq + chown system system /sys/class/leds/red/device/grppwm + chown system system /sys/class/leds/red/device/blink + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + chown system system /sys/class/leds/blue/brightness + chown system system /sys/class/leds/red/device/grpfreq + chown system system /sys/class/leds/red/device/grppwm + chown system system /sys/class/leds/red/device/blink + chown system system /sys/class/timed_output/vibrator/enable + chown bluetooth bluetooth /sys/module/board_trout/parameters/bluetooth_power_on + chown system system /sys/module/sco/parameters/disable_esco + chmod 0660 /sys/module/board_trout/parameters/bluetooth_power_on + chown radio audio /system/etc/AudioPara4.csv + chown system system /sys/kernel/ipv4/tcp_wmem_min + chown system system /sys/kernel/ipv4/tcp_wmem_def + chown system system /sys/kernel/ipv4/tcp_wmem_max + chown system system /sys/kernel/ipv4/tcp_rmem_min + chown system system /sys/kernel/ipv4/tcp_rmem_def + chown system system /sys/kernel/ipv4/tcp_rmem_max + chown root radio /proc/cmdline + +# Enable audio based on existing /dev/dsp + chmod 0666 /dev/snd/dsp + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680 + + class_start default + +## Daemon processes to be run by init. +## +service console /system/bin/sh + console + +# adbd is controlled by the persist.service.adb.enable system property +service adbd /sbin/adbd +# disabled + +# adbd on at boot in emulator +on property:ro.kernel.qemu=1 + start adbd + +# adbd on at boot in insecure builds +on property:ro.secure=0 + start adbd + +on property:persist.service.adb.enable=1 + start adbd + +on property:persist.service.adb.enable=0 + stop adbd + +service servicemanager /system/bin/servicemanager + user system + critical + onrestart restart zygote + onrestart restart media + +service vold /system/bin/vold + socket vold stream 0660 root mount + +service zygote /system/bin/app_process -Xzygote -Xint:fast /system/bin --zygote --start-system-server + socket zygote stream 666 + onrestart write /sys/android_power/request_state wake + +service media /system/bin/mediaserver + user media + group system audio camera graphics inet net_bt net_bt_admin + +service dbus /system/bin/dbus-daemon --system --nofork + socket dbus stream 660 bluetooth bluetooth + user bluetooth + group bluetooth net_bt_admin + +service brick /system/bin/wipe nuke + disabled + +service installd /system/bin/installd + socket installd stream 600 system system diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk index 1bf3c3f6cb..e241cde643 100644 --- a/target/product/AndroidProducts.mk +++ b/target/product/AndroidProducts.mk @@ -30,4 +30,5 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/min_dev.mk \ $(LOCAL_DIR)/sdk.mk \ $(LOCAL_DIR)/sim.mk \ + $(LOCAL_DIR)/generic_x86.mk \ $(LOCAL_DIR)/generic_with_google.mk diff --git a/target/product/generic_x86.mk b/target/product/generic_x86.mk new file mode 100644 index 0000000000..00f2822e69 --- /dev/null +++ b/target/product/generic_x86.mk @@ -0,0 +1,27 @@ +# This is a generic product that isn't specialized for a specific device. +# It includes the base Android platform. If you need Google-specific features, +# you should derive from generic_with_google.mk + +PRODUCT_PACKAGES := \ + AlarmClock \ + AlarmProvider \ + Calendar \ + Camera \ + DrmProvider \ + LatinIME \ + Mms \ + Music \ + Settings \ + Sync \ + Updater \ + CalendarProvider \ + SubscribedFeedsProvider \ + SyncProvider + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk) + +# Overrides +PRODUCT_BRAND := generic_x86 +PRODUCT_DEVICE := generic_x86 +PRODUCT_NAME := generic_x86 +PRODUCT_POLICY := android.policy_phone diff --git a/tools/applypatch/Android.mk b/tools/applypatch/Android.mk index d20d6c8f1d..f09223ece4 100644 --- a/tools/applypatch/Android.mk +++ b/tools/applypatch/Android.mk @@ -14,6 +14,7 @@ ifneq ($(TARGET_SIMULATOR),true) +ifeq ($(TARGET_ARCH),arm) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) @@ -56,4 +57,5 @@ LOCAL_STATIC_LIBRARIES += libz libbz include $(BUILD_HOST_EXECUTABLE) +endif # TARGET_ARCH == arm endif # !TARGET_SIMULATOR From 73fda1b973e2342dbc878f23713780fdab3d2646 Mon Sep 17 00:00:00 2001 From: Alexey Tarasov Date: Sat, 21 Nov 2009 13:41:06 +1000 Subject: [PATCH 3/4] Make expr more POSIXy Change-Id: I939cf1f227c14112656804d69c1afd7ead4a31ed --- tools/apicheck/etc/apicheck | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/apicheck/etc/apicheck b/tools/apicheck/etc/apicheck index 9c00e25728..5d0480cf34 100644 --- a/tools/apicheck/etc/apicheck +++ b/tools/apicheck/etc/apicheck @@ -38,7 +38,7 @@ libdir=`dirname $progdir`/framework javaOpts="" while expr "x$1" : 'x-J' >/dev/null; do - opt=`expr "$1" : '-J\(.*\)'` + opt=`expr "x$1" : 'x-J\(.*\)'` javaOpts="${javaOpts} -${opt}" shift done From f015e94dc89ea21d40ab06c84e496d01be36ac13 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Queru Date: Mon, 3 May 2010 09:52:03 -0700 Subject: [PATCH 4/4] Adapt to new location of libcore Change-Id: I316355751db621d318a78dc6e844d6bf2c7fdc87 --- cleanspec.mk | 55 +--------------------------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) diff --git a/cleanspec.mk b/cleanspec.mk index 4b888689a5..b40b5f2dc0 100644 --- a/cleanspec.mk +++ b/cleanspec.mk @@ -18,7 +18,7 @@ # WHEN DOING SO, DELETE ANY "add-clean-step" ENTRIES THAT HAVE PILED UP. # ********************************************************************** # -INTERNAL_CLEAN_BUILD_VERSION := 3 +INTERNAL_CLEAN_BUILD_VERSION := 4 # # *********************************************************************** # Do not touch INTERNAL_CLEAN_BUILD_VERSION if you've added a clean step! @@ -54,59 +54,6 @@ INTERNAL_CLEAN_BUILD_VERSION := 3 #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.google.android.datamessaging_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sholes/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/pvasflocal.cfg) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sholes) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/ringtones/Silence.ogg) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/ringtones/notifications/Silence.ogg) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/passion/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.google.android.datamessaging_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sholes/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/bugreport) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/obj/target/common/obj/APPS/VoiceSearch_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/VoiceSearch_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libgps-rpc_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/pdsm_atl_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libgps_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/system/app/Launcher.apk) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/bluetooth/) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sholes/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/com.amazon.mp3_intermediates) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/com.amazon.mp3.apk) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST