rozen9937 / csipsimple

Automatically exported from code.google.com/p/csipsimple
0 stars 0 forks source link

ARMv4 support #20

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
-> What steps will reproduce the problem?
1. Download the application on the market.
2. Download additionnal components using the application.
3. Use the "Next" button when it's done.

-> What is the expected output? What do you see instead?
The program should work. It crashes instead (no forceclose, nothing at all).

-> What version of the product are you using? On what operating system?
I'm using The Robot (similar to Sciphone N19) from Chinavasion, Android 1.5.

-> Please provide any additional information below.
I attached the log.

Original issue reported on code.google.com by anonymou...@gmail.com on 9 Apr 2010 at 9:09

Attachments:

GoogleCodeExporter commented 9 years ago
Typical crash from an unsupported device.

Please use the following instructions :
[NewHardwareSupportRequest] to make me possible to build for this specific ROM.

Thanks in advance

Original comment by r3gis...@gmail.com on 14 Apr 2010 at 12:26

GoogleCodeExporter commented 9 years ago
I've followed those instructions, but the other app force-closes too. I 
attached the log.

It may be related to my CPU, which is armv4 (some libs aren't supported, that's 
why
some apps like Sipdroid don't work).

Original comment by anonymou...@gmail.com on 18 Apr 2010 at 5:38

Attachments:

GoogleCodeExporter commented 9 years ago
Sorry, there where a mistake in MediaGetLib.apk for android 1.5. I've just 
fixed it.
You can try to run the new version.

I hope it will fix the problem for you (i'm not really confident in the way .so 
are
attached - as application/binary, I hope that android 1.5 email application 
consider
this type as a valid attachement for emails).

If it still doesn't work, i'll write an alternate solution on the wiki based on 
the
SDK ( 
adb pull /system/lib/libmedia.so .
adb pull /system/lib/libcutils.so .
adb pull /system/lib/libutils.so .
).

For the cpu, I think that, since it's ARM architecture, it will work once I will
re-build for your phone media libs.
Besides, I think that sipdroid is not compliant with android 1.5, my app should 
be (I
have tested it with the phone of a collegue under android 1.5). Unfortunately 
from a
SDK point of view make an app compatible with android 1.5 is not really trivial 
and
there is a big gap between 1.5 and 1.6. So I guess that sipdroid devs had 
decided to
not support this sdk. But I think that there is still a lot of user that are 
using
1.5, so I'll try to support it as long as it will be possible.

Thanks

Original comment by r3gis...@gmail.com on 18 Apr 2010 at 6:36

GoogleCodeExporter commented 9 years ago
It is still crashing. I attached the log again.

I attached those libraries too.

Original comment by anonymou...@gmail.com on 18 Apr 2010 at 9:57

Attachments:

GoogleCodeExporter commented 9 years ago
Many thanks for the libs. It's exactly what I need to make the build.

I attached a version of the application (with a bundled native lib compiled for 
your
device). You'll need to uninstall previously installed version.

If everything is ok, the application should start without trying to download 
anything
and without crashing. If it redirects you to the wiki page, your guess was 
right,
there is an issue with the CPU version, and I fear that it will be really 
difficult
to support this kind of device.

I'll look closer the problem with MediaGetLib and android 1.5. (I'll open a new 
issue
for this).

