diff options
-rwxr-xr-x | audio/audio_hw.c | 37 | ||||
-rwxr-xr-x | audio/ril_interface.c | 23 | ||||
-rwxr-xr-x | audio/ril_interface.h | 1 | ||||
-rw-r--r-- | board-info.txt | 2 | ||||
-rw-r--r-- | device.mk | 6 | ||||
-rwxr-xr-x | init.tuna.rc | 9 | ||||
-rwxr-xr-x | init.tuna.usb.rc | 34 | ||||
-rw-r--r-- | kernel | bin | 3914488 -> 3915428 bytes | |||
-rw-r--r-- | liblight/lights.c | 12 | ||||
-rw-r--r-- | libsensors/SamsungSensorBase.cpp | 4 | ||||
-rw-r--r-- | libsensors/sensors.cpp | 12 | ||||
-rw-r--r-- | overlay/packages/apps/Settings/res/values-ru/arrays.xml | 12 | ||||
-rw-r--r-- | recovery/Android.mk | 2 | ||||
-rw-r--r-- | recovery/recovery_ui.c | 115 | ||||
-rw-r--r-- | recovery/recovery_ui.cpp | 111 |
15 files changed, 181 insertions, 199 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 0ba9a41..ba5280d 100755 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -607,7 +607,7 @@ static int set_route_by_array(struct mixer *mixer, struct route_setting *route, static int start_call(struct tuna_audio_device *adev) { - LOGE("Opening modem PCMs"); + ALOGE("Opening modem PCMs"); pcm_config_vx.rate = adev->wb_amr ? VX_WB_SAMPLING_RATE : VX_NB_SAMPLING_RATE; @@ -615,7 +615,7 @@ static int start_call(struct tuna_audio_device *adev) if (adev->pcm_modem_dl == NULL) { adev->pcm_modem_dl = pcm_open(0, PORT_MODEM, PCM_OUT, &pcm_config_vx); if (!pcm_is_ready(adev->pcm_modem_dl)) { - LOGE("cannot open PCM modem DL stream: %s", pcm_get_error(adev->pcm_modem_dl)); + ALOGE("cannot open PCM modem DL stream: %s", pcm_get_error(adev->pcm_modem_dl)); goto err_open_dl; } } @@ -623,7 +623,7 @@ static int start_call(struct tuna_audio_device *adev) if (adev->pcm_modem_ul == NULL) { adev->pcm_modem_ul = pcm_open(0, PORT_MODEM, PCM_IN, &pcm_config_vx); if (!pcm_is_ready(adev->pcm_modem_ul)) { - LOGE("cannot open PCM modem UL stream: %s", pcm_get_error(adev->pcm_modem_ul)); + ALOGE("cannot open PCM modem UL stream: %s", pcm_get_error(adev->pcm_modem_ul)); goto err_open_ul; } } @@ -645,7 +645,7 @@ err_open_dl: static void end_call(struct tuna_audio_device *adev) { - LOGE("Closing modem PCMs"); + ALOGE("Closing modem PCMs"); pcm_stop(adev->pcm_modem_dl); pcm_stop(adev->pcm_modem_ul); @@ -867,7 +867,7 @@ static void force_all_standby(struct tuna_audio_device *adev) static void select_mode(struct tuna_audio_device *adev) { if (adev->mode == AUDIO_MODE_IN_CALL) { - LOGE("Entering IN_CALL state, in_call=%d", adev->in_call); + ALOGE("Entering IN_CALL state, in_call=%d", adev->in_call); if (!adev->in_call) { force_all_standby(adev); /* force earpiece route for in call state if speaker is the @@ -887,12 +887,11 @@ static void select_mode(struct tuna_audio_device *adev) adev->devices &= ~AUDIO_DEVICE_OUT_SPEAKER; select_output_device(adev); start_call(adev); - ril_set_call_clock_sync(&adev->ril, SOUND_CLOCK_START); adev_set_voice_volume(&adev->hw_device, adev->voice_volume); adev->in_call = 1; } } else { - LOGE("Leaving IN_CALL state, in_call=%d, mode=%d", + ALOGE("Leaving IN_CALL state, in_call=%d, mode=%d", adev->in_call, adev->mode); if (adev->in_call) { adev->in_call = 0; @@ -1126,7 +1125,7 @@ static int start_output_stream(struct tuna_stream_out *out) out->pcm = pcm_open(card, port, PCM_OUT | PCM_MMAP | PCM_NOIRQ, &out->config); if (!pcm_is_ready(out->pcm)) { - LOGE("cannot open pcm_out driver: %s", pcm_get_error(out->pcm)); + ALOGE("cannot open pcm_out driver: %s", pcm_get_error(out->pcm)); pcm_close(out->pcm); adev->active_output = NULL; return -ENOMEM; @@ -1250,7 +1249,7 @@ static int get_playback_delay(struct tuna_stream_out *out, buffer->time_stamp.tv_sec = 0; buffer->time_stamp.tv_nsec = 0; buffer->delay_ns = 0; - LOGV("get_playback_delay(): pcm_get_htimestamp error," + ALOGV("get_playback_delay(): pcm_get_htimestamp error," "setting playbackTimestamp to 0"); return status; } @@ -1571,7 +1570,7 @@ static int start_input_stream(struct tuna_stream_in *in) /* this assumes routing is done previously */ in->pcm = pcm_open(0, PORT_MM2_UL, PCM_IN, &in->config); if (!pcm_is_ready(in->pcm)) { - LOGE("cannot open pcm_in driver: %s", pcm_get_error(in->pcm)); + ALOGE("cannot open pcm_in driver: %s", pcm_get_error(in->pcm)); pcm_close(in->pcm); adev->active_input = NULL; return -ENOMEM; @@ -1743,7 +1742,7 @@ static void get_capture_delay(struct tuna_stream_in *in, buffer->time_stamp.tv_sec = 0; buffer->time_stamp.tv_nsec = 0; buffer->delay_ns = 0; - LOGW("read get_capture_delay(): pcm_htimestamp error"); + ALOGW("read get_capture_delay(): pcm_htimestamp error"); return; } @@ -1764,7 +1763,7 @@ static void get_capture_delay(struct tuna_stream_in *in, buffer->time_stamp = tstamp; buffer->delay_ns = delay_ns; - LOGV("get_capture_delay time_stamp = [%ld].[%ld], delay_ns: [%d]," + ALOGV("get_capture_delay time_stamp = [%ld].[%ld], delay_ns: [%d]," " kernel_delay:[%ld], buf_delay:[%ld], rsmp_delay:[%ld], kernel_frames:[%d], " "in->frames_in:[%d], in->proc_frames_in:[%d], frames:[%d]", buffer->time_stamp.tv_sec , buffer->time_stamp.tv_nsec, buffer->delay_ns, @@ -1778,7 +1777,7 @@ static int32_t update_echo_reference(struct tuna_stream_in *in, size_t frames) struct echo_reference_buffer b; b.delay_ns = 0; - LOGV("update_echo_reference, frames = [%d], in->ref_frames_in = [%d], " + ALOGV("update_echo_reference, frames = [%d], in->ref_frames_in = [%d], " "b.frame_count = [%d]", frames, in->ref_frames_in, frames - in->ref_frames_in); if (in->ref_frames_in < frames) { @@ -1797,12 +1796,12 @@ static int32_t update_echo_reference(struct tuna_stream_in *in, size_t frames) if (in->echo_reference->read(in->echo_reference, &b) == 0) { in->ref_frames_in += b.frame_count; - LOGV("update_echo_reference: in->ref_frames_in:[%d], " + ALOGV("update_echo_reference: in->ref_frames_in:[%d], " "in->ref_buf_size:[%d], frames:[%d], b.frame_count:[%d]", in->ref_frames_in, in->ref_buf_size, frames, b.frame_count); } } else - LOGW("update_echo_reference: NOT enough frames to read ref buffer"); + ALOGW("update_echo_reference: NOT enough frames to read ref buffer"); return b.delay_ns; } @@ -1895,7 +1894,7 @@ static int get_next_buffer(struct resampler_buffer_provider *buffer_provider, in->config.period_size * audio_stream_frame_size(&in->stream.common)); if (in->read_status != 0) { - LOGE("get_next_buffer() pcm_read error %d", in->read_status); + ALOGE("get_next_buffer() pcm_read error %d", in->read_status); buffer->raw = NULL; buffer->frame_count = 0; return in->read_status; @@ -1984,7 +1983,7 @@ static ssize_t process_frames(struct tuna_stream_in *in, void* buffer, ssize_t f in->proc_buf = (int16_t *)realloc(in->proc_buf, in->proc_buf_size * in->config.channels * sizeof(int16_t)); - LOGV("process_frames(): in->proc_buf %p size extended to %d frames", + ALOGV("process_frames(): in->proc_buf %p size extended to %d frames", in->proc_buf, in->proc_buf_size); } frames_rd = read_frames(in, @@ -2543,7 +2542,7 @@ static int adev_open(const hw_module_t* module, const char* name, adev->mixer = mixer_open(0); if (!adev->mixer) { free(adev); - LOGE("Unable to open the mixer, aborting."); + ALOGE("Unable to open the mixer, aborting."); return -EINVAL; } @@ -2598,7 +2597,7 @@ static int adev_open(const hw_module_t* module, const char* name, !adev->mixer_ctls.earpiece_volume) { mixer_close(adev->mixer); free(adev); - LOGE("Unable to locate all mixer controls, aborting."); + ALOGE("Unable to locate all mixer controls, aborting."); return -EINVAL; } diff --git a/audio/ril_interface.c b/audio/ril_interface.c index 4e1e2a1..3d7ce06 100755 --- a/audio/ril_interface.c +++ b/audio/ril_interface.c @@ -36,7 +36,6 @@ int (*_ril_is_connected)(void *); int (*_ril_disconnect)(void *); int (*_ril_set_call_volume)(void *, enum ril_sound_type, int); int (*_ril_set_call_audio_path)(void *, enum ril_audio_path); -int (*_ril_set_call_clock_sync)(void *, enum ril_clock_state); int (*_ril_register_unsolicited_handler)(void *, int, void *); int (*_ril_get_wb_amr)(void *, void *); @@ -72,7 +71,7 @@ static int ril_connect_if_required(struct ril_handle *ril) return 0; if (_ril_connect(ril->client) != RIL_CLIENT_ERR_SUCCESS) { - LOGE("ril_connect() failed"); + ALOGE("ril_connect() failed"); return -1; } @@ -94,7 +93,7 @@ int ril_open(struct ril_handle *ril) ril->handle = dlopen(RIL_CLIENT_LIBPATH, RTLD_NOW); if (!ril->handle) { - LOGE("Cannot open '%s'", RIL_CLIENT_LIBPATH); + ALOGE("Cannot open '%s'", RIL_CLIENT_LIBPATH); return -1; } @@ -105,7 +104,6 @@ int ril_open(struct ril_handle *ril) _ril_disconnect = dlsym(ril->handle, "Disconnect_RILD"); _ril_set_call_volume = dlsym(ril->handle, "SetCallVolume"); _ril_set_call_audio_path = dlsym(ril->handle, "SetCallAudioPath"); - _ril_set_call_clock_sync = dlsym(ril->handle, "SetCallClockSync"); _ril_register_unsolicited_handler = dlsym(ril->handle, "RegisterUnsolicitedHandler"); /* since this function is not supported in all RILs, don't require it */ @@ -113,16 +111,15 @@ int ril_open(struct ril_handle *ril) if (!_ril_open_client || !_ril_close_client || !_ril_connect || !_ril_is_connected || !_ril_disconnect || !_ril_set_call_volume || - !_ril_set_call_audio_path || !_ril_set_call_clock_sync || - !_ril_register_unsolicited_handler) { - LOGE("Cannot get symbols from '%s'", RIL_CLIENT_LIBPATH); + !_ril_set_call_audio_path || !_ril_register_unsolicited_handler) { + ALOGE("Cannot get symbols from '%s'", RIL_CLIENT_LIBPATH); dlclose(ril->handle); return -1; } ril->client = _ril_open_client(); if (!ril->client) { - LOGE("ril_open_client() failed"); + ALOGE("ril_open_client() failed"); dlclose(ril->handle); return -1; } @@ -148,7 +145,7 @@ int ril_close(struct ril_handle *ril) if ((_ril_disconnect(ril->client) != RIL_CLIENT_ERR_SUCCESS) || (_ril_close_client(ril->client) != RIL_CLIENT_ERR_SUCCESS)) { - LOGE("ril_disconnect() or ril_close_client() failed"); + ALOGE("ril_disconnect() or ril_close_client() failed"); return -1; } @@ -173,11 +170,3 @@ int ril_set_call_audio_path(struct ril_handle *ril, enum ril_audio_path path) return _ril_set_call_audio_path(ril->client, path); } - -int ril_set_call_clock_sync(struct ril_handle *ril, enum ril_clock_state state) -{ - if (ril_connect_if_required(ril)) - return 0; - - return _ril_set_call_clock_sync(ril->client, state); -} diff --git a/audio/ril_interface.h b/audio/ril_interface.h index 676772c..2ea83f8 100755 --- a/audio/ril_interface.h +++ b/audio/ril_interface.h @@ -66,7 +66,6 @@ int ril_close(struct ril_handle *ril); int ril_set_call_volume(struct ril_handle *ril, enum ril_sound_type sound_type, float volume); int ril_set_call_audio_path(struct ril_handle *ril, enum ril_audio_path path); -int ril_set_call_clock_sync(struct ril_handle *ril, enum ril_clock_state state); void ril_register_set_wb_amr_callback(void *function, void *data); #endif diff --git a/board-info.txt b/board-info.txt index 73dad7f..a509113 100644 --- a/board-info.txt +++ b/board-info.txt @@ -1,3 +1,3 @@ require board=tuna -require version-bootloader=PRIMEKL01 +require version-bootloader=PRIMELA01 @@ -48,8 +48,7 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ audio.primary.tuna \ - audio.a2dp.default \ - libaudioutils + audio.a2dp.default PRODUCT_PACKAGES += \ tuna_hdcp_keys @@ -75,8 +74,7 @@ PRODUCT_COPY_FILES += \ device/samsung/tuna/bcmdhd.cal:system/etc/wifi/bcmdhd.cal PRODUCT_PROPERTY_OVERRIDES := \ - wifi.interface=wlan0 \ - wifi.supplicant_scan_interval=15 + wifi.interface=wlan0 # Set default USB interface PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ diff --git a/init.tuna.rc b/init.tuna.rc index 70f1cbe..798ff1f 100755 --- a/init.tuna.rc +++ b/init.tuna.rc @@ -23,6 +23,9 @@ on post-fs-data mkdir /data/misc/camera 0770 media media mkdir /data/misc/camera/R5_MVEN003_LD2_ND0_IR0_SH0_FL1_SVEN003_DCCID1044 0770 media media + mkdir /data/radio 0775 radio radio + mkdir /data/radio/log 0775 radio radio + setprop vold.post_fs_data_done 1 # LTE @@ -77,8 +80,6 @@ on fs # We chown/chmod /factory because mount is run as root + defaults chown radio radio /factory chmod 0775 /factory - mkdir /data/radio 0775 radio radio - mkdir /data/radio/log 0775 radio radio # add symlink for HDCP key symlink /factory/hdcp.keys /system/vendor/firmware/hdcp.keys @@ -116,10 +117,10 @@ on fs chown radio radio /sys/bus/usb/devices/usb1/power/control on property:persist.sys.tuna.off_mode=* - write /d/pm_debug/enable_off_mode $persist.sys.tuna.off_mode + write /d/pm_debug/enable_off_mode ${persist.sys.tuna.off_mode} on property:ril.modem.lte.powercontrol=* - write /sys/bus/usb/devices/1-1/power/control $ril.modem.lte.powercontrol + write /sys/bus/usb/devices/1-1/power/control ${ril.modem.lte.powercontrol} service fRom /system/bin/fRom \ -x /data/misc/camera/R5_MVEN003_LD2_ND0_IR0_SH0_FL1_SVEN003_DCCID1044 \ diff --git a/init.tuna.usb.rc b/init.tuna.usb.rc index 9d3d336..19a5f8f 100755 --- a/init.tuna.usb.rc +++ b/init.tuna.usb.rc @@ -1,70 +1,70 @@ on init - write /sys/class/android_usb/android0/iSerial $ro.serialno + write /sys/class/android_usb/android0/iSerial ${ro.serialno} write /sys/class/android_usb/android0/f_rndis/manufacturer Samsung write /sys/class/android_usb/android0/f_rndis/vendorID 04e8 write /sys/class/android_usb/android0/f_rndis/wceis 1 on boot - write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer - write /sys/class/android_usb/android0/iProduct $ro.product.model + write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} + write /sys/class/android_usb/android0/iProduct ${ro.product.model} on property:sys.usb.config=mtp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 685c - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 start adbd - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6863 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/bDeviceClass 224 write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6864 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/bDeviceClass 224 write /sys/class/android_usb/android0/enable 1 start adbd - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ptp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6865 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ptp,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6866 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 start adbd - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,dm write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6862 - write /sys/class/android_usb/android0/functions $sys.usb.config + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state $sys.usb.config + setprop sys.usb.state ${sys.usb.config} Binary files differdiff --git a/liblight/lights.c b/liblight/lights.c index 8c675b2..ff8b28e 100644 --- a/liblight/lights.c +++ b/liblight/lights.c @@ -54,7 +54,7 @@ static int write_int(char const *path, int value) already_warned = 0; - LOGV("write_int: path %s, value %d", path, value); + ALOGV("write_int: path %s, value %d", path, value); fd = open(path, O_RDWR); if (fd >= 0) { @@ -65,7 +65,7 @@ static int write_int(char const *path, int value) return amt == -1 ? -errno : 0; } else { if (already_warned == 0) { - LOGE("write_int failed to open %s\n", path); + ALOGE("write_int failed to open %s\n", path); already_warned = 1; } return -errno; @@ -95,7 +95,7 @@ static int set_light_backlight(struct light_device_t *dev, static int close_lights(struct light_device_t *dev) { - LOGV("close_light is called"); + ALOGV("close_light is called"); if (dev) free(dev); @@ -115,15 +115,15 @@ static int write_leds(struct an30259a_pr_control *led) if (fd >= 0) { err = ioctl(fd, AN30259A_PR_SET_IMAX, &imax); if (err) - LOGE("failed to set imax"); + ALOGE("failed to set imax"); err = ioctl(fd, AN30259A_PR_SET_LED, led); if (err < 0) - LOGE("failed to set leds!"); + ALOGE("failed to set leds!"); close(fd); } else { - LOGE("failed to open %s!", LED_FILE); + ALOGE("failed to open %s!", LED_FILE); err = -errno; } diff --git a/libsensors/SamsungSensorBase.cpp b/libsensors/SamsungSensorBase.cpp index 0ec4915..fe3f14e 100644 --- a/libsensors/SamsungSensorBase.cpp +++ b/libsensors/SamsungSensorBase.cpp @@ -70,13 +70,13 @@ SamsungSensorBase::SamsungSensorBase(const char *dev_name, return; mInputSysfsEnable = makeSysfsName(input_name, "enable"); if (!mInputSysfsEnable) { - LOGE("%s: unable to allocate mem for %s:enable", __func__, + ALOGE("%s: unable to allocate mem for %s:enable", __func__, data_name); return; } mInputSysfsPollDelay = makeSysfsName(input_name, "poll_delay"); if (!mInputSysfsPollDelay) { - LOGE("%s: unable to allocate mem for %s:poll_delay", __func__, + ALOGE("%s: unable to allocate mem for %s:poll_delay", __func__, data_name); return; } diff --git a/libsensors/sensors.cpp b/libsensors/sensors.cpp index 156f08d..2a33731 100644 --- a/libsensors/sensors.cpp +++ b/libsensors/sensors.cpp @@ -16,7 +16,7 @@ #define LOG_NDEBUG 0 #define LOG_TAG "Sensors" -//#define FUNC_LOG LOGV("%s", __PRETTY_FUNCTION__) +//#define FUNC_LOG ALOGV("%s", __PRETTY_FUNCTION__) #define FUNC_LOG #include <hardware/sensors.h> @@ -215,7 +215,7 @@ sensors_poll_context_t::sensors_poll_context_t() int wakeFds[2]; int result = pipe(wakeFds); - LOGE_IF(result<0, "error creating wake pipe (%s)", strerror(errno)); + ALOGE_IF(result<0, "error creating wake pipe (%s)", strerror(errno)); fcntl(wakeFds[0], F_SETFL, O_NONBLOCK); fcntl(wakeFds[1], F_SETFL, O_NONBLOCK); mWritePipeFd = wakeFds[1]; @@ -249,7 +249,7 @@ int sensors_poll_context_t::activate(int handle, int enabled) if (!err) { const char wakeMessage(WAKE_MESSAGE); int result = write(mWritePipeFd, &wakeMessage, 1); - LOGE_IF(result<0, "error sending wake message (%s)", strerror(errno)); + ALOGE_IF(result<0, "error sending wake message (%s)", strerror(errno)); } return err; } @@ -306,14 +306,14 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count) n = poll(mPollFds, numFds, nbEvents ? 0 : polltime); } while (n < 0 && errno == EINTR); if (n<0) { - LOGE("poll() failed (%s)", strerror(errno)); + ALOGE("poll() failed (%s)", strerror(errno)); return -errno; } if (mPollFds[wake].revents & POLLIN) { char msg; int result = read(mPollFds[wake].fd, &msg, 1); - LOGE_IF(result<0, "error reading from wake pipe (%s)", strerror(errno)); - LOGE_IF(msg != WAKE_MESSAGE, "unknown message on wake queue (0x%02x)", int(msg)); + ALOGE_IF(result<0, "error reading from wake pipe (%s)", strerror(errno)); + ALOGE_IF(msg != WAKE_MESSAGE, "unknown message on wake queue (0x%02x)", int(msg)); mPollFds[wake].revents = 0; } if(mPollFds[mpl_power].revents & POLLIN) { diff --git a/overlay/packages/apps/Settings/res/values-ru/arrays.xml b/overlay/packages/apps/Settings/res/values-ru/arrays.xml index 0e013b0..b4d5e6e 100644 --- a/overlay/packages/apps/Settings/res/values-ru/arrays.xml +++ b/overlay/packages/apps/Settings/res/values-ru/arrays.xml @@ -21,11 +21,11 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string-array name="screen_timeout_entries"> - <item msgid="5314770629356662739">"15 сек."</item> - <item msgid="8672738773876256432">"30 сек."</item> - <item msgid="465923292941002466">"1 мин."</item> - <item msgid="7955177189296850016">"2 мин."</item> - <item msgid="1244255986255344525">"5 мин."</item> - <item msgid="294890536998091748">"10 мин."</item> + <item msgid="5314770629356662739">"15 секунд"</item> + <item msgid="8672738773876256432">"30 секунд"</item> + <item msgid="465923292941002466">"1 минута"</item> + <item msgid="7955177189296850016">"2 минуты"</item> + <item msgid="1244255986255344525">"5 минут"</item> + <item msgid="294890536998091748">"10 минут"</item> </string-array> </resources> diff --git a/recovery/Android.mk b/recovery/Android.mk index 2fc8313..770feee 100644 --- a/recovery/Android.mk +++ b/recovery/Android.mk @@ -5,7 +5,7 @@ include $(CLEAR_VARS) LOCAL_MODULE_TAGS := eng LOCAL_C_INCLUDES += bootable/recovery -LOCAL_SRC_FILES := recovery_ui.c +LOCAL_SRC_FILES := recovery_ui.cpp # should match TARGET_RECOVERY_UI_LIB set in BoardConfig.mk LOCAL_MODULE := librecovery_ui_tuna diff --git a/recovery/recovery_ui.c b/recovery/recovery_ui.c deleted file mode 100644 index 50f8383..0000000 --- a/recovery/recovery_ui.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <linux/input.h> -#include <sys/stat.h> -#include <errno.h> -#include <string.h> - -#include "recovery_ui.h" -#include "common.h" - -char* MENU_HEADERS[] = { "Volume up/down to move highlight;", - "power button to select.", - "", - NULL }; - -char* MENU_ITEMS[] = { "reboot system now", - "apply update from /cache", - "wipe data/factory reset", - "wipe cache partition", - NULL }; - -void device_ui_init(UIParameters* ui_parameters) { -} - -int device_recovery_start() { - // recovery can get started before the kernel has created the EMMC - // devices, which will make the wipe_data operation fail (trying - // to open a device that doesn't exist). Hold up the start of - // recovery for up to 5 seconds waiting for the userdata partition - // block device to exist. - - const char* fn = "/dev/block/platform/omap/omap_hsmmc.0/by-name/userdata"; - - int tries = 0; - int ret; - struct stat buf; - do { - ++tries; - ret = stat(fn, &buf); - if (ret) { - printf("try %d: %s\n", tries, strerror(errno)); - sleep(1); - } - } while (ret && tries < 5); - if (!ret) { - printf("stat() of %s succeeded on try %d\n", fn, tries); - } else { - printf("failed to stat %s\n", fn); - } - - // We let recovery attempt to carry on even if the stat never - // succeeded. - - return 0; -} - -int device_toggle_display(volatile char* key_pressed, int key_code) { - // hold power and press volume-up - return key_pressed[KEY_POWER] && key_code == KEY_VOLUMEUP; -} - -int device_reboot_now(volatile char* key_pressed, int key_code) { - // Reboot if the power key is pressed five times in a row, with - // no other keys in between. - static int presses = 0; - if (key_code == KEY_POWER) { // power button - ++presses; - return presses == 5; - } else { - presses = 0; - return 0; - } -} - -int device_handle_key(int key_code, int visible) { - if (visible) { - switch (key_code) { - case KEY_DOWN: - case KEY_VOLUMEDOWN: - return HIGHLIGHT_DOWN; - - case KEY_UP: - case KEY_VOLUMEUP: - return HIGHLIGHT_UP; - - case KEY_ENTER: - case KEY_POWER: // crespo power - return SELECT_ITEM; - } - } - - return NO_ACTION; -} - -int device_perform_action(int which) { - return which == 1 ? ITEM_APPLY_CACHE : which; -} - -int device_wipe_data() { - return 0; -} diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp new file mode 100644 index 0000000..0c8b8f9 --- /dev/null +++ b/recovery/recovery_ui.cpp @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <linux/input.h> +#include <sys/stat.h> +#include <errno.h> +#include <string.h> + +#include "common.h" +#include "device.h" +#include "screen_ui.h" + +const char* HEADERS[] = { "Volume up/down to move highlight;", + "power button to select.", + "", + NULL }; + +const char* ITEMS[] = { "reboot system now", + "apply update from ADB", + "apply update from USB drive", + "wipe data/factory reset", + "wipe cache partition", + NULL }; + +class TunaUI : public ScreenRecoveryUI { + public: + TunaUI() : + consecutive_power_keys(0) { + } + + virtual KeyAction CheckKey(int key) { + if (IsKeyPressed(KEY_POWER) && key == KEY_VOLUMEUP) { + return TOGGLE; + } + if (key == KEY_POWER) { + ++consecutive_power_keys; + if (consecutive_power_keys >= 7) { + return REBOOT; + } + } else { + consecutive_power_keys = 0; + } + return ENQUEUE; + } + + private: + int consecutive_power_keys; +}; + + +class TunaDevice : public Device { + public: + TunaDevice() : + ui(new TunaUI) { + } + + RecoveryUI* GetUI() { return ui; } + + int HandleMenuKey(int key_code, int visible) { + if (visible) { + switch (key_code) { + case KEY_DOWN: + case KEY_VOLUMEDOWN: + return kHighlightDown; + + case KEY_UP: + case KEY_VOLUMEUP: + return kHighlightUp; + + case KEY_POWER: + return kInvokeItem; + } + } + + return kNoAction; + } + + BuiltinAction InvokeMenuItem(int menu_position) { + switch (menu_position) { + case 0: return REBOOT; + case 1: return APPLY_ADB_SIDELOAD; + case 2: return APPLY_EXT; + case 3: return WIPE_DATA; + case 4: return WIPE_CACHE; + default: return NO_ACTION; + } + } + + const char* const* GetMenuHeaders() { return HEADERS; } + const char* const* GetMenuItems() { return ITEMS; } + + private: + RecoveryUI* ui; +}; + +Device* make_device() { + return new TunaDevice; +} |