Loading cmds/installd/otapreopt_script.sh +31 −0 Original line number Original line Diff line number Diff line Loading @@ -50,6 +50,37 @@ else exit 1 exit 1 fi fi # A source that infinitely emits arbitrary lines. # When connected to STDIN of another process, this source keeps STDIN open until # the consumer process closes STDIN or this script dies. function infinite_source { while echo .; do sleep 1 done } PR_DEXOPT_JOB_VERSION="$(pm art pr-dexopt-job --version)" if (( $? == 0 )) && (( $PR_DEXOPT_JOB_VERSION >= 3 )); then # Delegate to Pre-reboot Dexopt, a feature of ART Service. # ART Service decides what to do with this request: # - If Pre-reboot Dexopt is disabled or unsupported, the command returns # non-zero. This is always the case if the current system is Android 14 or # earlier. # - If Pre-reboot Dexopt is enabled in synchronous mode, the command blocks # until Pre-reboot Dexopt finishes, and returns zero no matter it succeeds or # not. This is the default behavior if the current system is Android 15. # - If Pre-reboot Dexopt is enabled in asynchronous mode, the command schedules # an asynchronous job and returns 0 immediately. The job will then run by the # job scheduler when the device is idle and charging. if infinite_source | pm art on-ota-staged --slot "$TARGET_SLOT_SUFFIX"; then # Handled by Pre-reboot Dexopt. exit 0 fi echo "Pre-reboot Dexopt not enabled. Fall back to otapreopt." else echo "Pre-reboot Dexopt is too old. Fall back to otapreopt." fi if [ "$(/system/bin/otapreopt_chroot --version)" != 2 ]; then if [ "$(/system/bin/otapreopt_chroot --version)" != 2 ]; then # We require an updated chroot wrapper that reads dexopt commands from stdin. # We require an updated chroot wrapper that reads dexopt commands from stdin. # Even if we kept compat with the old binary, the OTA preopt wouldn't work due # Even if we kept compat with the old binary, the OTA preopt wouldn't work due Loading Loading
cmds/installd/otapreopt_script.sh +31 −0 Original line number Original line Diff line number Diff line Loading @@ -50,6 +50,37 @@ else exit 1 exit 1 fi fi # A source that infinitely emits arbitrary lines. # When connected to STDIN of another process, this source keeps STDIN open until # the consumer process closes STDIN or this script dies. function infinite_source { while echo .; do sleep 1 done } PR_DEXOPT_JOB_VERSION="$(pm art pr-dexopt-job --version)" if (( $? == 0 )) && (( $PR_DEXOPT_JOB_VERSION >= 3 )); then # Delegate to Pre-reboot Dexopt, a feature of ART Service. # ART Service decides what to do with this request: # - If Pre-reboot Dexopt is disabled or unsupported, the command returns # non-zero. This is always the case if the current system is Android 14 or # earlier. # - If Pre-reboot Dexopt is enabled in synchronous mode, the command blocks # until Pre-reboot Dexopt finishes, and returns zero no matter it succeeds or # not. This is the default behavior if the current system is Android 15. # - If Pre-reboot Dexopt is enabled in asynchronous mode, the command schedules # an asynchronous job and returns 0 immediately. The job will then run by the # job scheduler when the device is idle and charging. if infinite_source | pm art on-ota-staged --slot "$TARGET_SLOT_SUFFIX"; then # Handled by Pre-reboot Dexopt. exit 0 fi echo "Pre-reboot Dexopt not enabled. Fall back to otapreopt." else echo "Pre-reboot Dexopt is too old. Fall back to otapreopt." fi if [ "$(/system/bin/otapreopt_chroot --version)" != 2 ]; then if [ "$(/system/bin/otapreopt_chroot --version)" != 2 ]; then # We require an updated chroot wrapper that reads dexopt commands from stdin. # We require an updated chroot wrapper that reads dexopt commands from stdin. # Even if we kept compat with the old binary, the OTA preopt wouldn't work due # Even if we kept compat with the old binary, the OTA preopt wouldn't work due Loading