Original comment by r3gis...@gmail.com on 19 Apr 2010 at 8:08

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks for your tries, but unfortunately it still crashes. ;(
It didn't try to download anything though, as expected. It simply launches with 
a
black screen, then crashed a few seconds after.

I attached the log again.

Original comment by anonymou...@gmail.com on 20 Apr 2010 at 9:52

Attachments:

GoogleCodeExporter commented 9 years ago
Bad news :(.

As you suspected, it's probably a problem with armv4.
I've just found a webpage which deals with this kind of issue
(http://benno.id.au/blog/2008/10/27/android-on-armv4-take2). (There is also 
other
references that announces that armv4 is unfortunately not supported by NDK 
(native
developpement toolkit). :(

So i'll try to follow instructions given by benno on his website. It may take 
some
times because I've to modify the NDK once again to merge benno's changes and my 
changes.
It will take me time. So stay tuned, but i'll not submit you a fix until 
several weeks.
Once again, many many thanks for all the time you spent testing the app and I 
hope
that my next try will be the good one :).

Original comment by r3gis...@gmail.com on 21 Apr 2010 at 6:35

GoogleCodeExporter commented 9 years ago
It progresses : I've already modified the NDK to be able to build using ARMv4
instructions.
I have now to retrieve the dynamic libs for amrv4 (some of the .so included in 
the
system) and the headers used for armv4 android builds. However, I can yet 
provide a
library built for armv4 but I'm not 100% sure it's binary compatible for the 
other
armv4 libs. I'll post soon the package I already have (but i'm not confident in 
it).

Original comment by r3gis...@gmail.com on 10 May 2010 at 6:06

GoogleCodeExporter commented 9 years ago
Do you need any file from my Android system ?

Original comment by anonymou...@gmail.com on 20 May 2010 at 12:26

GoogleCodeExporter commented 9 years ago
You can try the attached apk.
If you are able to launch the application and that the app doesn't send you to 
the
wiki page it will be a really a good news.
Else I'll need all the .so that are in the /system/lib of your phone. (and if 
you can
also send me the stack trace given by logcat)

Thanks in advance

Original comment by r3gis...@gmail.com on 20 May 2010 at 9:50

Attachments:

GoogleCodeExporter commented 9 years ago
I have just installed the apk from comment 10.
The application now starts and at some point I was even able to see the next 
screen
after hitting the add button, where one can choose the type of account. 
Thereafter it
kept closing and restarting. I am running this on my openmoko freerunner and I 
have
attached the logcat. 
If there is any other way I can help, please let me know.

Original comment by robin.se...@biologie.uni-freiburg.de on 21 May 2010 at 8:08

Attachments:

GoogleCodeExporter commented 9 years ago
Great, many thanks for the test.
It fails really early when it calls the native lib but the stack trace attached
explains me why. There is still things I have to modify on the NDK to get it 
work
with armv4 (re-build the toolchain for armv4) (at least for armv4 since it 
appears to
be different from armv4T - so for the robot it's still worth to try maybe the 
failure
doesn't appear so quickly that it appears on the Neo Freerunner).

I'll also try to see if it couldn't be directly built using the openmoko android
portage source (it could be easier than use a ported NDK in a first time) (and I
guess this portage is open-sourced).

Original comment by r3gis...@gmail.com on 21 May 2010 at 11:00

GoogleCodeExporter commented 9 years ago
Thanks for the file, I tried it and got something like #11 described.

However I went further in the tests. I tried 2 things.

The first time, I enabled Wifi and I was connected to my personal network. The 
app
launches, BUT it crashes many, many times, well, it never ends crashing every 
few
seconds. Those crashes don't bring home screen back, they just make the screen 
black
for a few seconds, the notifications bar remains visible though. If I'm fast 
and if I
get lucky, I can hit "Add account", then I'm being asked to choose between a few
wizards, however hitting one of those wizards does not work, it does nothing 
and the
next crash occurs quickly. I attached a (big) log named CSipSimpleWifi.txt for 
this.

Then, I tried disabling Wifi. SAME RESULT so I won't talk about this.

Then, the "true" second time, I rebooted the phone without enabling the Wifi. 
When
launching CSipSimple, I'm getting a little message saying I'm not connected to 
any
network ("The Robot" / "Sciphone N19" / TA1 doesn't have 3G and I don't need 
it, and
I didn't enable GPRS of course :] ), and I can hit "Add account" ; the app 
seems to
work. However, when I try to hit any wizard, the app FORCE CLOSES (and 
restarts). But
if I do nothing at all except launching the app, I'm getting no crash at all. I
attached a log named CSipSimpleNoWifi.txt for this.

Finally, I pulled by .so files as you asked, all is in the .zip file attached. 
:)

Original comment by anonymou...@gmail.com on 22 May 2010 at 12:09

Attachments:

GoogleCodeExporter commented 9 years ago
I just wanted to state that I have the same issues as #13 with 
enabling/disabling
wifi which makes quite a difference when the program crashes.
I thought the neo freerunner was armv4t (I dont quite know what the difference 
is
between armv4 and armv4t but I know that on the navit site for android they 
point the
freerunner users to: 
http://download.navit-project.org/navit/android_armv4t/svn/)

Best regards and again a lot of thanks for your efforts!!!

Original comment by robin.se...@biologie.uni-freiburg.de on 22 May 2010 at 5:39

GoogleCodeExporter commented 9 years ago
There is significant progress on this point !

http://code.google.com/p/android-on-freerunner/issues/detail?id=142#c11

Henri (comment 11 on the above post), found a way to use NDK for armv4t ! He 
even succeed in building and running CSipSimple on a freerunner :D

http://code.google.com/p/csipsimple/downloads/detail?name=CSipSimple_0.00-13-arm
v4t.apk
Will be fine for armv4*T* . I don't know if it will works form armv4 (I don't 
really know what are the difference between the two cpu). So for armv4 owners 
(sciphone) worth to try with this one.

Original comment by r3gis...@gmail.com on 2 Oct 2010 at 9:43

GoogleCodeExporter commented 9 years ago
Well, I just bought a Galaxy NAOS. :p

I damaged something on my Sciphone hardware recently. But I could fix it and 
try the new version of your app for armv4(T) devices, IT DOES WORK.
(I have no sound when I call (with Freephonie) but this occurs with the NAOS 
too, and the app is sometimes slow but this is because of the bad processor of 
the Sciphone)

Your replacement app does execute on armv4(T) devices. If you publish it on the 
Market, I guess you can close this ticket.

Original comment by anonymou...@gmail.com on 5 Oct 2010 at 6:21

GoogleCodeExporter commented 9 years ago
@anonymous : really good news that it works with your sciphone too :).

You can send me a direct mail about your problem with sound. I guess that's a 
problem with either the network or the configuration. But as it could also be a 
problem with audio layer worth to ensure there is not something wrong.
I know that on android Q8 a clone of sciphone there is something wrong with 
audio micro... so still some issues to check to ensure it's good.

Original comment by r3gis...@gmail.com on 5 Oct 2010 at 10:05

GoogleCodeExporter commented 9 years ago
the arm4t also works very nicely with the openmoko freerunner. Automatically 
reregisters as soon as wifi is present. 
The audio quality (with sipgate as provider) is fine and goes both ways. If you 
have any suggestions on how to acchieve full echo cancellation and a smaller 
latency please let me know. Thanks again for all your hard work!!!

Original comment by robin.se...@biologie.uni-freiburg.de on 5 Oct 2010 at 8:42

GoogleCodeExporter commented 9 years ago
the arm4t also works very nicely with the openmoko freerunner. Automatically 
reregisters as soon as wifi is present. 
The audio quality (with sipgate as provider) is fine and goes both ways. If you 
have any suggestions on how to acchieve full echo cancellation and a smaller 
latency please let me know. Thanks again for all your hard work!!!

Original comment by robin.se...@biologie.uni-freiburg.de on 5 Oct 2010 at 8:42

GoogleCodeExporter commented 9 years ago
the arm4t also works very nicely with the openmoko freerunner. Automatically 
reregisters as soon as wifi is present. 
The audio quality (with sipgate as provider) is fine and goes both ways. If you 
have any suggestions on how to acchieve full echo cancellation and a smaller 
latency please let me know. Thanks again for all your hard work!!!

Original comment by robin.se...@biologie.uni-freiburg.de on 5 Oct 2010 at 8:43

GoogleCodeExporter commented 9 years ago
Well, for latency I guess that's due to the hardware limits - you could try to 
change the codecs to force PCMU/PCMA (known to consume less cpu than others). 
You could also try to change clockrate/frequency (change between 16kHz & 8kHz : 
8kHz will consume less CPU but increase latency, 16kHz latency will be twice 
lower but cpu will be more loaded)
It could also be due to the audio implementation of the phone.
And finally, there is maybe also optimization that I could try in the lib but 
could take time to find out what is the good settings for a particular phone. 
I've already done some pass on these settings during an optimization pass. But 
maybe could be tweaked for a particular device/architecture.

To complete to fix this bug and be able to distribute it I actually do for the 
market version, I'll need more info about the phone.
In fact, when the app starts the first time it download on the web the library 
that match the more its capabilities. For that I use system properties. So I'll 
need these properties to determine that your phone need this version of the lib 
(I didn't found any way to know the CPU arch from android, so I suppose that 
I'll have to use model or build.
So If you can install on your phone DeviceInfo (or some application that 
collect infos from the device) and send it to me would be nice :)

Thx in advance

Original comment by r3gis...@gmail.com on 9 Oct 2010 at 11:13

GoogleCodeExporter commented 9 years ago
Hi,

I have tried to find DeviceInfo, but haven't succeeded. Do you know the 
developers homepage or an apk I can download and run to give you the necessary 
information. I also tried sysinfo-for-android, but unfortunately it doesn't 
build on the fone as the sdk is too old. 

Original comment by robin.se...@biologie.uni-freiburg.de on 9 Oct 2010 at 7:46

GoogleCodeExporter commented 9 years ago
Yes I forgot that, its probably not compatible with 1.5 (that's a shame since 
supporting 1.5 is not so hard).

If you have an adb access (I mean the android sdk installed) on your phone the 
easiest way is to type:

adb shell getprop
or 
adb.exe shell getprop (if you are on windows)
in a shell/command
And send me the result of the command. (I'm more interested in first entries 
ro.product.*

If you have no adb access, let me know and I'll write a little program to 
collect these infos (could be a good starting point for a feature that embed a 
bug report tool).

Original comment by r3gis...@gmail.com on 9 Oct 2010 at 7:58

GoogleCodeExporter commented 9 years ago
Hi,

adb shell getprop worked. See file attached.

Original comment by robin.se...@biologie.uni-freiburg.de on 10 Oct 2010 at 8:36

Attachments:

GoogleCodeExporter commented 9 years ago
Well, sorry but I bricked my old Android, I may get get it functional one day, 
but not now... ^^

I can't try anything now, though. Including CSipSimple.

Original comment by anonymou...@gmail.com on 17 Oct 2010 at 9:49

GoogleCodeExporter commented 9 years ago
will the future releases (from 0.13 onwards) also have an arm4t version to 
download?
v0.15 (no armv4t extension) doesn't work on the freerunner, the v0.13armv4t 
works

Original comment by robin.se...@biologie.uni-freiburg.de on 19 Oct 2010 at 7:24

GoogleCodeExporter commented 9 years ago
In theory, if you uninstall dev version. And install the one from the market. 
(Or 0.00-15 (not 0.00-15-01 : devs version have bundled .so files). It ~should~ 
download the library from the good place at first startup if you are on a 
freerunner (thanks to the device id you provided me in last comment).

But you must uninstall dev version before doing that. Else it will remain 
trying to load the old bundled armv4 version which is not compatible anymore 
with the java code.
In fact, on the market version, at startup (and upgrades), it check this file : 
http://code.google.com/p/csipsimple/source/browse/trunk/pjsip_android/update.jso
n
Look for the first matching library, download it and load it.

If there is a dev version previously installed (and not uninstalled), the 
native taken is the one available in a specific directory I use for devs 
version (to avoid this heavy process of downloading the lib). However this 
process is (should be if it work) really cool for armv4 support ... since 
market version should be compatible will all devices (armv4, armv5/6 and armv7 
and in the future probably also x86)

Let me know if uninstalling and installing the market version makes things 
better. Else I'll ask you to help me to understand why it is not downloading 
the good version of the lib ;).

Original comment by r3gis...@gmail.com on 19 Oct 2010 at 7:58

GoogleCodeExporter commented 9 years ago
So if I understand you correctly my
"adb install -r CSipSimple_0.00-15.apk" is conflicting with the old 13armv4t 
version. So each time I should first remove the app from the phone, before 
reinstalling the new version? Unfortunately the freerunner has no market 
support so I can only use the "apks" you provide in "downloads". Therefore my 
question is it fine to:
a) uninstall previous Csipsimple from phone
b) dowload your CSipSimple_0.00-15.apk 
c) do .adb install CSipSimple_0.00-15.apk 
d) reconfigure the Csipsimple with the correct provider infos?

