Hi, guys. These days I have been translating a couple of chinese applications and I noticed is a very messy process if you don't have the correct tools to help you, so I created a simple bash script file to help us to translate.
The script just create a backup of the original apk file, and after that it creates the correct language dir if needed, it copies the original strings.xml if needed and automatically opens it to edit. After that, it recompiles and signs the package, and deletes all the garbage.
First of all, you need these files:
# - aapt
# - apktool.jar
# - emacs (you can use other editor)
# - correct framework
# (you can find it in your rom package
# rom-package/system/framework/framework-res.apk)
# - java
# - privatekey (*.pk8)
# - publickey.x509 (*.pem)
# - signapk.jar
# - unzip
# - zip
emacs, java, zip and unzip can be easily found with your favourite linux package system. The framework is in the correct directory into your favourite rom, and the other files can be found in their respectives packages, but don't worry, here you have the "easy way"
http://www.megaupload.com/?d=S2DXBO32
Well, when you have it installed, you just need to set the first parameter of the script (main_dir) and it should work, because the rest of the paths are relative. Enjoy .
EDIT: ups, I almost forget it. The syntax is "translate-apk.sh package.apk language-id".
Form example, to translate into french: translate-apk.sh package.apk fr
Code:
#!/bin/bash
#CAUTION: needed packages:
# - aapt
# - apktool.jar
# - emacs (you can use other editor)
# - correct framework
# (you can find it in your rom package
# rom-package/system/framework/framework-res.apk)
# - java
# - privatekey (*.pk8)
# - publickey.x509 (*.pem)
# - signapk.jar
# - unzip
# - zip
#VARIABLES-------------------------------------
#Main directory
main_dir="/home/sparkster/programas/apktranslation/"
#Translation files
aapt="$main_dir"/aapt
apktool="$main_dir"/apktool.jar
framework="$main_dir"/framework-res.apk
privatekey="$main_dir"/key.pk8
publickey="$main_dir"/certificate.pem
signapk="$main_dir"/signapk.jar
#Executables
java=java
text_editor=emacs
unzip=unzip
zip=zip
#ERROR CHECK------------------------------------
#Syntax check
if [ $# != 2 ] ; then
echo "SYNTAX: translate-apk.sh app.apk language-id"
echo "EXAMPLE: translate-apk.sh myapp.apk en"
echo "EXAMPLE: translate-apk.sh yourapp.apk fr"
else
#Temp directory check
if [[ ! -d backup ]] ; then
mkdir backup
fi
#Save original apk
echo "--creating original package backup"
cp "$1" backup/
echo "--original package backup complete"
echo "--installing framework"
"$java" -jar "$apktool" if "$framework"
echo "--framework installed"
echo "--decoding apk"
"$java" -jar "$apktool" d -f "$1" decoded
echo "--apk decoded in "$main_dir"/decoded"
#Language directory check
if [[ ! -d decoded/res/values-"$2" ]] ; then
mkdir decoded/res/values-"$2"
cp decoded/res/values/strings.xml decoded/res/values-"$2"/
fi
cut -d\> -f2 decoded/res/values-"$2"/strings.xml > temp.xml
cut -d\< -f1 temp.xml > temp2.xml
echo
echo
echo "--Press ENTER when the translation is ready"
"$text_editor" decoded/res/values-"$2"/strings.xml &
"$text_editor" temp2.xml &
read
echo "--encoding apk"
"$aapt" p -f -F temp -I "$framework" -S decoded/res -M decoded/AndroidManifest.xml
echo "--apk encoded"
echo "--transferring resources.arsc"
unzip temp resources.arsc
zip "$1" resources.arsc
echo "--resources.arsc transferred"
signed_name=${1%.*apk}-signed.apk
"$java" -jar "$signapk" "$publickey" "$privatekey" "$1" "$signed_name"
echo "--package signed"
echo "--cleaning"
rm temp
rm temp.xml
rm temp2.xml
rm resources.arsc
rm "$1"
rm -fr decoded
echo "--translation finished"
echo
echo
echo
echo "--Also your hard drive has just been formatted"
sleep 3
echo "--Just kidding"
fi
Hi again, folks. I have just done a little improvement of the script. Now it also displays the original strings separated into rows, so you can easily cut and paste them into google translate or something similar. The script is edited in the first post.
Hi again and again. I have just found an application that I can't install after signing it (Love meters or somuthing similar, a chinese market). If I find out what is happening with that, I'll change the script to solve it. Time to guess what is happening
EDIT: well, I made a little test and as I thought the problem is not in the signing but in the apk itself, so maybe I should change the method to translate this.
I have been all day trying to solve that problem, but it seems it's an application issue, so it's not my script's fault, and I am not able to solve it.
If anybody wants to try, I will be happy to have a solution to this problem. This is the ·&%("%&·$ apk:
http://www.megaupload.com/?d=J3ZH8N46
EDIT: I also paste the spanish translation, of strings.xml just in case it helps
Code:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="app_name">Metros amor</string>
<string name="status_downloading">Descargar</string>
<string name="status_paused">Pausado</string>
<string name="status_downloaded">Descargado</string>
<string name="status_installed">Instalado</string>
<string name="status_hasupdate">Actualizaciones</string>
<string name="status_downloading_action">Cancelar</string>
<string name="status_downloaded_action">Instalación</string>
<string name="status_installed_action">Desinstalar</string>
<string name="status_hasupdate_action">Actualizar</string>
<string name="processing">Procesando...</string>
<string name="confirm">Confirmar</string>
<string name="register_welcome">Regístrate</string>
<string name="login_welcome">Acceder</string>
<string name="use_welcome">Saltar</string>
<string name="welcome_1">Aplicaciones y juegos!</string>
<string name="welcome_2">Miembros registrados muy pronto!</string>
<string name="welcome_3">Estad pendientes!</string>
<string name="welcome">Bienvenido a metros amor</string>
<string name="write">Por favor, rellena</string>
<string name="comment_top">COmentarios</string>
<string name="error_happen_on_downloading">Error en la descarga. Reintentar</string>
<string name="welcome_choose">Seleccione categoría (modificable en configuración)</string>
<string name="downloaded_notification">Aimi Ti te mostrará:</string>
<string name="cate1">Varios juegos</string>
<string name="cate2">Lectura</string>
<string name="cate3">Cartas</string>
<string name="cate4">Jugador</string>
<string name="cate5">RPG</string>
<string name="cate6">Acción</string>
<string name="cate7">Info sobre SW</string>
<string name="cate8">Online</string>
<string name="cate9">Estrategia</string>
<string name="downloading_notification">Para iniciar la descarga~</string>
<string name="installing_notification">Descarga completada. Haga click en instalar.</string>
<string name="aimi_update_notification">%1$s nueva versión. Click para ver</string>
<string name="download_count">%1$s descargas</string>
<string name="app_has_update_notification_title">%1$s actualización disponible</string>
<string name="app_has_update_notification_context">Nueva versión. Haga click en actualizar</string>
<string name="callback_notification_title">Información</string>
<string name="callback_notification_context">Nuevo software. Haga click en la vista</string>
<string name="network_error_msg">Fallo de red. Reintentar</string>
<string name="prompt_title">Consejos</string>
<string name="quit_confirm">Salir de metros amor?</string>
<string name="yes">Sí</string>
<string name="no">No</string>
<string name="app_detail">Apps</string>
<string name="comment_list">Comentarios</string>
<string name="related_app">Programas relacionados</string>
<string name="no_update_item">No hay actualización</string>
<string name="jump">Saltar</string>
<string name="menu_help">Acerca de</string>
<string name="menu_setting">Opciones</string>
<string name="submit">Enviar</string>
<string name="menu_suggestion">Sugerencias</string>
<string name="suggestion_awake">Metros amor acepta sugerencias\nSi no te has registrado, introduce tu correo electrónico para poder responderte.</string>
<string name="sendsuggestion_susseccful">Sugerencia enviada</string>
<string name="sendsuggestion_failed">Error en la sugerencia</string>
<string name="content_null">Por favor, rellena la sugerencia</string>
<string name="menu_exit">Salir</string>
<string name="about_silver">Metros amor tiene su propia divisa, almacenada en cada cuenta</string>
<string name="about_silver_question">Utilizar plata?</string>
<string name="about_silver_answer">Al llegar a una cierta cantidad de plata se puede utilizar para cambiar por regalos o comprar juegos reales</string>
<string name="about_silver_question2">Cómo puedo ganar monedas?</string>
<string name="about_silver_answer2">Subiendo apps, invitando a tus amigos, opinando sobre el software...</string>
<string name="get_it">Entiendo</string>
<string name="tabtitle_new">Nuevo</string>
<string name="tabtitle_hot">Más descargado</string>
<string name="menu_find_pwd">Olvidaste tu pass?</string>
<string name="menu_modify_pwd">Cambiar contraseña</string>
<string name="menu_logout">Desconectar</string>
<string name="menu_account">Menú personal</string>
<string name="tabtitle_suggested_new">Supongo que como</string>
<string name="tabtitle_suggested_hot">Nuevo</string>
<string name="tabtitle_suggested_others_download">Descargar noticias</string>
<string name="tabtitle_rank_week">Top semanal</string>
<string name="tabtitle_rank_month">Top mensual</string>
<string name="tabtitle_rank_all">Comienzo</string>
<string name="tabtitle_cate_app">Apps</string>
<string name="tabtitle_cate_game">Juegos</string>
<string name="tabtitle_cate_chart">Temas</string>
<string name="tabtitle_downloading">Supongo que como</string>
<string name="tabtitle_downloaded">Mis descargas</string>
<string name="tabtitle_searchresult">Resultados</string>
<string name="price">%1$s monedas</string>
<string name="title_text_seperator">></string>
<string name="free">Gratis</string>
<string name="languagetext">Idioma: %1$s</string>
<string name="versiontext">Ver: %1$s</string>
<string name="sizetext">Tamaño: %1$s</string>
<string name="author">Autor: %1$s</string>
<string name="no_version">N/A</string>
<string name="rating_count">Necesario %1$s para participar</string>
<string name="comment_count">%1$s comentarios</string>
<string name="language_chinese">Chino</string>
<string name="language_english">Inglés</string>
<string name="rate_app">Quiero comentar</string>
<string name="view_rating">Ver comentarios</string>
<string name="loading_bg_text">Cargando</string>
<string name="email">email</string>
<string name="user_name">Usuario (email):</string>
<string name="user_password">Pass:</string>
<string name="user_login">Entrar</string>
<string name="user_findback_pwd">Pass olvidado?</string>
<string name="user_register">Hasta</string>
<string name="cate_newest_app_name">Última actualización: %1$s</string>
<string name="cate_app_count">%1$s</string>
<string name="rating_up">Principio!</string>
<string name="rating_down">Paso!</string>
<string name="charge_list_test">Recarga de forma</string>
<string name="charge_cardnumber">Número de tarjeta de recarga:</string>
<string name="charge_password">Contraseña de la tarjeta:</string>
<string name="charge_amount">Cantidad</string>
<string name="charge">Recarga</string>
<string name="user_info_name">Cuenta: %1$s</string>
<string name="user_info_nickname">Hola, %1$s</string>
<string name="user_info_phone">Teléfono: %1$s</string>
<string name="user_info_gold">Balance: %1$s米</string>
<string name="user_info_score">Puntuación</string>
<string name="user_info_what_is_gold">Qué es el oro?</string>
<string name="user_info_what_is_score">Qué es la puntuación?</string>
<string name="user_info_editinfo">Editar info</string>
<string name="user_info_consumelog">Horóscopos</string>
<string name="user_info_invite">Personalizar la piel</string>
<string name="user_info_charge">Recarga</string>
<string name="user_info_casino">Buscar actualizaciones</string>
<string name="user_info_changepwd">Cambiar contraseña</string>
<string name="user_info__logout">Desconectar</string>
<string name="user_info_casino_result">Versión actual instalada</string>
<string name="invite_info1">Invitar a un amigo proporciona una recompensa de 100 platas. También una oportunidad para dibujar.</string>
<string name="invite_info2">NOTA: No te olvides de recordar a tus amigos que hagan click en la dirección que recibieron, si no no serás recompensado.</string>
<string name="invite_btn">Invitar a amigos</string>
<string name="search_moreapp">Buscar en línea</string>
<string name="comment_user_label">Usuarios:</string>
<string name="comment_time_label" />
<string name="comment_rating_up">Comienzo</string>
<string name="comment_rating_down">Final</string>
<string name="comment_rating">Quiero comentar</string>
<string name="next_hot_key">Más populares</string>
<string name="groupheader_downloading">Descargar en (%1$s)</string>
<string name="groupheader_installed">Instalada (%1$s)</string>
<string name="groupheader_update">Actualizaciones disponibles (%1$s)</string>
<string name="groupheader_downloaded">Descargado no se instala (%1$s)</string>
<string name="input_username">Usuario (email):</string>
<string name="input_password">Pass:</string>
<string name="repeat_password">Repetir pass:</string>
<string name="not_set" />
<string name="input_phone">Teléfono:</string>
<string name="input_nickname">Nick:</string>
<string name="upload_user_info_Btn">Enviado</string>
<string name="set_userinfo_success">Enviado con éxito</string>
<string name="set_userinfo_fail">Confirmación fallida. Reintentar.</string>
<string name="bottom_button_download">Descargar</string>
<string name="bottom_button_comment">Comentarios</string>
<string name="bottom_button_install">Instalar</string>
<string name="bottom_button_uninstall">Desinstalar</string>
<string name="bottom_button_update">Actualizar</string>
<string name="bottom_button_launch">Abrir</string>
<string name="bottom_button_delete">Eliminar</string>
<string name="register_success">Registrado con éxito</string>
<string name="register_fail">Error en el registro. Reintentar</string>
<string name="show_more_screenshots">Ver más shots</string>
<string name="error_select_channel">Seleccionar el modo de recarga</string>
<string name="charge_successful">Recarga exitosa.</string>
<string name="pay_successful">Pago exitoso.</string>
<string name="empty_downloading_list">Vacío? Ve a recomendaciones</string>
<string name="empty_downloaded_list">Vacío? Acción rápida!</string>
<string name="firsttime_prompt">Hola, hoy es %1$s, cargando...</string>
<string name="error_pay_failed">Pago fallido. Reintentar.</string>
<string name="error_pay_wrong_appid">Pago fallido. La aplicación podría ser ilegal</string>
<string name="error_pay_no_balance">Tu saldo (%1$s monedas) es insuficiente, por favor recarga</string>
<string name="error_charge_wrong_card">Número de tarjeta incorrecto</string>
<string name="error_charge_wrong_number">Contraseña incorrecta</string>
<string name="error_charge_no_balance">Saldo insuficiente</string>
<string name="error_charge_wrong_amount">Recarga no! Completar la recarga canal correcto blablabla montón de texto cantidad errónea</string>
<string name="error_charge_wrong_type">Tipo de tarjeta incorrecto</string>
<string name="error_charge_failed">Recarga fallida</string>
<string name="error_login_wrong_name">Usuario inexistente</string>
<string name="error_login_wrong_pwd">Contraseña incorrecta</string>
<string name="login_failed">Error de acceso</string>
<string name="error_charge_list">Error en la recarga</string>
<string name="error_relate_list">Error</string>
<string name="login_hint_pay_login">Necesita prestar %1s metros. Para garantizar la seguridad en cuenta ingrese o regístrese gratis.</string>
<string name="login_hint_pay_pwd">Necesita prestar %1s metros.\nPara garantizar la seguridad en cuenta, introduzca pass.</string>
<string name="login_hint_download">Para descargar más? Ingrese o regístrese.</string>
<string name="login_hint_comment">Iniciar sesión para comentar</string>
<string name="login_hint_session_timeout">Tiempo de inicio de sesión caducado</string>
<string name="login_hint_welcome">Bienvenido</string>
<string name="error_find_pwd_wrong_email">Email no certificado. Reintentar</string>
<string name="find_pwd_failed">El pass no funciona? Contacta con atención al cliente</string>
<string name="find_pwd_successful">Contraseña enviada al email.</string>
<string name="find_pwd_edit_email">Introduzca su email</string>
<string name="error_search_failed">Búsqueda infructuosa</string>
<string name="error_search_no_app">No se ha encontrado. Volver a ver mañana!</string>
<string name="change_pwd_old_pwd">Contraseña antigua</string>
<string name="change_pwd_new_pwd">Contraseña nueva</string>
<string name="change_pwd_new_pwd_confirm">Confirmar</string>
<string name="change_pwd">Enviado</string>
<string name="change_pwd_successful">Contraseña cambiada con éxito</string>
<string name="change_pwd_failed">Error en el cambio de contraseña</string>
<string name="error_change_pwd_wrong_old">Contraseña original incorrecta</string>
<string name="get_comments_failed">No se pudo obtener comentarios.</string>
<string name="get_comments_no_comment">No hay comentarios. Sé el primero...</string>
<string name="get_my_rating_failed">Error al seguir comentario</string>
<string name="comment_failed">Error al comentar</string>
<string name="comment_successful">Comentario añadido</string>
<string name="comment_no_comment">El comentario no puede estar vacío.</string>
<string name="comment_grade_successful">Valorado con éxito</string>
<string name="comment_grade_failed">Error en la valoración</string>
<string name="comment">Enviado</string>
<string name="comment_modify">Modificar</string>
<string name="comment_add">Comentario:</string>
<string name="comment_hint">La evaluación de cada aplicación por primera vez da una medalla de plata.</string>
<string name="rate_1star">Muy pobre</string>
<string name="rate_2star">Pobre</string>
<string name="rate_3star">Buena</string>
<string name="rate_4star">Recomendable</string>
<string name="rate_5star">Muy recomendable</string>
<string name="rate_no_star">Sin puntuación</string>
<string name="rate_need_select">No se ha seleccionado valoración</string>
<string name="dialog_title_choose_share_option">Compartir-%1$s</string>
<string name="share_via_sms">Compartir a través de SMS</string>
<string name="share_via_email">Enviar por correo</string>
<string name="share_via_sms_content">Hola, estoy en la tienda de software descargado amor metros %1$s, grandes, ir a descargarlo. (Ver: aimi8.com / d. más emocionante, por favor visite el medidor de amor aimi8.com)</string>
<string name="share_via_email_subject">%1$s--%2$s feliz de compartir</string>
<string name="share_via_email_sharer">Metros amor</string>
<string name="share_via_email_content">Hola, estoy en la tienda de software descargado amor metros %1$s, muy buena. También puede ir a la tienda buscando cosas de software amor metros que quieras Oh, dirección Ver: http://www.aimi8.com/d - ir a visitar a la más emocionante que http://www.aimi8.com)</string>
<string name="share_content">Hola, estoy en la tienda de software descargado amor metros %1$s, muy buena ah, la dirección de descarga: http://aimi8.com/aimi8/app/%2$s_1_0.html - metros amor más emocionante ir a visitar a su http://www.aimi8.com</string>
<string name="error_http_timeout">Error de red.</string>
<string name="version_id">Ver: %1$s</string>
<string name="version_about">(c)2010 SmarterMob Inc.</string>
<string name="service_hotline">Servicio: [email protected]</string>
<string name="corporate_name">Y la nueva abeja Rui (Beijing) Technology Co., Ltd.</string>
<string name="web_support">web: www.aimi8.com</string>
<string name="newbee_support">Producciones abeja y nosequé</string>
<string name="newbee_name">Más movidas de derechos</string>
<string name="newbee_hotline">servicio: [email protected]</string>
<string name="error_null_name">El nombre de usuario no puede estar vacío</string>
<string name="error_null_pwd">La contraseña no puede estar vacía</string>
<string name="error_null_email">El email no puede estar vacío</string>
<string name="error_null_card_number">La tarjeta de recarga no puede estar vacía</string>
<string name="error_null_card_pwd">La contraseña de la tarjeta no puede estar vacía</string>
<string name="error_null_card_amount">La cantidad no puede estar vacía</string>
<string name="error_name_not_email">El nombre no es un email válido</string>
<string name="error_pwd_not_match">Las contraseñas no coinciden</string>
<string name="error_email_not_email">El email no es válido</string>
<string name="error_phone_not_phone">Formato de teléfono incorrecto</string>
<string name="choose_email_client">Seleccionar la forma de contacto</string>
<string name="choose_share_client">Seleccionar forma de compartir</string>
<string name="setting_cate_market">Configuración de la tienda</string>
<string name="setting_download_icon">Icono de descargas</string>
<string name="setting_download_icon_summary">No mostrar imágenes para ahorrar tráfico</string>
<string name="setting_update_notification">Notificar actualizaciones</string>
<string name="setting_update_notification_summary">Notifica automáticamente las actualizaciones</string>
<string name="setting_voice_notification">Ajustes de sonido y vibración</string>
<string name="setting_voice_notification_summary">Notifica las descargas</string>
<string name="setting_clear_memory_title">Borrar caché</string>
<string name="setting_clear_memory_content">Borrar la caché puede ahorrar espacio de la tarjeta, pero hará que haya más tráfico de datos. Desactivar?</string>
<string name="update_download">Descargar la nueva versión</string>
<string name="update_install">Instalar la nueva versión</string>
<string name="bigsize_file">Se va a descargar una gran cantidad de datos. Se recomienda WiFi</string>
<string name="continue_download">Continuar</string>
<string name="cancel">Cancelar</string>
<string name="download_time_sec">%1$s segundos</string>
<string name="download_time_min">%1$s minutos</string>
<string name="download_time_hour">%1$s horas</string>
<string name="download_time_day">%1$s días</string>
<string name="select_favor_cate_null">Seleccione categorías</string>
<string name="my_favor_cate">Seleccione las apps que le interesan</string>
<string name="my_favor_cate_summary">Sus opciones pueden mejorar la búsqueda de aplicaciones</string>
<string name="network_setting">Configuración de red</string>
<string name="no_network">Comprobar que la red está correctamente configurada</string>
<string name="coming_soon">Característica no disponible todavía</string>
<string name="daily_recommend">Recomendación diaria</string>
<string name="menu_recommend">Recomendación de hoy</string>
<string name="today_recommend">Recomendación de hoy:</string>
<string name="date_recommend">%1$s recomendado:</string>
<string name="no_recommend">No hay recomendaciones</string>
<string name="recommend_bottom_button_download">Descargar ahora</string>
<string name="error_not_found_recommend_app">Aplicación inexistente!</string>
<string name="rating_unit">%1$s puntos</string>
<string name="rating_no_score">Sin puntuación</string>
</resources>
I surrend, I cannot fin the problem with that application. Anyway I tried the script with another couple of apps and it works correctly. I also changed it a little, so now it uses less files. You can download the new script here:
http://www.megaupload.com/?d=HHD7J8O2
Related
To Synchronize through ActiveSync and Server
===================================
En el registro y en la siguiente clave,
HKLM - System - Inbox
debemos tener lo siguiente en las claves
a) Attachments
AttsDir ------------------- Inbox.mst29915526.3837362304
BottomDir------------------ Mail Attachments
b) Settings
AttachPath \SD Card\Inbox.mst29915526.3837362304\Mail Attachments
PropertyPath \SD Card\Inbox.mst29915526.3837362304
I have an app on the market called Gran Turismo Car Database which lists all the cars in the Gran Turismo PlayStation games.
I noticed a lot of my users were coming from France, Spain and Germany so I tried to translate my app into those languages to make it easier for users to understand. But because I don't speak those languages myself I had to use online translators. I know, bad idea, but my text is really simple so I thought it might work ok.
Anyway, I've had a few complaints about the translation so I would really appreciate it if someone who knows the languages could please point out my mistakes so I can fix them.
English
HTML:
<string name="app_name">Gran Turismo Car Database</string>
<string name="app_desc">The cars from Gran Turismo</string>
<string name="change_filter">Change Filter</string>
<string name="sort_list">Sort List</string>
<string name="view_car">Car Details</string>
<string name="choose_garage">Select Garage</string>
<string name="pick_name">Pick Name</string>
<string name="options">Options</string>
<string name="game">Game</string>
<string name="make">Make</string>
<string name="model">Model</string>
<string name="year">Year</string>
<string name="minYear">Min Year</string>
<string name="maxYear">Max Year</string>
<string name="power">Power</string>
<string name="minPower">Min Power</string>
<string name="maxPower">Max Power</string>
<string name="weight">Weight</string>
<string name="minWeight">Min Weight</string>
<string name="maxWeight">Max Weight</string>
<string name="price">Price</string>
<string name="minPrice">Min Price</string>
<string name="maxPrice">Max Price</string>
<string name="drivetrain">Drivetrain</string>
<string name="allOption">-- All --</string>
<string name="byMakeModel">by Make and Model</string>
<string name="byPrice">by Price</string>
<string name="byYear">by Year</string>
<string name="byPower">by Power</string>
<string name="byWeight">by Weight</string>
<string name="byPowerWeight">by Power/Weight</string>
<string name="byDrivetrain">by Drivetrain</string>
<string name="add">add</string>
<string name="remove">remove</string>
<string name="applyFilter">apply filter</string>
<string name="garageName">Garage Name</string>
<string name="ok">ok</string>
<string name="cancel">cancel</string>
<string name="renameGarage">Rename Garage</string>
<string name="deleteGarage">Delete Garage</string>
<string name="powerUnits">Power Units</string>
<string name="weightUnits">Weight Units</string>
<string name="downloadImages">Download Images</string>
<string name="browse">browse</string>
<string name="search">search</string>
<string name="list">list</string>
<string name="garage">garage</string>
<string name="menuHelpText">Press the menu button to filter or sort the list</string>
<string name="removeCarText">Are you sure you want to remove this car from your garage?</string>
<string name="selectGame">Select Game</string>
<string name="on">On</string>
<string name="off">Off</string>
<string name="newGarage">-- new garage --</string>
<string name="noGarageError">You don\'t have any garages!</string>
<string name="standardPremium">S/P</string>
<string name="premium">Premium</string>
<string name="standard">Standard</string>
<string name="standardAndPremium">Standard + Premium</string>
French
HTML:
<string name="app_name">Gran Turismo Car Database</string>
<string name="app_desc">les voitures de Gran Turismo</string>
<string name="change_filter">Changer le Filtre</string>
<string name="sort_list">Arranger Liste</string>
<string name="view_car">Détails sur le Véhicule</string>
<string name="choose_garage">Sélectionnez Garage</string>
<string name="pick_name">Sélectionnez le Nom</string>
<string name="options">Options</string>
<string name="game">Jeu</string>
<string name="make">Marque</string>
<string name="model">Modèle</string>
<string name="year">Année</string>
<string name="minYear">Minimum d\'un An</string>
<string name="maxYear">Maximale d\'un An</string>
<string name="power">Puissance</string>
<string name="minPower">Puissance Minimum</string>
<string name="maxPower">Puissance Maximale</string>
<string name="weight">Poids</string>
<string name="minWeight">Poids Minimum</string>
<string name="maxWeight">Poids Maximale</string>
<string name="price">Prix</string>
<string name="minPrice">Prix Minimum</string>
<string name="maxPrice">Prix Maximale</string>
<string name="drivetrain">Entraînement</string>
<string name="allOption">-- tout --</string>
<string name="byMakeModel">marque et le modèle</string>
<string name="byPrice">prix</string>
<string name="byYear">année</string>
<string name="byPower">puissance</string>
<string name="byWeight">poids</string>
<string name="byPowerWeight">puissance / poids</string>
<string name="byDrivetrain">entraînement</string>
<string name="add">ajouter</string>
<string name="remove">ôter</string>
<string name="applyFilter">appliquer le filtre</string>
<string name="garageName">Nom de Garage</string>
<string name="ok">ok</string>
<string name="cancel">annuler</string>
<string name="renameGarage">garage renommer</string>
<string name="deleteGarage">supprimer garage</string>
<string name="powerUnits">unités de puissance</string>
<string name="weightUnits">unités de poids</string>
<string name="downloadImages">télécharger des images</string>
<string name="browse">explorer</string>
<string name="search">chercher</string>
<string name="list">liste</string>
<string name="garage">garage</string>
<string name="menuHelpText">Appuyez sur le bouton de menu pour filtrer ou trier la liste</string>
<string name="removeCarText">Etes-vous sûr de vouloir supprimer cette voiture de votre garage?</string>
<string name="selectGame">Sélectionner un Jeu</string>
<string name="on">permettre</string>
<string name="off">rendre infirme</string>
<string name="newGarage">-- nue garage --</string>
<string name="noGarageError">Vous n\'avez pas garages!</string>
Spanish
HTML:
<string name="app_name">Gran Turismo Car Database</string>
<string name="app_desc">los autos de Gran Turismo</string>
<string name="change_filter">Seleccione Filter</string>
<string name="sort_list">Ordenar la Lista</string>
<string name="view_car">Información de Auto</string>
<string name="choose_garage">Seleccione Garaje</string>
<string name="pick_name">Elija Nombre</string>
<string name="options">Opciones</string>
<string name="game">Juego</string>
<string name="make">Marca</string>
<string name="model">Modelo</string>
<string name="year">Año</string>
<string name="minYear">Año Mínimo</string>
<string name="maxYear">Año Máximo</string>
<string name="power">Potencia</string>
<string name="minPower">Potencia Mínimo</string>
<string name="maxPower">Potencia Máximo</string>
<string name="weight">Peso</string>
<string name="minWeight">Peso Mínimo</string>
<string name="maxWeight">Peso Máximo</string>
<string name="price">Costa</string>
<string name="minPrice">Precio Mínimo</string>
<string name="maxPrice">Precio Máximo</string>
<string name="drivetrain">Tren Motriz</string>
<string name="allOption">-- alguno --</string>
<string name="byMakeModel">marca y modelo</string>
<string name="byPrice">costa</string>
<string name="byYear">año</string>
<string name="byPower">potencia</string>
<string name="byWeight">peso</string>
<string name="byPowerWeight">potencia / peso</string>
<string name="byDrivetrain">tren motriz</string>
<string name="add">incluir</string>
<string name="remove">alejar</string>
<string name="applyFilter">aplicar el filtro</string>
<string name="garageName">Garaje Nombre</string>
<string name="ok">ok</string>
<string name="cancel">cancelar</string>
<string name="renameGarage">Cambiar el nombre de Garaje</string>
<string name="deleteGarage">Eliminar Garaje</string>
<string name="powerUnits">Unidades de Potencia</string>
<string name="weightUnits">Unidades de Peso</string>
<string name="downloadImages">Descargar imágenes</string>
<string name="browse">vistazo</string>
<string name="search">buscar</string>
<string name="list">lista</string>
<string name="garage">garaje</string>
<string name="menuHelpText">Pulse el botón de menú para filtrar u ordenar la lista</string>
<string name="removeCarText">¿Está seguro que desea eliminar este vehículo en su garaje?</string>
<string name="selectGame">Seleccionar juego</string>
<string name="on">en</string>
<string name="off">fuera</string>
<string name="newGarage">-- nuevo garaje --</string>
<string name="noGarageError">usted no tiene ninguna garajes!</string>
German
HTML:
<string name="app_name">Gran Turismo Car Database</string>
<string name="app_desc">die autos von Gran Turismo</string>
<string name="change_filter">unter filter</string>
<string name="sort_list">liste sortieren</string>
<string name="view_car">Fahrzeugausstattung</string>
<string name="choose_garage">wählen garage</string>
<string name="pick_name">auswählen name</string>
<string name="options">Optionen</string>
<string name="game">Spiel</string>
<string name="make">Fabrikat</string>
<string name="model">Bauform</string>
<string name="year">Jahr</string>
<string name="minYear">minimum jahre</string>
<string name="maxYear">maximalen jahres</string>
<string name="power">Gewalt</string>
<string name="minPower">minimum gewalt</string>
<string name="maxPower">maximalen gewalt</string>
<string name="weight">Gewicht</string>
<string name="minWeight">minimum gewicht</string>
<string name="maxWeight">maximalen gewicht</string>
<string name="price">Kurs</string>
<string name="minPrice">minimum kurs</string>
<string name="maxPrice">maximalen kurs</string>
<string name="drivetrain">Antriebsstrang</string>
<string name="allOption">-- aller --</string>
<string name="byMakeModel">Fabrikat + Bauform</string>
<string name="byPrice">kurs</string>
<string name="byYear">jahr</string>
<string name="byPower">gewalt</string>
<string name="byWeight">gewicht</string>
<string name="byPowerWeight">gewalt zu gewicht</string>
<string name="byDrivetrain">antriebsstrang</string>
<string name="add">zusetzen</string>
<string name="remove">ablegen</string>
<string name="applyFilter">filter anwenden</string>
<string name="garageName">garage namen</string>
<string name="ok">ok</string>
<string name="cancel">abbrechen</string>
<string name="renameGarage">umbenennen garage</string>
<string name="deleteGarage">löschen garage</string>
<string name="powerUnits">einheiten der macht</string>
<string name="weightUnits">gewichtseinheiten</string>
<string name="downloadImages">bilder herunterladen</string>
<string name="browse">äsen</string>
<string name="search">suchen</string>
<string name="list">liste</string>
<string name="garage">garage</string>
<string name="menuHelpText">drücken sie die menü-taste, um filter oder sortieren sie die liste</string>
<string name="removeCarText">sind sie sicher, dass dieses auto aus der garage zu entfernen?</string>
<string name="selectGame">wählen spiel</string>
<string name="on">angeschaltet</string>
<string name="off">ausgeschaltet</string>
<string name="newGarage">-- neue garage --</string>
<string name="noGarageError">sie haben noch keine garagen!</string>
Many thanks to anyone that can help me.
Hi, I can help you with spanish translation if you need help.
Most of the spanish trasnlation is correct, but i find this mistakes.
I include the lines here that i rapidly saw wrong, with the correct translation in RED.
If you need any more help, don´t hesitate to aks.
Bye
<string name="price">Costa</string> --- correct translation: Precio
<string name="allOption">-- alguno --</string> correct translation: Todos
<string name="add">incluir</string> correct translation: Agregar
<string name="remove">alejar</string> correct translation: Quitar
<string name="noGarageError">usted no tiene ninguna garajes!</string> correct translation: usted no tiene ningún garage
<string name="app_name">Gran Turismo Auto Datenbank</string>
<string name="app_desc">Autos aus Gran Turismo</string>
<string name="change_filter">Change Filter</string>
<string name="sort_list">Liste sortieren</string>
<string name="view_car">Auto Details</string>
<string name="choose_garage">Garage auswählen</string>
<string name="pick_name">Name auswählen</string>
<string name="options">Optionen</string>
<string name="game">Spiel</string>
<string name="make">Marke</string>
<string name="model">Model</string>
<string name="year">Jahr</string>
<string name="minYear">min Jahr</string>
<string name="maxYear">max Jahr</string>
<string name="power">Kraft</string>
<string name="minPower">Min Kraft</string>
<string name="maxPower">Max Kraft</string>
<string name="weight">Gewicht</string>
<string name="minWeight">Min Gewicht</string>
<string name="maxWeight">Max Gewicht</string>
<string name="price">Preis</string>
<string name="minPrice">Min Preis</string>
<string name="maxPrice">Max Preis</string>
<string name="drivetrain">Verbrauch</string>
<string name="allOption">-- Alle --</string>
<string name="byMakeModel">by Marke and Model</string>
<string name="byPrice">nach Preis</string>
<string name="byYear">nach Jahr</string>
<string name="byPower">nach Kraft</string>
<string name="byWeight">nach Gewicht</string>
<string name="byPowerWeight">nach Kraft/Gewicht</string>
<string name="byDrivetrain">nach Verbrauch</string>
<string name="add">hinzufügen</string>
<string name="remove">entfernen</string>
<string name="applyFilter">Filter anwenden</string>
<string name="garageName">Garagen Name</string>
<string name="ok">ok</string>
<string name="cancel">abbrechen</string>
<string name="renameGarage">Garage umbenennen</string>
<string name="deleteGarage">Garage löschen</string>
<string name="powerUnits">Kraft Einheiten</string>
<string name="weightUnits">Gewicht Einheiten</string>
<string name="downloadImages">Bilder herunterladen</string>
<string name="browse">browse</string>
<string name="search">suchen</string>
<string name="list">Liste</string>
<string name="garage">Garage</string>
<string name="menuHelpText">Menü Knopf drücken um die Liste zu sortieren oder zu filtern</string>
<string name="removeCarText">Sicher, dass du dieses Auto von deiner Garage entfernen möchtest?</string>
<string name="selectGame">Spiel auswählen</string>
<string name="on">An</string>
<string name="off">Aus</string>
<string name="newGarage">-- neue Garage --</string>
<string name="noGarageError">Du hast keine Garagen!</string>
<string name="standardPremium">S/P</string>
<string name="premium">Premium</string>
<string name="standard">Standard</string>
<string name="standardAndPremium">Standard + Premium</string>
Click to expand...
Click to collapse
hopefully i didn't forget anything it's german btw^^
Ron987 said:
hopefully i didn't forget anything it's german btw^^
Click to expand...
Click to collapse
Thanks! Do you think German people who don't know English would understand "Change Filter" on a button? or is there a better German phrase I can use?
<string name="byMakeModel">nach Marke und Model</string>
<string name="cancel">Abbrechen</string>
<string name="browse">durchsuchen</string>
<string name="removeCarText">Wirklich dieses Auto aus deiner Garage entfernen?</string>
You can always make a http://crowdin.net project.
Thats used a lot to translate apps to different languages.
jgittins said:
Thanks! Do you think German people who don't know English would understand "Change Filter" on a button? or is there a better German phrase I can use?
Click to expand...
Click to collapse
"Filter ändern" is the german translation.
Hello,
My translation in french :
<string name="app_name">Base de donnée des véhicules Gran Turismo</string>
<string name="app_desc">les véhicules de Gran Turismo</string>
<string name="change_filter">Changer le Filtre</string>
<string name="sort_list">Organiser Liste</string>
<string name="view_car">Détails du Véhicule</string>
<string name="choose_garage">Sélectionnez Garage</string>
<string name="pick_name">Sélectionnez le Nom</string>
<string name="options">Options</string>
<string name="game">Jeu</string>
<string name="make">Marque</string>
<string name="model">Modèle</string>
<string name="year">Ancienneté</string>
<string name="minYear">Age Minimum</string>
<string name="maxYear">Age Maximum</string>
<string name="power">Puissance</string>
<string name="minPower">Puissance Minimum</string>
<string name="maxPower">Puissance Maximum</string>
<string name="weight">Poids</string>
<string name="minWeight">Poids Minimum</string>
<string name="maxWeight">Poids Maximum</string>
<string name="price">Prix</string>
<string name="minPrice">Prix Minimum</string>
<string name="maxPrice">Prix Maximum</string>
<string name="drivetrain">Transmission</string>
<string name="allOption">-- tout --</string>
<string name="byMakeModel">Par marque et modèle</string>
<string name="byPrice">Par prix</string>
<string name="byYear">Par année</string>
<string name="byPower">Par puissance</string>
<string name="byWeight">Par poids</string>
<string name="byPowerWeight">Rapports poids/puissance</string>
<string name="byDrivetrain">Par transmission</string>
<string name="add">Ajouter</string>
<string name="remove">Supprimer</string>
<string name="applyFilter">appliquer le filtre</string>
<string name="garageName">Nom de Garage</string>
<string name="ok">ok</string>
<string name="cancel">annuler</string>
<string name="renameGarage">Renommer garage</string>
<string name="deleteGarage">supprimer garage</string>
<string name="powerUnits">unités de puissance</string>
<string name="weightUnits">unités de poids</string>
<string name="downloadImages">télécharger des images</string>
<string name="browse">explorer</string>
<string name="search">chercher</string>
<string name="list">liste</string>
<string name="garage">garage</string>
<string name="menuHelpText">Appuyez sur le bouton de menu pour filtrer ou trier la liste</string>
<string name="removeCarText">Etes-vous sûr de vouloir supprimer cette voiture de votre garage?</string>
<string name="selectGame">Sélectionner un Jeu</string>
<string name="on">Autoriser</string>
<string name="off">Refuser</string>
<string name="newGarage">-- Nouveau garage --</string>
<string name="noGarageError">Vous n'avez pas de garages !</string>
But i didn't test your app, so some word may be incorrect...
hello
i have a sm-g901f device and i want to build a working recovery
i tried recovery builder but it doesn't work !?
i can provide my own boot.img and recovery img ..
doudou425 said:
hello
i have a sm-g901f device and i want to build a working recovery
i tried recovery builder but it doesn't work !?
i can provide my own boot.img and recovery img ..
Click to expand...
Click to collapse
i need only someone with a ready build environment ,because i'm not friend with ubuntu
or only porting the only existing recovery (in chinese) to english
thanks
+1 would be great!
Me too, waiting impatiently
doudou425 said:
i need only someone with a ready build environment ,because i'm not friend with ubuntu
or only porting the only existing recovery (in chinese) to english
Click to expand...
Click to collapse
Me too, waiting impatiently.
well I'm not really friends with ubuntu
I reinstall ubuntu for the second time and I will start the whole procedure
Would be awesome if we got a working english-aroma friendly-cwm for our 901f
Finally i have a fully working buid environment
But there's somme problem when compiling ,something about kernel
I dont know how to go ahead .....
What is the exact problem and at which stage of the compiling does it appear ?
Code:
[email protected]:~/tutu$ build/tools/device/mkvendor.sh samsung g901f /home/g901f/boot.img
Arguments: samsung g901f /home/g901f/boot.img
Output will be in /home/denis/tutu/device/samsung/g901f
cp: impossible d'évaluer «/home/g901f/boot.img»: Aucun fichier ou dossier de ce type
build/tools/device/mkvendor.sh : ligne 84 : 3116 Erreur de segmentation (core dumped) unpackbootimg -i $BOOTIMAGEFILE > /dev/null
gzip: ../boot.img-ramdisk.gz: No such file or directory
cpio: fin prématurée de l'archive
cat: /tmp/denis/bootimg/boot.img-base: Aucun fichier ou dossier de ce type
cat: /tmp/denis/bootimg/boot.img-cmdline: Aucun fichier ou dossier de ce type
cat: /tmp/denis/bootimg/boot.img-pagesize: Aucun fichier ou dossier de ce type
cp: impossible d'évaluer «/tmp/denis/bootimg/boot.img-zImage»: Aucun fichier ou dossier de ce type
unpackbootimg doesn't work with boot.img from g901f (new type inside)
en francais : a priori unpackbootimg ne fonctionne pas avec le type de boot.img en provenance du g901F ,ce serait un nouveau type de boot
Ça c'est rigolo ça je vais me pencher sur la question ce soir mais là comme ca je vois pas.
I found one unpackbootimg that works , to be continued...
J'ai trouvé un unpackbootimg qui fait correctement le boulot , affaire a suivre
Parfait ! C'est du beau boulot tiens nous au jus si ca avance.
Hello guys,
I think we're all French people on this topic but please if you want help, keep posting in English please
I'm also very interested by this topic.
Keep the good work
Franky
bon de nouveau bloqué ,j'ai maintenant mon boot.img correctement "unpacké" je vois bien tous les fichiers demandés
toutefois il faudrait adapter le mkvendor.sh pour ne plus avoir a unpacker le boot.img mais lui dire ou se trouvent les fichiers extraits pour continuer le taff ,mais ca je sais pas faire
voila le mkvendor.sh des fois que quelqu'un sache le modifier
Code:
#!/bin/bash
function usage
{
echo Usage:
echo " $(basename $0) manufacturer device [boot.img]"
echo " The boot.img argument is the extracted recovery or boot image."
echo " The boot.img argument should not be provided for devices"
echo " that have non standard boot images (ie, Samsung)."
echo
echo Example:
echo " $(basename $0) motorola sholes ~/Downloads/recovery-sholes.img"
exit 0
}
MANUFACTURER=$1
DEVICE=$2
BOOTIMAGE=$3
UNPACKBOOTIMG=$(which unpackbootimg)
echo Arguments: [email protected]
if [ -z "$MANUFACTURER" ]
then
usage
fi
if [ -z "$DEVICE" ]
then
usage
fi
ANDROID_TOP=$(dirname $0)/../../../
pushd $ANDROID_TOP > /dev/null
ANDROID_TOP=$(pwd)
popd > /dev/null
TEMPLATE_DIR=$(dirname $0)
pushd $TEMPLATE_DIR > /dev/null
TEMPLATE_DIR=$(pwd)
popd > /dev/null
DEVICE_DIR=$ANDROID_TOP/device/$MANUFACTURER/$DEVICE
if [ ! -z "$BOOTIMAGE" ]
then
if [ -z "$UNPACKBOOTIMG" ]
then
echo unpackbootimg not found. Is your android build environment set up and have the host tools been built?
exit 0
fi
BOOTIMAGEFILE=$(basename $BOOTIMAGE)
echo Output will be in $DEVICE_DIR
mkdir -p $DEVICE_DIR
TMPDIR=/tmp/$(whoami)/bootimg
rm -rf $TMPDIR
mkdir -p $TMPDIR
cp $BOOTIMAGE $TMPDIR
pushd $TMPDIR > /dev/null
unpackbootimg -i $BOOTIMAGEFILE > /dev/null
mkdir ramdisk
pushd ramdisk > /dev/null
gunzip -c ../$BOOTIMAGEFILE-ramdisk.gz | cpio -i
popd > /dev/null
BASE=$(cat $TMPDIR/$BOOTIMAGEFILE-base)
CMDLINE=$(cat $TMPDIR/$BOOTIMAGEFILE-cmdline)
PAGESIZE=$(cat $TMPDIR/$BOOTIMAGEFILE-pagesize)
export SEDCMD="s#__CMDLINE__#$CMDLINE#g"
echo $SEDCMD > $TMPDIR/sedcommand
cp $TMPDIR/$BOOTIMAGEFILE-zImage $DEVICE_DIR/kernel
popd > /dev/null
else
mkdir -p $DEVICE_DIR
touch $DEVICE_DIR/kernel
BASE=10000000
CMDLINE=no_console_suspend
PAGESIZE=00000800
export SEDCMD="s#__CMDLINE__#$CMDLINE#g"
echo $SEDCMD > $TMPDIR/sedcommand
fi
for file in $(find $TEMPLATE_DIR -name '*.template')
do
OUTPUT_FILE=$DEVICE_DIR/$(basename $(echo $file | sed s/\\.template//g))
cat $file | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g | sed -f $TMPDIR/sedcommand | sed s/__BASE__/$BASE/g | sed s/__PAGE_SIZE__/$PAGESIZE/g > $OUTPUT_FILE
done
if [ ! -z "$TMPDIR" ]
then
RECOVERY_FSTAB=$TMPDIR/ramdisk/etc/recovery.fstab
if [ -f "$RECOVERY_FSTAB" ]
then
cp $RECOVERY_FSTAB $DEVICE_DIR/recovery.fstab
fi
if [ -f "$TMPDIR/ramdisk/sbin/htcbatt" ]
then
mkdir -p $DEVICE_DIR/recovery/root/sbin
CHARGER_FILES="/sbin/choice_fn /sbin/htcbatt /sbin/power_test /sbin/offmode_charging /sbin/detect_key"
for f in $CHARGER_FILES
do
if [ -f "$TMPDIR/ramdisk/$f" ]
then
cp $TMPDIR/ramdisk/$f $DEVICE_DIR/recovery/root/sbin
fi
done
cp $TEMPLATE_DIR/init.htc.rc $DEVICE_DIR/recovery/root/init.$DEVICE.rc
fi
fi
mv $DEVICE_DIR/device.mk $DEVICE_DIR/device_$DEVICE.mk
echo Creating initial git repository.
pushd $DEVICE_DIR
git init
git add .
git commit -a -m "mkvendor.sh: Initial commit of $DEVICE"
popd
echo Done!
echo Use the following command to set up your build environment:
echo ' 'lunch cm_$DEVICE-eng
echo And use the follwowing command to build a recovery:
echo ' '. build/tools/device/makerecoveries.sh cm_$DEVICE-eng
edit in English it'll be harder but I make the effort, thank you google trad
I found a version of unpackbootimg that works, I have all the files neccessaires
but we must adapt mkvendor.sh to use the extracted files instead of extract
by modifying slightly mkvendor.sh not delete the temporary file and pasting the extracted files with the new unpackbootimg
I managed to compile a nonfunctional recovery.img because I left everything default I have not changed boardconfig.mk etc. as shown here on step 4: http://xda-university.com/as-a-developer/porting-clockworkmod-recovery-to-a-new-device
this test was just to see if the compilation is finalizing ..... and it worked :good:
en french :
en modifiant legerement mkvendor.sh pour ne pas supprimer le dossier temporaire et en collant les fichiers extraits avec le nouveau unpackbootimg
j'ai reussi a compiler un recovery.img non fonctionnel car j'ai tout laissé par defaut je n'ai pas modifié boardconfig.mk etc comme indiqué ici a l'etape 4 : http://xda-university.com/as-a-developer/porting-clockworkmod-recovery-to-a-new-device
cet essai etait juste pour voir si la compilation se finalisait ..... et cela a fonctionné :good:
cool
doudou425 said:
J'ai trouvé un unpackbootimg qui fait correctement le boulot , affaire a suivre
Click to expand...
Click to collapse
T'es un pro!!! tiens nous au courant
merci de faire ça. enfin quelque chose a mettre sur mon G901F.
Thanks for doing it. Finally something for my G901F.
It seems that only france got the g901f
Pas de nouvelles bonne nouvelle :angel:
well ,good news chenglu made an english recovery for us
Chenglu said:
http://yun.baidu.com/pcloud/album/f...12765541086&uk=704970239&fsid=913008460800857
Click to expand...
Click to collapse
tested an approved
thank you @Chenglu
cool
doudou425 said:
well ,good news chenglu made an english recovery for us
tested an approved
thank you @Chenglu
Click to expand...
Click to collapse
tested an approuved too, very nice work.
thank you @Chenglu[/QUOTE]
Fine to have an operationnel custom recovery.
testé et approuvé, c'est cool d'avoir un recovery opérationnel.
Has anyone started messing around with the settings files on the new ATV2?
Amazon video doesn't have a persistent setting for audio language and it defaults to your account language even on video resume.
I managed to take are of that and changed it from German to English.
Also fiddled with some more settings, enabled some features and removed ads.
You can change the file on your rooted device with adbd Insecure.
/data/data/com.amazon.avod/shared_prefs/ServerPreferences.xml
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="xrayEnabledOnFireTV">true</string>
<string name="playback_nativeMemoryAllocationMaxInMegabytes_3">600</string>
<string name="isNextEpisodeEnabled">true</string>
<string name="heuristic_maxBandWidth">24000000</string>
<string name="canPlayHD">true</string>
<string name="cache_maxCacheSizeMB">300</string>
<string name="xray_isFilmographyServiceEnabled">true</string>
<string name="heuristic_bufferedTimeRequiredToGoAboveLowestHDSeconds">30</string>
<string name="ShouldTeardownPlaybackOnSleep">true</string>
<string name="heuristic_highestPlayableBitrate">25000000</string>
<string name="Config_Marketplace_Specific_UHD_Info_URL">www.amazon.com/help/uhd</string>
<string name="imageMemoryConfiguration">{"maxPortionOfMemoryToUse":0.5,"maxNumberOfImagesToLoad":90,"cleanupChunkSize":30}</string>
<long name="serverConfigLastUpdateTimeMillis" value="1452029645686" />
<string name="playback_streamingPastBufferSizeSeconds">60</string>
<string name="ads_types">{"types":[]}</string>
<string name="SurroundSoundEnabledDefault">true</string>
<string name="ultra_hd_config_offers_enabled">false</string>
<string name="XRaySceneUpdatePollMillis">500</string>
<string name="heuristic_maximumPlayableVerticalResolution">2160</string>
<string name="prs_DeviceBitrateAdaptationsOverride_2">CBR;CVBR</string>
<string name="playback_pingUrl">http://spectrum.s3.amazonaws.com/kindle-wifi/wifistub.html</string>
<string name="latestVersion">0</string>
<string name="cache_shouldBlockCachingOnForegroundApplication_2">true</string>
<string name="playback_nativeMemoryAllocationMinInMegabytes_2">360</string>
<string name="qos_BlacklistedGenericEvents">none</string>
<string name="canPlay1080pHD">true</string>
<string name="externalPrimeSignUpIntentAction">com.amazon.tv.launcher.primefreetrial.FREETRIAL</string>
<string name="playback_streamingFutureBufferSizeSeconds">180</string>
<string name="Config_Marketplace_Specific_AIV_Help_PageURL">http://www.amazon.com/videohelp</string>
<string name="predictiveCacheWatchlistEnabled">false</string>
<string name="reactiveCacheOnNextEpisode">CONTENTCACHE</string>
<string name="ads_isAVODEnabled">true</string>
<string name="player_IsInMemoryDriveEnabled_2">false</string>
<string name="minimumRequiredVersion">0</string>
<string name="ads_shouldShowSkipForDraper">true</string>
<string name="reactiveCacheOnSearchPage">CONTENTCACHE</string>
<string name="qos_fragmentBatchUploadProbability">100</string>
<string name="ads_endpointUrl">https://atv-ext.amazon.com/cdp/videoAds/vap/getAds?deviceTypeId=ADVBD696BHNV5&firmware=1.0&deviceID=dummy&</string>
<string name="audioLanguagesAvailable">en-US,de-DE,es-ES,fr-FR,it-IT</string>
<string name="qos_fragmentBatchSize">50</string>
<string name="hasEthernet">true</string>
<string name="clientConsumeLicenseVersion">2</string>
<string name="deviceDebugMode">true</string>
<string name="xrayActorTriviaEnabled">true</string>
<string name="qos_ReportingConfigVersion">cm12831029</string>
<string name="shouldSecondScreenBeEnabled">true</string>
<string name="playback_downloadServicePrimaryBufferBeforeSecondaryDownloadsSeconds">10</string>
<string name="playback_nativeMemoryAllocationMinInMegabytes_3">500</string>
<string name="heuristic_lowBufferControlDuration">3</string>
<string name="shouldCropToFitInImageGrid">false</string>
<string name="isMoreWaysToWatchEnabled">true</string>
<string name="disableYVLSeasonRecentSort">false</string>
<string name="shouldSeeWatchlistButton">true</string>
<string name="reactiveCacheOnDetailPage">PLAYERSTACK</string>
<string name="canPlayUltraHD">true</string>
<string name="isGetStreamingUrlsWithPrecacheEnabled">true</string>
<string name="shouldCacheEpisodeStartOverPoint">true</string>
<string name="playback_cappedHDStreamingHighVideoBitrate">10000000</string>
<string name="numPredictiveTitlesToCache">0</string>
<string name="rtw_minimumCacheRequiredForResumeInSec">8</string>
<string name="closedcaption_preferred_default_language_code">en-US</string>
<string name="rtw_minimumCacheRequiredForPlaybackInSec">6</string>
<string name="supportsDownloading">true</string>
<string name="NativeBufferRequiredForContinueInMs">50</string>
<string name="streaming_MaximumSampleSizeBytes">8388608</string>
<string name="heuristic_maximumPlayableHorizontalResolution">3840</string>
<string name="playback_nativeMemoryAllocationMaxInMegabytes_2">400</string>
<string name="useGetStreamingUrlsWithUhdEnabled">true</string>
<string name="numReactiveTitlesToCache">10</string>
<string name="Config_Marketplace_Specific_AIV_CS_Contact_PageURL">http://www.amazon.com/video/contactus</string>
<string name="serverConfigRefreshTimerMinutes">9999999999</string>
<string name="qos_enableMultiSessionReporting">false</string>
<string name="audioLanguageDefault">en-US</string>
<string name="Config_Marketplace_Specific_Terms_Of_Use_PageURL">http://www.amazon.com/instantvideo/terms</string>
<string name="homescreenRefreshTimerMinutes">240</string>
<string name="reactiveCacheOnNextEpisodeLaunch">PLAYERSTACK</string>
<string name="heuristic_noDownshiftBufferDurationSeconds">40</string>
<string name="omxil_isLongLivedAIVPlayEnabled">true</string>
<string name="qos_FragmentDownloadTimeThreshold">100000</string>
<string name="categoryConfigRefreshTimerMinutes">480</string>
<string name="isMultiTrackAudioEnabled">true</string>
<string name="syncServiceTimerMinutes">5</string>
<string name="playback_pingServerAfterDownloadFailure">true</string>
<string name="Config_Marketplace_Specific_Prime_Upsell_Url_For_Browser">http://www.amazon.com/primemobile</string>
<string name="isPrimeAcquisitionEnabled">true</string>
<string name="supportsWANDownloading">true</string>
<string name="reactiveCacheOnUserActivity">CONTENTCACHE</string>
<string name="isGetStreamingUrlSetsEnabled">true</string>
<string name="drm_playreadyCallTimeoutMilliseconds">30000</string>
<string name="isGetPlaybackResourcesForAdsEnabled">true</string>
<string name="ClickstreamConfig">{"maxBatchSize":50,"maxBatchAgeMinutes":5,"eventExpiryAgeMinutes":1440,"maxRetries":2}</string>
<string name="supportsDolby5dot1">true</string>
<string name="ultra_hd_is_mode_switch_required">false</string>
<string name="playback_streamingSlowFragmentDownloadTimeoutMilliseconds">4000</string>
<string name="predictiveCacheGetContentFromSourceEnabled">false</string>
<string name="player_IsInMemoryDriveEnabled">true</string>
<string name="heuristicsOverride_topVideobitrateAfterSeek">600000</string>
</map>
Unfortunately I didn't make a backup - can anyone upload a pristine (preferably DE) version?
The next thing I want to do is connect the Fire TV to my home automation system.
Remote button simulation over adb works fine.
I'd also like to find out the current playing state and ideally the current file though.
Does anyone know if that's possible?
Having my lights dim as soon as I pause Kodi is kinda nice
-s
mine is USA from 5.0.3.1 ... it is a bit different than yours.
What ads were removed that you noticed?
I too adjusted the ads_types line like yours but I'm not sure anything is different.
I changed the settings then rebooted, it seems that after reboot the changes are gone. :-/
I figured that reboot would be needed to be effective.
This is unmodified / pristine:
Code:
1|[email protected]:/system # cat /data/data/com.amazon.avod/shared_prefs/ServerPreferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="xrayEnabledOnFireTV">true</string>
<string name="playback_nativeMemoryAllocationMaxInMegabytes_3">600</string>
<string name="isNextEpisodeEnabled">true</string>
<string name="heuristic_maxBandWidth">20000000</string>
<string name="canPlayHD">true</string>
<string name="cache_maxCacheSizeMB">300</string>
<string name="heuristic_bufferedTimeRequiredToGoAboveLowestHDSeconds">25</string>
<string name="ShouldTeardownPlaybackOnSleep">false</string>
<string name="heuristic_highestPlayableBitrate">25000000</string>
<string name="Config_Marketplace_Specific_UHD_Info_URL">www.amazon.com/help/uhd</string>
<string name="imageMemoryConfiguration">{"maxPortionOfMemoryToUse":0.5,"maxNumberOfImagesToLoad":90,"cleanupChunkSize":30}</string>
<long name="serverConfigLastUpdateTimeMillis" value="1452739180626" />
<string name="playbackResource_liveScheduleConfigToken">firetv-landing-page-1</string>
<string name="playback_streamingPastBufferSizeSeconds">60</string>
<string
name="ads_types">{"types":[{"name":"FirstEpisodeFree","networkId":"375600","profileId":"aiv_live_android","pageId":"aiv.firetv.fef"},{"name":"PrimePreRoll","networkId":"375600","profileId":"aiv_live_android","pageId":"aiv.firetv.draper.svod"}]}</string>
<string name="SurroundSoundEnabledDefault">true</string>
<string name="ultra_hd_config_offers_enabled">true</string>
<string name="XRaySceneUpdatePollMillis">500</string>
<string name="heuristic_maximumPlayableVerticalResolution">2160</string>
<string name="prs_DeviceBitrateAdaptationsOverride_2">CBR;CVBR</string>
<string name="playback_pingUrl">http://spectrum.s3.amazonaws.com/kindle-wifi/wifistub.html</string>
<string name="latestVersion">0</string>
<string name="cache_shouldBlockCachingOnForegroundApplication_2">true</string>
<string name="playback_nativeMemoryAllocationMinInMegabytes_2">360</string>
<string name="qos_BlacklistedGenericEvents">none</string>
<string name="canPlay1080pHD">true</string>
<string name="externalPrimeSignUpIntentAction">com.amazon.tv.launcher.primefreetrial.FREETRIAL</string>
<string name="playback_streamingFutureBufferSizeSeconds">180</string>
<string name="predictiveCacheWatchlistEnabled">false</string>
<string name="reactiveCacheOnNextEpisode">CONTENTCACHE</string>
<string name="ads_isAVODEnabled">true</string>
<string name="minimumRequiredVersion">0</string>
<string name="ads_shouldShowSkipForDraper">false</string>
<string name="reactiveCacheOnSearchPage">CONTENTCACHE</string>
<string name="qos_fragmentBatchUploadProbability">100</string>
<string name="qos_fragmentBatchSize">50</string>
<string name="hasEthernet">true</string>
<string name="clientConsumeLicenseVersion">2</string>
<string name="deviceDebugMode">true</string>
<string name="qos_ReportingConfigVersion">cm12844378_3</string>
<string name="shouldSecondScreenBeEnabled">true</string>
<string name="playback_downloadServicePrimaryBufferBeforeSecondaryDownloadsSeconds">10</string>
<string name="playback_nativeMemoryAllocationMinInMegabytes_3">500</string>
<string name="heuristic_lowBufferControlDuration">4</string>
<string name="shouldCropToFitInImageGrid">false</string>
<string name="isMoreWaysToWatchEnabled">true</string>
<string name="disableYVLSeasonRecentSort">false</string>
<string name="shouldSeeWatchlistButton">true</string>
<string name="reactiveCacheOnDetailPage">PLAYERSTACK</string>
<string name="canPlayUltraHD">true</string>
<string name="shouldCacheEpisodeStartOverPoint">true</string>
<string name="playback_cappedHDStreamingHighVideoBitrate">10000000</string>
<string name="numPredictiveTitlesToCache">50</string>
<string name="rtw_minimumCacheRequiredForResumeInSec">8</string>
<string name="rtw_minimumCacheRequiredForPlaybackInSec">6</string>
<string name="supportsDownloading">false</string>
<string name="NativeBufferRequiredForContinueInMs">50</string>
<string name="streaming_MaximumSampleSizeBytes">8388608</string>
<string name="heuristic_maximumPlayableHorizontalResolution">3840</string>
<string name="playback_nativeMemoryAllocationMaxInMegabytes_2">400</string>
<string name="useGetStreamingUrlsWithUhdEnabled">true</string>
<string name="numReactiveTitlesToCache">10</string>
<string name="serverConfigRefreshTimerMinutes">240</string>
<string name="qos_enableMultiSessionReporting">false</string>
<string name="homescreenRefreshTimerMinutes">240</string>
<string name="reactiveCacheOnNextEpisodeLaunch">PLAYERSTACK</string>
<string name="heuristic_noDownshiftBufferDurationSeconds">40</string>
<string name="omxil_isLongLivedAIVPlayEnabled">true</string>
<string name="qos_FragmentDownloadTimeThreshold">100000</string>
<string name="categoryConfigRefreshTimerMinutes">480</string>
<string name="syncServiceTimerMinutes">5</string>
<string name="playback_pingServerAfterDownloadFailure">true</string>
<string name="isPrimeAcquisitionEnabled">true</string>
<string name="reactiveCacheOnUserActivity">CONTENTCACHE</string>
<string name="isGetStreamingUrlSetsEnabled">false</string>
<string name="drm_playreadyCallTimeoutMilliseconds">30000</string>
<string name="isGetPlaybackResourcesForAdsEnabled">true</string>
<string name="ClickstreamConfig">{"maxBatchSize":50,"maxBatchAgeMinutes":5,"eventExpiryAgeMinutes":1440,"maxRetries":2}</string>
<string name="supportsDolby5dot1">true</string>
<string name="ultra_hd_is_mode_switch_required">true</string>
<string name="playback_streamingSlowFragmentDownloadTimeoutMilliseconds">4000</string>
<string name="predictiveCacheGetContentFromSourceEnabled">true</string>
<string name="heuristic_noUpshiftBufferDurationSeconds">8</string>
<string name="player_IsInMemoryDriveEnabled">true</string>
<string name="heuristicsOverride_topVideobitrateAfterSeek">600000</string>
</map>
shadow# said:
Unfortunately I didn't make a backup - can anyone upload a pristine (preferably DE) version?
Click to expand...
Click to collapse
Here is the pristine file from my German AFTV2 (5.0.4): hxxp://pastebin.com/r6MzwDLn
Sorry, that I can't paste it directly here. The XML contains URLs, and I don't have the minimum of 10 posts now
How do you keep the file readonly? Because as @Ludacrisvp already said, the file is overwritten after a reboot.
androidfux said:
Here is the pristine file from my German AFTV2 (5.0.4): hxxp://pastebin.com/r6MzwDLn
Click to expand...
Click to collapse
Thanks! Messed up my root and had to clear my box, so I got it back anyway :crying:
How do you keep the file readonly? Because as @Ludacrisvp already said, the file is overwritten after a reboot.
Click to expand...
Click to collapse
Not on my box. Maybe because of this line?!
<string name="serverConfigRefreshTimerMinutes">9999999999</string>
shadow# said:
Thanks! Messed up my root and had to clear my box, so I got it back anyway :crying:
Click to expand...
Click to collapse
You're welcome
shadow# said:
Not on my box. Maybe because of this line?!
<string name="serverConfigRefreshTimerMinutes">9999999999</string>
Click to expand...
Click to collapse
Hm, I think I've tried that before, but I will try it again and let you know the results.
Is a reboot needed after editing the file? Or do I have to restart a service?
shadow# said:
Not on my box. Maybe because of this line?!
<string name="serverConfigRefreshTimerMinutes">9999999999</string>
Click to expand...
Click to collapse
Okay, it works now, thanks for the hint!
On my first try I updated the wrong variable to 9999999999, so the settings file was reset after a reboot.
androidfux said:
Okay, it works now, thanks for the hint!
On my first try I updated the wrong variable to 9999999999, so the settings file was reset after a reboot.
Click to expand...
Click to collapse
still wipes out and replaces at reboot for me. some other setting must be overriding this.
[email protected]:/data/data/com.amazon.avod/shared_prefs # ls -l
-rw-rw---- 1 app_2203 app_2203 65 Jan 1 2010 Experiments.xml
-rw-rw---- 1 app_2203 app_2203 205 Jan 1 2010 IdentityPreferences.xml
-rw-rw---- 1 app_2203 app_2203 879 Jan 21 04:32 InternalPreferences.xml
-rw-rw---- 1 app_2203 app_2203 114 Jan 21 04:32 SSOInfo.config.xml
-rw-rw---- 1 root root 6050 Jan 21 04:34 ServerPreferences.xml
-rw-rw---- 1 root root 6050 Jan 21 04:27 ServerPreferences.xml.mod
-rw-rw---- 1 root root 6353 Jan 21 03:44 ServerPreferences.xml.orig
-rw-rw---- 1 app_2203 app_2203 125 Jan 1 2010 WebViewChromiumPrefs.xml
-rw-rw---- 1 app_2203 app_2203 601 Jan 21 04:32 com.amazon.avod_preferences.xml
[email protected]:/data/data/com.amazon.avod/shared_prefs # shutdownalertdialog.sh
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.mediatek.thermalmanager/.ShutDownAlertDialogActivity }
[email protected]:/data/data/com.amazon.avod/shared_prefs # packet_write_wait: Connection to 10.10.10.96: Broken pipe
macbookpro:~ user$ ssh [email protected]
Warning: Permanently added 'firetv' (RSA) to the list of known hosts.
[email protected]'s password:
[email protected]:/data/data/berserker.android.apps.sshdroid/home # cd /data/data/com.amazon.avod/shared_prefs
[email protected]:/data/data/com.amazon.avod/shared_prefs # ls -l
-rw-rw---- 1 app_2203 app_2203 65 Jan 1 2010 Experiments.xml
-rw-rw---- 1 app_2203 app_2203 205 Jan 1 2010 IdentityPreferences.xml
-rw-rw---- 1 app_2203 app_2203 879 Jan 21 04:37 InternalPreferences.xml
-rw-rw---- 1 app_2203 app_2203 114 Jan 21 04:37 SSOInfo.config.xml
-rw-rw---- 1 app_2203 app_2203 6353 Jan 21 04:37 ServerPreferences.xml
-rw-rw---- 1 root root 6050 Jan 21 04:27 ServerPreferences.xml.mod
-rw-rw---- 1 root root 6353 Jan 21 03:44 ServerPreferences.xml.orig
-rw-rw---- 1 app_2203 app_2203 125 Jan 1 2010 WebViewChromiumPrefs.xml
-rw-rw---- 1 app_2203 app_2203 601 Jan 21 04:37 com.amazon.avod_preferences.xml
In fact it seems that even if I don't reboot the file gets updated.
[email protected]:/data/data/com.amazon.avod/shared_prefs # cp ServerPreferences.xml.mod ServerPreferences.xml
[email protected]:/data/data/com.amazon.avod/shared_prefs # ls -l
-rw-rw---- 1 app_2203 app_2203 65 Jan 1 2010 Experiments.xml
-rw-rw---- 1 app_2203 app_2203 205 Jan 1 2010 IdentityPreferences.xml
-rw-rw---- 1 app_2203 app_2203 879 Jan 21 04:37 InternalPreferences.xml
-rw-rw---- 1 app_2203 app_2203 114 Jan 21 04:37 SSOInfo.config.xml
-rw-rw---- 1 root root 6050 Jan 21 04:39 ServerPreferences.xml
-rw-rw---- 1 root root 6050 Jan 21 04:27 ServerPreferences.xml.mod
-rw-rw---- 1 root root 6353 Jan 21 03:44 ServerPreferences.xml.orig
-rw-rw---- 1 app_2203 app_2203 125 Jan 1 2010 WebViewChromiumPrefs.xml
-rw-rw---- 1 app_2203 app_2203 601 Jan 21 04:37 com.amazon.avod_preferences.xml
[email protected]:/data/data/com.amazon.avod/shared_prefs # ls -l |grep Server
-rw-rw---- 1 app_2203 app_2203 6353 Jan 21 04:39 ServerPreferences.xml
-rw-rw---- 1 root root 6050 Jan 21 04:27 ServerPreferences.xml.mod
-rw-rw---- 1 root root 6353 Jan 21 03:44 ServerPreferences.xml.orig
Ludacrisvp said:
still wipes out and replaces at reboot for me. some other setting must be overriding this.
Click to expand...
Click to collapse
Maybe it has to do with the wrong owner/group of the file.
Try this after copying your ServerPreferences.xml:
Code:
chown --reference=Experiments.xml ServerPreferences.xml
And then just simple type "reboot".
androidfux said:
Maybe it has to do with the wrong owner/group of the file.
Try this after copying your ServerPreferences.xml:
Code:
chown --reference=Experiments.xml ServerPreferences.xml
And then just simple type "reboot".
Click to expand...
Click to collapse
just typing reboot doesn't work for me it just sits there forever. thats why i invoke that thermal shutdown script, it prompts the user saying it needs to cool down then after you hit OK its reboots.
I tried it with the original owner (by editing the file in place), then since it had deleted my changes i made a copy of the file that i used to replace it with and left owner as root hoping that it wouldn't have permissions to be replaced again.
Ludacrisvp said:
just typing reboot doesn't work for me it just sits there forever. thats why i invoke that thermal shutdown script, it prompts the user saying it needs to cool down then after you hit OK its reboots.
I tried it with the original owner (by editing the file in place), then since it had deleted my changes i made a copy of the file that i used to replace it with and left owner as root hoping that it wouldn't have permissions to be replaced again.
Click to expand...
Click to collapse
Found out why my reboot command wasn't working ... SSHDroid has a symlink to reboot via busybox which doesn't work...
[email protected]:/ # reboot
[email protected]:/ # which reboot
/data/data/berserker.android.apps.sshdroid/home/.bin/reboot
[email protected]:/data/data/berserker.android.apps.sshdroid/home # ls -l .bin/reboot
lrwxrwxrwx 1 app_33 app_33 59 Dec 18 05:23 reboot -> /data/data/berserker.android.apps.sshdroid/dropbear/busybox
[email protected]:/ # find /system |grep reboot
/system/bin/reboot
[email protected]:/ # /system/bin/reboot
packet_write_wait: Connection to 10.10.10.96: Broken pipe
but its still being overwritten, maybe its a 5.0.3.1 issue.
Just updated my ATV2 for the first time since the original post.
The default audio language change still works the same with 5.2.4.0
(I had to look for this post to find the file again...)
I'm sorry for *necroposting* in here but I can't find anything similar anywhere else.
I live in Italy and I just rooted my Pendant. Unfortunately the Pendant is georestricted. to the first installation boot (which was in USA so with US settings and locale). I was told by customer care that I need to factory reset and after that the box will receive the correct regional settings to make my Amazon Video app work. Of course I cant factory reset otherwise the box will permanently lose root or even worse start bootlooping. Is there a way to change regional settings for AVOD to my correct Italian ones?
Thanks.
Pino.
Since, I am a premium user of Your Freedom 'VPN' I have bought its package through debit card payment!! It was all fine but suddenly yesterday I got issue in connecting to it I was using and was connected into VPN the day before but after sleep at night while in morning I Tried to connect but It didnt connect. I thought its the problem of #VPN but later when I tried into my friends and sister phones. I was able to connect, it means I got problem in My phone l.. plz help me!! Currently I am running in Android 4.4.2 kitkat and the baseband is XXUGNH6.
-Thank you!!
One thread is enough.
You tried reinstalling the app?
Yes sir, I reinstalled the app tried different version but it didnt worked
Athakuri700 said:
Yes sir, I reinstalled the app tried different version but it didnt worked
Click to expand...
Click to collapse
did you clear cache and data before deleting and reinstalling ? try it now while it's installed and see if it helps. if the app produces a log file in it's folder that will tell what went wrong. you could post that here if there is one and somebody smarter than me might be able to help you.
I cant copy that log file
clear the log if you can (never used the app myself), and start the app and try to connect. note the time you attempted it and then use a file browser to go to the apps folder (hopefully that is where the log file lives) and open it as a text file and copy it from the time to tried to start it up.
Here I got -- 1454124514.812 config on connection start
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<yfconfig>
<string name="auto_wlan_stop">********</string>
<string name="splash_version">********</string>
<string name="username">********</string>
<string name="dns_server_type_vpn">********</string>
<string name="when_last_checked_for_root">********</string>
<string name="search_dns">********</string>
<string name="auto_mobile_start">********</string>
<string name="auto_wlan_start">********</string>
<string name="dumpmode">********</string>
<string name="dumpmode_compress">********</string>
<string name="autoscroll_messages">********</string>
<string name="auto_mobile_stop_which">********</string>
<string name="auto_delay">********</string>
<set name="server_criterion" type="ServerCriterion">
<object>volume 5</object>
<object>northamerica 5</object>
<object>p2p 5</object>
<object>ipv6 5</object>
<object>europe 5</object>
<object>interactive 5</object>
<object>load 5</object>
<object>free 5</object>
<object>voip 5</object>
</set>
<string name="proxyport">********</string>
<set name="ftp_possible_suffix" type="String">
<string>bmp</string>
<string>jpg</string>
<string>iso</string>
<string>png</string>
<string>img</string>
<string>mp3</string>
<string>avi</string>
<string>txt</string>
<string>gif</string>
<string>htm</string>
</set>
<string name="search_echo">********</string>
<string name="tunnelhost">********</string>
<string name="block_ipv6_sidechannel">********</string>
<string name="search_https">********</string>
<string name="auto_wlan_start_which">********</string>
<string name="password">********</string>
<string name="proxytype">********</string>
<string name="block_ipv6_dns">********</string>
<string name="encryption">********</string>
<string name="aes">********</string>
<string name="auto_mobile_stop">********</string>
<string name="proxyhost">********</string>
<string name="dns_server_type_connection">********</string>
<string name="auto_wlan_stop_which">********</string>
<string name="search_http">********</string>
<string name="reconnect_after_shutdown">********</string>
<string name="rekey">********</string>
<string name="auto_mobile_start_which">********</string>
<string name="has_root">********</string>
<string name="protocol">********</string>
<string name="tunnelport">********</string>
<string name="vpn">********</string>
<string name="level_messages">********</string>
<string name="proxyauth">********</string>
<string name="new_config_dialog_suppress">********</string>
</yfconfig>
--
+0.009 LOG 0: Will use server em21.your-freedom.de and connection type http
-- +0.039 WC 1 setMethod method=GET
-- +0.039 WC 1 setTarget host=em21.your-freedom.de ip=null port=80
-- +0.040 WC 1 setProxy host=wikipedia.org port=443 (auth info withheld)
-- +0.042 WC 1 setURI uri=/GgWaxsjrjisj.html
-- +0.044 WC 1 setTweaks null
-- +0.045 WC 1 request timeout=0 dont_wait_for_response=false
-- +0.045 WC 1 request representations: em21.your-freedom.de
-- +0.045 WC 1 _request timeout=0 dwfr=false this_one=em21.your-freedom.de
-- +0.046 WC 1 to wikipedia.org port 443 type HTTP/HTTPS
-- +0.047 DNS2.lookupIPsAsInetAddress (0)
wikipedia.org
--
-- +0.511 looked-up DNS results for wikipedia.org
/198.35.26.96
--
-- +0.512 WC 1 socket.connect addr=198.35.26.96 port=443 timeout=10000
-- +0.972 WC 1 connect successful
-- +0.974 WC 1 Server Request
GET http://em21.your-freedom.de/GgWaxsjrjisj.html HTTP/1.0
Host: em21.your-freedom.de
Accept-Encoding: identity;q=1.0, *;q=0
Accept: text/html; text/plain; */*
Connection: close
Pragma: no-cache
Cache-Control: no-cache, no-store, no-transform
--
-- +1.325 WC 1 response header follows
HTTP/1.1 400 Bad Request
Server: nginx/1.9.4
Date: Sat, 30 Jan 2016 03:28:36 GMT
Content-Type: text/html
Content-Length: 270
Connection: close
--
-- +1.328 WC 1 message body
<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.9.4</center>
</body>
</html>
--
+1.330 LOG 0: WC 1 Server returned error 400 and no Proxy-Authenticate header, can't do anything about it
-- +1.330 WC 1 _request returned flag=false errcode=594
-- +1.331 WC 1 eliminating representation em21.your-freedom.de after errcode=594 and dont_wait_for_response=false and o=false
+1.352 LOG 2: downlink closed by other end, closing connection and re-opening it
+3.878 LOG 1: STOP, reason: by user
+3.878 LOG 1: stopping connection
-- +3.879 Frame S->Y Stream: 0 Type: MESSAGE String: stop
+4.080 LOG 0: connection stopped
+4.081 LOG 1: VPN stopped
+4.081 LOG 0: stopping VpnService
-- +4.883 WC 2 setMethod method=POST
-- +4.883 WC 2 setTarget host=em21.your-freedom.de ip=null port=80
-- +4.884 WC 2 setProxy host=wikipedia.org port=443 (auth info withheld)
-- +4.898 WC 2 setURI uri=/GgWaxsjrjisj.cgi
-- +4.906 WC 2 setTweaks null
-- +4.914 WC 2 request timeout=0 dont_wait_for_response=true
-- +4.914 WC 2 request representations: em21.your-freedom.de
-- +4.914 WC 2 _request timeout=0 dwfr=true this_one=em21.your-freedom.de
-- +4.915 WC 2 to wikipedia.org port 443 type HTTP/HTTPS
-- +4.916 DNS2.lookupIPsAsInetAddress (0)
wikipedia.org
--
-- +4.917 looked-up DNS results for wikipedia.org
/198.35.26.96
--
-- +4.925 WC 2 socket.connect addr=198.35.26.96 port=443 timeout=10000
-- +5.264 WC 2 connect successful
-- +5.265 WC 2 Server Request
POST http://em21.your-freedom.de/GgWaxsjrjisj.cgi HTTP/1.0
Host: em21.your-freedom.de
Content-Length: 20000000
Accept-Encoding: identity;q=1.0, *;q=0
Accept: text/html; text/plain; */*
Connection: close
Content-Type: multipart/form-data; boundary=--7Lg5z/n41l76
Pragma: no-cache
Cache-Control: no-cache, no-store, no-transform
--
-- +5.266 WC 2 _request returned flag=true errcode=0
+5.268 LOG 0: sending client version: 20160128-01
-- +5.268 Frame S->Y Stream: 0 Type: MESSAGE String: version 20160128-01
+9.871 LOG 1: STOP, reason: exitService
+9.871 LOG 1: stopping connection
+9.872 LOG 0: connection stopped