Opened 6 months ago

Closed 5 months ago

#29906 closed defect (fixed)

Tor for Android stops working immediately on app start

Reported by: torlove Owned by: sysrqb
Priority: High Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-mobile, tbb-crash, TorBrowserTeam201904, tbb-8.5-must-alpha
Cc: tbb-team, belm0 Actual Points:
Parent ID: #28329 Points:
Reviewer: Sponsor:

Description

On brand new Android KitKat (2017 update) with Orfox also running (cannot close orfox yet for tabs I still need to read).

Steps:
Have Orfox running with 3 or 4 tabs.
Install Tor Browser for Android (Alpha) (release from 4 days ago) via F-Droid.
Click the icon to load the app, then
White screen for one second then black screen for a tenth of a second, then Error dialog message pops up: " Unfortunately Tor Browser for Android (Alpha) has stopped working"

Note: Orfox still works fine.

Ideally I'd be able to run both TB and Orfox at the same time? One would be a different identity to the other?

Child Tickets

Change History (24)

comment:1 Changed 6 months ago by torlove

Hello Team,

Following up. I just tried resetting the phone.

Steps:
Trusted the Orbot VPN on startup.
Attempted to open Tor Browser for Android (Alpha) but exact same problem as above.

Therefore having Orfox open was not the problem.

comment:2 Changed 6 months ago by gk

Component: - Select a componentApplications/Tor Browser
Keywords: tbb-mobile tbb-crash added
Owner: set to tbb-team
Priority: MediumHigh
Status: newneeds_information

Hm. Does that happen as well if you don't run Orbot, just Tor Browser? Maybe that one is interfering here?

comment:3 Changed 6 months ago by torlove

I got on the car with this one.

Steps:
Disconnecting from the tunnel.
App menu in settings area.
Tapped on Orbot
Forced Stopped it
Tried opening Tor Browser for Android (Alpha) but exact same thing happens.

Then I tried steps:
Restart device (Orbot did not try to load automatically after I forced stopped it which was helpful),
Tried opening Tor Browser for Android (Alpha) but... yeah... not happening. Same thing.

comment:4 in reply to:  3 Changed 6 months ago by gk

Replying to torlove:

I got on the car with this one.

Steps:
Disconnecting from the tunnel.
App menu in settings area.
Tapped on Orbot
Forced Stopped it
Tried opening Tor Browser for Android (Alpha) but exact same thing happens.

Then I tried steps:
Restart device (Orbot did not try to load automatically after I forced stopped it which was helpful),
Tried opening Tor Browser for Android (Alpha) but... yeah... not happening. Same thing.

Alright, thanks. Let's find out if any of the earlier Tor Browser versions are working for you. Can you check those in https://archive.torproject.org/tor-package-archive/torbrowser/mobile/? (Note: they still require a separate Orbot which later versions don't need anymore)

comment:5 Changed 6 months ago by cypherpunks

Have you tried installing the firefox version Tor Browser is based on? Orfox uses the old firefox esr which may be why it is working and Tor Browser isn't

comment:6 Changed 6 months ago by torlove

What is Esr?

Thats a good idea! Which version of Firefox precisely? Maybe I'll just try to run the very latest and report back.

comment:7 Changed 6 months ago by torlove

gk... I almost missed your reply, that's another idea, sounds like a time consuming process though, to install parallel Orbot's but can do.

I should update FF anyway. Will report back after that first.

comment:8 Changed 6 months ago by cypherpunks

Couldn't find ESR release for mobile but closest may be version 60.0.2

comment:9 Changed 6 months ago by torlove

Ok, will try that one if I don't hear back.

comment:10 in reply to:  9 Changed 6 months ago by gk

Replying to torlove:

Ok, will try that one if I don't hear back.

Yes, 60.x is the one you would want to test. There is no mobile ESR, so that's the closest to what you get from Mozilla.

comment:11 in reply to:  7 Changed 6 months ago by sysrqb

Replying to torlove:

gk... I almost missed your reply, that's another idea, sounds like a time consuming process though, to install parallel Orbot's but can do.

I should update FF anyway. Will report back after that first.

Try 1.0a3 as the first test. You shouldn't need to change Orbot, simply uninstall the current version of Tor Browser for Android (Alpha) and install the older versions from the website. If that crashes, then repeat this process and install the next-older version.

Do you have any experience with getting logs from an Android device? Those would be very helpful, but getting them is not easy.

comment:12 Changed 6 months ago by torlove

Yes, version 1.0a3 (apk sha256 starts with "2db3ad33cd8b0") works!

I may be open to logs but not sure how much info I can provide. Ideally I wouldn't have to try a older version of Firefox (it turns out I already have a newer version than 60.xx.

I admit I'm right depressed today to find out that Bitcoin Wallet has dropped kitkat support. The phone is brand new, was expecting it to last for 4 years. :(

Does kitkat have critical vulnerabilites that make it unsuitable for btc and anonymous activity? If so, yet another phone will need to be bought.

comment:14 Changed 6 months ago by cypherpunks

I have tried installing Tor Browser on an Android 4.4.4 tablet emulator, the crash on startup starts with version 8.5a9, older versions show an "Orbot" screen but they all crash after waiting about 10 seconds. The emulator didn't have internet connection while testing.