Original comment by robin.se...@biologie.uni-freiburg.de on 19 Oct 2010 at 11:43

GoogleCodeExporter commented 9 years ago
Yes,
However for next installs, you'll be able to just update the markets version 
and it will be fine. 
In the future, you must never try a dev version (0.00-xx-xx) but always 0.00-xx 
version (which doesn't have the .so inside).
So for 0.00-16.. you'll just need adb install -r CSipSimple_0.00-16.apk. And 
you'll not need to reconfigure everything (nor uninstall previously installed 
version).
Reinstall is just needed when switch from a dev version (0.00-xx-xx) to a 
"market" version 0.00-xx. (Or from 0.00-xx to 0.00-xx-xx)

In fact when I say market version it's just a production version (that is not 
debuggable and doesn't have .so files inside).

Original comment by r3gis...@gmail.com on 19 Oct 2010 at 11:57

GoogleCodeExporter commented 9 years ago
Thanks for the explanation! all makes sense now. I will give it a try later 
today. 
Please keep the "apks" also here in the future on your site for download, as 
others may also need the apks directly as I do with the freerunner not having 
access to market. Thanks for the work again!

Original comment by robin.se...@biologie.uni-freiburg.de on 20 Oct 2010 at 7:53

GoogleCodeExporter commented 9 years ago
Yes yes don't worry, 
It would make non sense for an opensource project to distribute it only through 
the android market (which is a closed mean of distribution).
I'll try to distribute CSipSimple by all possible ways. 

