[Android Software/Hacking General [Developers Only]] UrsusSolaris:
ZT-180 bug?

I need to make a plea for help to the XDA developers:

While it may not be a bug for anyone else, not being allowed to connect to Cisco wireless access points is an issue for me. I have them at work, and at the university, and the bug within the android code is real.

It has been documented by Google Code - Android (code.google.com/p/android/issues/detail?id=1597) and their issue closed. Mine just goes on and on.

The problem occurs when a ZT-180 tries to connect to internet and is captured by a "open" Cisco wireless access points. The user is supposed to be redirected to an https session on the AP with the URL of https//1.1.1.1, to enter the approved user login name and password. However, it is at this point, the browsers (both the standard internal and Dolphin HD) fail on the redirect. The cause is invalid certificate data on the Cisco wireless access points. It should be noted that windows, Mac and Blackberries do not have this issue connecting.

The explaination for the fix is in the above mentioned link, and the actual code changes are located in the diff taken from the above message thred:

"This certainly is something that will be released on source.android.com (aka aosp) when the Froyo code is released. In the meanwhile, I tried to explain the change so that people making custom ROMs could feel free to fix it. To be more explicit, here is the exact diff:

"diff --git a/core/java/android/net/http/SslCertificate.java

b/core/java/android/net/http/SslCertificate.java

index 46b2bee..2214405 100644

--- a/core/java/android/net/http/SslCertificate.java

+++ b/core/java/android/net/http/SslCertificate.java

@@ -196,26 +196,31 @@ public class SslCertificate {

*/

public DName(String dName) {

if (dName != null) {

- X509Name x509Name = new X509Name(mDName = dName);

-

- Vector val = x509Name.getValues();

- Vector oid = x509Name.getOIDs();

-

- for (int i = 0; i < oid.size(); i++) {

- if (oid.elementAt(i).equals(X509Name.CN)) {

- mCName = (String) val.elementAt(i);

- continue;

- }

-

- if (oid.elementAt(i).equals(X509Name.O)) {

- mOName = (String) val.elementAt(i);

- continue;

- }

-

- if (oid.elementAt(i).equals(X509Name.OU)) {

- mUName = (String) val.elementAt(i);

- continue;

+ mDName = dName;

+ try {

+ X509Name x509Name = new X509Name(dName);

+

+ Vector val = x509Name.getValues();

+ Vector oid = x509Name.getOIDs();

+

+ for (int i = 0; i < oid.size(); i++) {

+ if (oid.elementAt(i).equals(X509Name.CN)) {

+ mCName = (String) val.elementAt(i);

+ continue;

+ }

+

+ if (oid.elementAt(i).equals(X509Name.O)) {

+ mOName = (String) val.elementAt(i);

+ continue;

+ }

+

+ if (oid.elementAt(i).equals(X509Name.OU)) {

+ mUName = (String) val.elementAt(i);

+ continue;

+ }

}

+ } catch (IllegalArgumentException ex) {

+ // thrown if there is an error parsing the string

}

}

}"

----------------------------------

Now, if I was a computer sciences major, I might be able to do something about it, but I am majoring in digital animation, and have 35 years doing ink animation behind me. Re-coding a kernel is beyond me.

Does anyone know of a fix?

I thank you all for all that you have done thus far, and many thanks in advance for all the wonderful work you will do.