comment:15 Changed 6 months ago by cypherpunks

This emulator isn't known to be very stable, I have installed Firefox 60.0.2 and 66.0.2 and both crash a few seconds after the browser shows up, so the crashes I get for earlier Tor Browser version may not mean anything.

comment:16 Changed 6 months ago by gk

Parent ID: #28329

Tentatively putting that as a child ticket of #28329.

torlove: We'd still like to hear back from your experience with testing the newer version in comment:13.

comment:17 Changed 6 months ago by torlove

Hi gk, none of the 4 listed above broke. All worked fines but the last one is sometimes refered to as Always-On Notifications, instead of Tor Browser, by the operating system.

comment:18 in reply to:  17 ; Changed 6 months ago by gk

Replying to torlove:

Hi gk, none of the 4 listed above broke. All worked fines but the last one is sometimes refered to as Always-On Notifications, instead of Tor Browser, by the operating system.

Yeah, that's a known issue, thanks for getting back to us. Thus, it seems 8.5a9 is the first broken release for you and the patch for #28329 the likely culprit.

comment:19 in reply to:  18 Changed 6 months ago by sysrqb

Replying to gk:

Replying to torlove:

Hi gk, none of the 4 listed above broke. All worked fines but the last one is sometimes refered to as Always-On Notifications, instead of Tor Browser, by the operating system.

Yeah, that's a known issue, thanks for getting back to us. Thus, it seems 8.5a9 is the first broken release for you and the patch for #28329 the likely culprit.

Confirmed. This is the result of using an object method added in a more recent API-level than KitKat (18). I'll correct this in the next branch I push for review on #28329. I'll also confirm there aren't other similar errors that will trigger after we correct this one.

E/GeckoCrashHandler( 2205): >>> REPORTING UNCAUGHT EXCEPTION FROM THREAD 1 ("main")                                       
E/GeckoCrashHandler( 2205): java.lang.NoSuchMethodError: android.widget.Button.setClipToOutline
E/GeckoCrashHandler( 2205):     at org.mozilla.gecko.torbootstrap.TorBootstrapPanel.onCreateView(TorBootstrapPanel.java:113)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)                                             
E/GeckoCrashHandler( 2205):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
E/GeckoCrashHandler( 2205):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
E/GeckoCrashHandler( 2205):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1177)                                                
E/GeckoCrashHandler( 2205):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)      
E/GeckoCrashHandler( 2205):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)                       
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)                      
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052)                                                                                                           
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)                                                                                                                   
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                             
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)                     
E/GeckoCrashHandler( 2205):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)                                     
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                             
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)                                                                                                   
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                      
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)                                                                                         
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                  
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
E/GeckoCrashHandler( 2205):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                                                     
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
E/GeckoCrashHandler( 2205):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
E/GeckoCrashHandler( 2205):     at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                   
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
E/GeckoCrashHandler( 2205):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)                                                                                                   [193/1884]
E/GeckoCrashHandler( 2205):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)             
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                                                                              
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)                                                  
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)                                          
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)                                                                                                              
E/GeckoCrashHandler( 2205):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)                                                                       
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                                        
E/GeckoCrashHandler( 2205):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)         
E/GeckoCrashHandler( 2205):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)        
E/GeckoCrashHandler( 2205):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
E/GeckoCrashHandler( 2205):     at android.view.View.measure(View.java:16497)                  
E/GeckoCrashHandler( 2205):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)                         
E/GeckoCrashHandler( 2205):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)   
E/GeckoCrashHandler( 2205):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)              
E/GeckoCrashHandler( 2205):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)                    
E/GeckoCrashHandler( 2205):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)                                          
E/GeckoCrashHandler( 2205):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)                   
E/GeckoCrashHandler( 2205):     at android.view.Choreographer.doCallback

comment:20 Changed 6 months ago by sysrqb

Owner: changed from tbb-team to sysrqb
Status: needs_informationaccepted

Accepting, resolution pending new branch for #28329

comment:21 Changed 6 months ago by gk

Cc: tbb-team added
Keywords: TorBrowserTeam201904 tbb-8.5-must-alpha added

comment:22 Changed 6 months ago by torlove

Good to see the problem has been identified and that I could play a small role in helping to keep this great project available to Kitkaters. Gotta keep Kitkat kicking, I say.

Can I also add that I am very impressed with how fast the menu is on the Tor Browser for Android, compared to the older Orfox. It's instant! Wonderful!

I encourage anyone who finds this ticket to donate to the Tor Project team at https://donate.torproject.org/ These guys are doing great things for humanity.

My Torlove BTC address: 1KK8rGnEPeMrzD2Mq5jUUFc8wZhcd2jfbS

Until our paths cross again.
Torlove

comment:23 Changed 6 months ago by belm0

Cc: belm0 added

comment:24 Changed 5 months ago by gk

Resolution: fixed
Status: acceptedclosed

That's fixed with commit d3ea3528ce2cde0675d297ea934090c77f4b5f76 on tor-browser-60.6.1esr-8.5-1 and will make it into the next alpha release (8.5a11).

Note: See TracTickets for help on using tickets.