I do opensource, libre and with a good (I enforce to) ethic distribution and 
contributions. 
I do this precision cause, I'm a little bit afraid of the current debate 
between Google and Apple about "openness" of their stuff... They don't seems to 
make the difference between opensource, 'libre' and ethic which are three 
really different things ! 
CSipSimple like Firefox is Opensource, Libre and Ethic
Android is Opensource and Libre - the ethic of contributions and distribution 
made by Google of the project can be discussed
And iOS is not opensource, not libre... and I'll just avoid to talk about their 
ethic standards...

So yes, distribution of CSipSimple will remain ethic, and I'll also enforce to 
welcome all contributions to the projects if contributions make sense.

Sorry for the little digression, but I was discussing this morning with apple 
fanboys I work with about recent declaration of Andy Rubin and Steve Jobs about 
openess of android... And was amazed to see that the two CEO and also my 
colleagues doesn't really understand the diffs between software licences, 
project distributions and projects contributions.

Original comment by r3gis...@gmail.com on 20 Oct 2010 at 8:41

GoogleCodeExporter commented 9 years ago
Hi

I tried the new 0.00-15 after uninstalling any previous version of csipsimple. 
It starts fine, tries to download something, but then crashes. Restarting the 
phone and starting Csipsimple doesn't work.

I reinstalled the 0.00-13armv4t version. That one works just fine. Any ideas?
I attached the logcat, hope that helps.

Original comment by robin.se...@biologie.uni-freiburg.de on 21 Oct 2010 at 8:26

Attachments:

GoogleCodeExporter commented 9 years ago
It seems to have downloaded the good version of the library. 
Maybe I did something wrong when I built the armv4 version (I maybe forgot to 
do make clean before building).

I'll try to do a private build that I'll send you by mail to check another 
version of the library. I'll do that tomorrow, if I forgot, don't hesitate to 
ask me again ;). 

Original comment by r3gis...@gmail.com on 21 Oct 2010 at 10:02

GoogleCodeExporter commented 9 years ago
Ok I've forgotten, shame on me :S.

Well anyway, good news for those how want to keep up to date with ARMv4t 
support :

http://nightlies.csipsimple.com/armv4t/
(Builds each night if needed @5:01 CET)

If you want me to freeze some revision and publish it to the download section 
of this website, just ask me.

Original comment by r3gis...@gmail.com on 6 Dec 2010 at 1:29

GoogleCodeExporter commented 9 years ago
Marked as fixed. But if you encounter problems with nightly builds let me know.

Original comment by r3gis...@gmail.com on 20 Dec 2010 at 11:20