Arabic on the Nexus One? Almost a complete workaround...

Post Views:

Update 8, Feb 4: PLEASE DON'T INSTALL THIS UPDATE IF YOU HAVE INSTALLED THE RECENT UPDATE FROM GOOGLE ERE27! GO HERE FOR AN ALTERNATIVE SOLUTION!

Update 7, Jan 22: There is an even newer update file!
Update 6: For Motorola Milestone, I believe you can in the mean time enter the commands to get Arabic working.  Check the comments in this post, and please let me know if works for you so that we can report this to other users.
Update 5, Jan 22: Updated image file.
Update 4, Jan 21: A new modified update image with full support for Arabic in SMS, Gmail and Browser.
Update 3: It will actually not work on Motorola Milestone yet, since there is no custom recovery image yet. Though It should work on the Motorola Droid since there is a custom recovery image for that.
Update 2: This solution will also work on the Motorola Droid or any device using Android 2.0 and above.
Update 1: Arabic will also be displayed correctly in the Gmail client app.

OK here we go again.

Building on the same image file which I created last September in this post for the easy installation of the Arabic language font on the G1 at the time, I have added the libwebcore.so for Android 2.0from here: http://code.google.com/p/arabicandroid/downloads/list  This addition will allow for perfect viewing of Arabic websites.  For SMS, you can either view it with unconnected Arabic letters, or just download the excellent 'Mirsal' application from the android market to view them correctly.

You have to unlock the bootloader, root and install the recovery image on your Nexus One or N1 before being able to flash this image.

If you are accustomed to constantly updating you phone with custom firmwares (like I), then this will come in great handy, because you can flash the custom firmware and then immediately flash this image (before rebooting the phone) and you are all set with a new firmware that is Arabic enabled.

Big thanks goes to Dr.Dev from xda-developers (or Ayman the Arabic Android Project Leader - arabicandroid) for developing the webcore library.  He has done a great job. Please check his site for latest updates.

Update Jan 22:  New image file.

Disclaimer: I'm not responsible if you damage your phone while doing the above.  If you don't know what you are doing, please seek a professional or don't do it.  Its also advisable that you create a nandroid backup before installing the above file, or any other customer firmware for that matter, if you care about the existing data on your phone.

53 comments:

Anonymous said...

It is amazing, the Arabic works great. I couldn't imagine that I will see Arabic sites that soon.
Really appreciated, it is a great effort man.

Anonymous said...

It is great man, thak you so much

Anonymous said...

Hey i was wondering if u can help me out :P

i tried ordering the nexus one from google, but after placing an order they canceled it and suspended my google checkout account.

Now they are asking for verification and i dont know what to do!

Thnx

Gus said...

What do they want to verify? The address or the credit card information?

Anonymous said...

hi they suspended my account and asked for identification,passport and billing statement etc. Did that happen to you too?

thnx (btw which shipping service did you use?)

Gus said...

No this didn't happen to me. In fact I just helped one of my friends buy one today, and it worked with no issues.

I think they suspect your credit card, or its just your luck for picking you at random for quality assurance (just a thought!).

I have an account with DHL, Aramex, and USWS. I chose DHL for this one. The OH tax of the DHL address was lesser than the NY tax of the Aramex address.

-Gus

Anonymous said...

is your billing address located in kuwait or the us, because mine is in kuwait.

Gus said...

In Kuwait. Everyone I know who ordered it online successfully has Kuwait in the billing address as well.
Try using someone else's Google checkout account.

Anonymous said...

thanks alot GUS, do u think i should order it from kuwait-mall or the google website?

Gus said...

If you are having problems with Google, then it might be a good idea. There is a KD179 price, which is less than what I paid for KD190 (with shipping and taxes).

Anonymous said...

I have a question, do you guys have any issues with 3G on your nexus one? this is one of the reasons why I didn't order one yet :(

Gus said...

No issues at all. I can confirm 3G is working fine with at least 10 people in my office who ordered it from Google.

Anonymous said...

First I wanted to say THANKS ALOT for the arabic image. Thats extremely helpful !! Great work.

As for the 3G issues, I can confirm that THERE is an issue with 3G. I live in Dubai and unless I force my phone to select only WCDMA or GSM , the signal keeps bouncing. But the reception of 3G is also weaker than other phones. For example when i put my G1 and nexus one right next to each other in my house, the G1 picks up a network while the N1 completley drops it (In weak reception areas).


Besides this problem, N1 is an AWESOME Phone !!

Gus said...

Try this fix:

* Go to the settings and open up Wireless & Networks
* Next select Mobile networks
* Select Network operators
* Select automatically

I did this a while back for one of my friends who his N1 refused to register see 3G or even Edge, it solved the problem. Then I as surprised to see that the above surfaced yesterday on the internet as an actual fix for the 3G issue. So give it a shot. It might work.

Anonymous said...

Hi,
I tried installing the update on my milestone, I got "signature verification failed"
Installation aborted.

I downloaded the file you linked
update_ar_n1.zip
copied it to my sdcard
renamed it to update.zip
and then tried to apply the update.
Am I doing anything wrong?
Thanks

Anonymous said...

Thanks for the fast reply! I've already rooted my milestone, it was very simple.
Do you know if the ADB method will give me Arabic support for SMS and Gmail?

Sam said...

I looked in the zip file ... it seems it has only 2 .so files while Ayman posted 3 ... is third one (libskiagl.so) not for nexus?

Gus said...

Hi Sam,

Try downloading again.

Cheers,
-Gus

Gus said...

Your Milestone doesn't have the custom recovery image which would accept zip image files signed by the test certificate. The stock recovery will only allow images signed by Motorola.

Did you root your Milestone? The root is pretty new. Check this thread on how to root the Milestone:
http://android.modaco.com/content/motorola-milestone-droid-milestone-modaco-com/300473/we-have-root/

Unfortunately there doesn't seem to be a custom recovery image for Milestone at the moment, its fairly new. Just give it a few days now that the root is out. Then you can use my image file once you flash the custom image recovery.

-Gus

Sam said...

libskiagl.so is not included ... does it need to be?

Gus said...

Hi Sam,

I tested with and without this file, the result was the same. So I thought its better to keep it off for now.

-Gus

Gus said...

For anonymous:

Yes it should. Because the image file is just like the commands but its easier for installing, especially if you constantly update the firmware, since these update will replace the files.

Ayman from the Arabic android Project (http://code.google.com/p/arabicandroid/) just released a new file that will enable Arabic in SMS.

You have to first download the DejaVu fonts, they are free.

Please refer to my old post on the G1 for more info on the font, also check the updated post (there is a link in there):
http://dumpytips.blogspot.com/2009/01/arabic-on-t-mobile-g1half-solution.html

Then download this file (rename it to libwebcore.so):
http://arabicandroid.googlecode.com/files/libwebcore.so.android20

Finally download this file:
http://arabicandroid.googlecode.com/files/libskia.so

Put everything on root of 'C' drive for easy access.

With your phone connected via USB to your PC, run these commands in command prompt:

adb remount
adb push c:\DroidSansFallback.ttf /system/fonts
adb push c:\libwebcore.so /system/lib
adb push c:\libskia.so /system/lib

Then restart your phone.

You are advised to take a nandroid backup just in case. (More info: http://code.google.com/p/android-roms/wiki/NANDROID_Backup)

You have to download the Android SDK to get the adb command.

Let me know if you need any help.

Cheers,
-Gus

Bloody Modi said...

very nice

Gus said...

To Sam and all,

Please download the new update. It seems that I should have included one more file.

Cheers,
-Gus

Gus said...

For Motorola Milestone Users:

You have to first download the DejaVu fonts, they are free.

Please refer to my old post on the G1 for more info on the font, also check the updated post (there is a link in there):
http://dumpytips.blogspot.com/2009/01/arabic-on-t-mobile-g1half-solution.html

Then download this file (rename it to libwebcore.so):
http://arabicandroid.googlecode.com/files/libwebcore.so.android20

And this file:
http://arabicandroid.googlecode.com/files/libskia.so

Finally download this file:
http://arabicandroid.googlecode.com/files/libskiagl.so

Put everything on root of 'C' drive for easy access.

With your phone connected via USB to your PC, run these commands in command prompt:

adb remount
adb push c:\DroidSansFallback.ttf /system/fonts
adb push c:\libwebcore.so /system/lib
adb push c:\libskia.so /system/lib
adb push c:\libskiagl.so /system/lib

Then restart your phone.

You are advised to take a nandroid backup just in case. (More info: http://code.google.com/p/android-roms/wiki/NANDROID_Backup)

You have to download the Android SDK to get the adb command.

Let me know if you need further help.

Please report if this works for you.

Anonymous said...

whats strange to me is people with nexus in the US stay the phone last one or two days but in your case it lasts upto 7 hours which to me is not bearable so i'm assuming it has something todo with the charger or different volts or something

Gus said...

I have optimized and tweaked my settings. I'm now able to survive a whole working day on a single charge. I think I will put a post on my own experience with this.

Don't forget that I also keep 3G on throughout the day.

Aziz (Milestone) said...

I tried to get the files on my milestone, but I'm getting an error.
adb remount (remount failed: Operation not permitted)
I do have the proper drivers from Motorola and my phone is rooted.
I couldn't figure out why it isn't working.
Thanks

Gus said...

Try starting the commands with:
su

Also try running the commands while in the recovery.

I'm sorry I don't have a milestone to test. It might be that you need to have a customer recovery image as well, which is unfortunately is still not available for the milestone.

Let me know how it goes.

Gus said...

Sorry try this before the commands, see if you get root access:

adb shell

You should get the $ symbol then type:

su

Aziz (Milestone) said...

It's still not working:

tools>adb shell
$ adb remount
adb remount
adb: permission denied
$ su
su
# adb remount
adb remount
adb: not found
#

Abdul said...

السلام عليكم

مشكور اخوي على التعريب
بس فيه مشكله بس مدري انت على علم منها ام لا الحين لما ترسل رساله اس ام اس الى جوال ايفون تطلع الرساله على شكل مربعات اما لو ترسلها الى جهاز نوكيا تطلع عربي هل من حل لها

شاكر لط

Gus said...

I'm not sure if something can be done on the iPhone.

Aziz, did you find a solution for your milestone?

Aziz (Milestone) said...

Not yet, but I'll let you know once I do.

Gus said...

Hi Aziz,

Try going into the standard recovery of the Milestone, connect your phone, and do this:

adb shell mount /system

Then run these commands:

adb push c:\DroidSansFallback.ttf /system/fonts
adb push c:\libwebcore.so /system/lib
adb push c:\libskia.so /system/lib
adb push c:\libskiagl.so /system/lib

Let me know if this works.

jamal said...

C:\tools>adb push d:\DroidSansFallback.ttf /system/fonts
failed to copy 'd:\DroidSansFallback.ttf' to '/system/fonts/DroidSansFallback.tt
f': Read-only file system

C:\tools>


Read Only in my miloestone
what to do please ?????

Anonymous said...

C:\tools>adb push d:\DroidSansFallback.ttf /system/fonts
failed to copy 'd:\DroidSansFallback.ttf' to '/system/fonts/DroidSansFallback.tt
f': Read-only file system

C:\tools>

read-only fily !!!! what to do

and from # same aziz issue: adb not found

Gus said...

Hi Jamal,

I'm sorry I can't test on Milestone because I don't have one.

Try this:

go into the standard recovery of the Milestone, connect your phone, and do this:

adb shell mount /system

Then run these commands:

adb push c:\DroidSansFallback.ttf /system/fonts
adb push c:\libwebcore.so /system/lib
adb push c:\libskia.so /system/lib
adb push c:\libskiagl.so /system/lib

jamal said...

thank you so much for your fast reply and coordinate with us.

i tried already from recovery but ADB couldn't find the device at all.
sure i have USB drivers installed in my computer.

jamal said...

dear
finely i could successfully push the 4 files to their place in device but no Arabic at all and nothing changed.
why?
although ADB gave me the right files size after each pushing.

Gus said...

Hi Jamal,

Can you see at least disconnected Arabic letter?

If you push the font you should see at least the Arabic characters in Arabic pages or SMS but not connected. Try deleting the file and then push it again. But I would suggest taking a nandroid backup first. Test only with the font file first.

Do this to take a copy of the file on your disk:

adb pull /system/font/DroidSansFallBack.ttf c:\DroidSansFallBackCopy.ttf

Then delete the file on the mobile:

adb shell rm /system/font/DroidSansFallBack.ttf

Then push the file again:

adb push c:\DroidSansFallback.ttf /system/fonts

Reboot.

Let me know how it goes.

Also if you can let me know how it worked for you so that we can let others know, it will be helpful.

Thanks.

jamal said...

sure our great developer
all credits go to you Gus, you are the man. the issue done with me today 2:00 am and i gave my device one day to check for any unexpected errors before publishing the full way in CE4ARAB. i used semi costumed recovery and it was little risky.

Aziz (Milestone) said...

I was able to get adb working in recovery, and pushed the font file, but arabic still isn't working, I'm getting boxes.
Here's what I used to get adb working in recovery.

http://alldroid.org/viewtopic.php?f=259&t=1617

MGS88 said...

I’ve tried to make it but it freeze on google logo(X mark) then restore by nand restore but the Wi-Fi say "unable to start wi-fi" any suggestion would be thankful

jamal said...

thank you
i published the full way in CE4Arab
follow this link:
http://www.ce4arab.com/vb7/showthread.php?t=196634

Aziz (Milestone) said...

I was also able to push the file after booting into recovery using http://www.alldroid.org/viewtopic.php?f=259&t=1617
but still no Arabic is showing, not even disconnected letters.

Gus said...

Hi Jamal,

I'm glad it worked for you. Thank you for your kind words. But I'm not the developer, I'm just the facilitator:) I have been with Android for 14 months now so I like to help in this regard.

If you don't mind I'm going to post about your solution in here in English to help others as well, crediting you of course.

I checked the ce4arab post and its an excellent effort.

Good luck.

Gus said...

Hi Aziz,

I suggest you check the post from Jamal:
http://www.ce4arab.com/vb7/showthread.php?t=196634

Because its working on his Milestone.

Let me know if you have problems with his solution.

Gus said...

Hi MGS88,

The new update from Google (ERE27) included a new radio image version:
32.24.00.22U_4.03.00.21_2

Check in your phone the verions of the radio, and if it is the same, it means you have the new radio. Even when you go back via Nandroid, the radio image will not change. You have to go back to the stock files to be able to restore the radio image, and then unlock and root again. The new radio image will not run on the original firmware knows as ERD79.

I couldn't find a radio image on its own to flash.

Check this post for information on going back to stock:
http://forum.xda-developers.com/showthread.php?t=614850

Aziz (Milestone) said...

My phone stopped working after following the steps on ce4arabs. After I pushed the files to my phone, I rebooted, it gets stuck on the boot screen.

Hatem said...

شكرا جزيلا لمتفاعلك

ولكن واجهت أكثر من مشكلة في جهاز المايلستون بعد تركيب الروم

الأوامر المدخله من خلال الـadb

C:\tools>adb shell mount /system
C:\tools>adb push c:\DroidSansFallback.ttf /system/fonts
C:\tools>adb push c:\libwebcore.so /system/lib
C:\tools>adb push c:\libskia.so /system/lib
C:\tools>adb push c:\libskiagl.so /system/lib

جميعها تمت بنجاح ،،

وبعد إدخالي للأمر

C:\tools>adb shell umount /system

ظهر لي التالي

umount: can't umount /system: Device or resource busy

ماهو الحل؟

تستطيع إستخدام الأنقليزية بالرد ،، تحياتي لك

Mohammed said...

i have Motorola milestone
it seems that the push order is not working
even i tried to use the pull but it giving me only the help file after pressing the enter button as below:

: - disconnect from a TCP/IP device
evice commands:
adb push - copy file/dir to device
adb pull - copy file/dir from device
adb sync [ ] - copy host->device only if changed
(see 'adb help all')
adb shell - run remote shell interactively
adb shell - run remote shell command
adb emu - run emulator console command
adb logcat [ ] - View device log
adb forward - forward socket connections
forward specs are one of:
tcp:
localabstract:
localreserved:
localfilesystem:
dev:
jdwp: (remote only)
adb jdwp - list PIDs of processes hosting a JDWP transpo

adb install [-l] [-r] - push this package file to the device and inst
it
('-l' means forward-lock the app)
('-r' means reinstall the app, keeping its da

adb uninstall [-k] - remove this app package from the device
('-k' means keep the data and cache directori

adb bugreport - return all information from the device
that should be included in a bug report.

adb help - show this help message
adb version - show version num

ATAOPTS:
(no option) - don't touch the data partition
-w - wipe the data partition
-d - flash the data partition

cripting:
adb wait-for-device - block until device is online
adb start-server - ensure that there is a server running
adb kill-server - kill the server if it is running
adb get-state - prints: offline | bootloader | device
adb get-serialno - prints:
adb status-window - continuously print device status for a specif
device
adb remount - remounts the /system partition on the device

can someone help me please?
is this issue related to the rooting of the device because its rooted already or its depend on the below order:
adb shell mount /system
because when i'm using it its giving me the same thing, the help file.

HKUNNANA said...

Same happened here:
"umount: can't umount /system: Device or resource busy"

Now my Milestone is bricked! only Motorola sign forever!

Please I need help urgent!!! I am not sure if the battery is charging in this situation.