# What mobile device suits FreeBSD users best?



## robroy (May 8, 2018)

FreeBSD Friends,

I've resisted entry to the world of modern mobile devices (smart-phones and tablets) for as long as possible!  My only "mobile device" at the moment is a T-Mobile pre-paid non-smart cell phone.  I like how dumb it is, and I hardly ever use it.

I now have incentive to pick up a mobile device, with these characteristics:

It should be able to run either iOS or Android "apps" (I'm not sure I'm capable of ever using that term without the quotes around it).
It should have both wireless Ethernet and cellular networking; I'll probably seek out an unlimited usage cellular service for it.
It should be "a friend to FreeBSD."  What I mean is, my purchase and involvement with it shouldn't promote anything harmful to FreeBSD.
It should be as easy as possible to couple together with my FreeBSD servers and workstation, in terms of access to my data in Unix, and maybe even remote access to the device from my workstation.
If it were possible to use OpenSSH on it with a key, to make a quick'n'dirty "VPN," using the SOCKS proxy stuff, that'd be way easier for me than having to learn about configuring IPSEC.
I've never used or even _seen_ an Android device before.  I poked around and saw a few old threads about Android-related stuff on FreeBSD, but nothing that convinced me that running Android "apps" on FreeBSD was really practical--at a minimum, it smells like I'd have to run Windows in VirtualBox, and an Android emulator on top of _that_, and that's a lot of "monkey motion!"

I have seen iOS devices and poked around at them.  I strongly dislike their user interface.  But I also suspect that they may be the best way to "get the job done," and I do like that they're _not Linux_.

I realize that I could run FreeBSD on a ThinkPad X series and a cellular networking card, and possibly get Android "apps" running on it, but I'm concerned that making it work smoothly would be a long, tedious road, and that ultimately, it just wouldn't be anywhere near as convenient as a purpose-made "tablet."

I suspect that many of you have experience with either Android or iOS, and have spent much time getting it to "mind meld" with FreeBSD in one way or another.

So, what's the best path?

On the poll, I'd appreciate it if y'all chose the FreeBSD-based option only if you have recent personal experience with really making this work, and are able to provide specifics.  Guesses about it are easy for me to whip up on my own hahaha.

Thanks so much for y'all's opinions.

Robroy


----------



## rigoletto@ (May 8, 2018)

I do not like any. I use Android just because I cannot live without some applications due to "external" forces, otherwise I would not ever have a landline/regular phone. I just got one (smartphone) a couple of years ago.

However, in reply to your question, I guess Android works better since it seems to give more options to interconnect with FreeBSD, like adb, fastboot etc.

Oh, for people running KDE there is the nice deskutils/kdeconnect, which had a attempt to also support iOS but it seem that was abandoned.


----------



## chrbr (May 8, 2018)

robroy said:


> My only "mobile device" at the moment is a T-Mobile pre-paid non-smart cell phone. I like how dumb it is, and I hardly ever use it.


We might have the same phone: https://en.wikipedia.org/wiki/Nokia_3310. I guess we use it with the same frequency. The phone refuses to break which is not good for the economy... My wife has a smart phone from Huaweii running Android something. It was possible to connect shared memory disk or so using tools available under FreeBSD.


----------



## abishai (May 8, 2018)

IMHO, the best mobile device for FreeBSD users are those, that don't vendor lock. I'd use LineageOS compat list before purchase.
Nextcloud is for synchronisation between FreeBSD desktop and phone.


----------



## Phishfry (May 8, 2018)

I have also used Android on my Arm boards. Most specifically the Odroid.
The non-official Andoid builds are different. Most don't include the GooglePlay store,
which is the official method for loading apps.
On opensource Andoid there is no Google Play store(Maybe now they do, it's been a while)
So you must load your apps via apk's.
Problem is most apps don't want you to use this method and don't provide APK's to make you use the Google Play store.
I just figured I would mention that. Apps on Android -x86 can be a pain.


----------



## rigoletto@ (May 8, 2018)

Phishfry

Currently there are several alternative stores like F-Droid, APKMirror, and Aptoide.


----------



## kpedersen (May 8, 2018)

iOS is an absolute no go for me. I refuse to use a device that I cannot install and run software offline. I will not be tied to servers run by idiots or criminals. Not being able to run software that *I* have written without requesting it from Apple is an absolute embarrassment I am surprised any techie finds acceptable.

Android is a better option to an extent. Certainly stay away from Google branded hardware because these need to be activated over the internet (again, you are tied to servers run by idiots and criminals).

Its pretty much dead now but Blackberry from RIM is an OK alternative. Certain versions of the OS (based on QNX UNIX-like) can run Android apps (with a performance penalty).
However I personally only really use Blackberry because of the physical keyboard and the smug grin I can express when I ask "Does your [c]rapp have a Blackberry port?", knowing full well that since Blackberry Apps are written in C++ and are fairly technical to write, app makers stand no chance of getting it to work 

Oh, and whatever your smart phone choice, I recommend leaving it firmly offline as soon as you have done a wipe on it. In the year 2018, "smart" phone manufacturers are corrupt as hell and are going to try their hardest to damage you :/


----------



## abishai (May 8, 2018)

Phishfry said:


> These are "un-official file sites" and with all the stuff we know about phone app spying.


F-Droid is FOSS repository and builds all stuff it seeds. You can download their tools and setup the very same custom repo, like with poudriere.


----------



## michael_hackson (May 9, 2018)

Hi! I myself is a dumbphone user and I view Android units and Iphones as tools for mindcontrol, but I will most likely tinker with smartphones soon enough.

Do you know of Purism and PureOS? They have teamed up with KDE and Gnome and are about to release the Librem 5 smartphone with their OS on (Gnu/Linux).

https://puri.sm/shop/librem-5/

The "Librem 5 can communicate with anything" part may also enable easy connect with FreeBSD, essentially it's fully Linux on phone.

https://puri.sm/posts/tag/pureos/

http://www.linux-magazine.com/Online/Features/Librem-5-and-the-Challenge-of-the-Free-Phone

"Applications will run in isolation, so that the compromising one will not allow access to the entire system. Additional security will be provided by a VPN service, default IP-based communication, and end-to-end encryption. Uniquely, among phones, the Librem 5 will also separate the CPU from the Baseband processor and include hardware kill switches for WiFi/BT, the webcam, the microphone, and Baseband."

To me it will have a lot of appealing functions and being able to change into another Linux distro of your liking is also a nice thing.

Maybe I think this is cooler than it is because I have very little knowledge of smartphones and can hardly keep the terminology right, or because I am a smartphone phobiac and feel closer to Linux than iOS and Android. 

*Edition: *Missed that you wish to be able to run iOS and/or Android apps: According to reddit Purism has set a stretch goal to make Librem run Android apps, but not for the launch. Otherwise you could install Anbox and try it out.


----------



## rigoletto@ (May 9, 2018)

Phishfry 
I have F-Droid installed and some apps (<--- I hate this word) what are paid on Google Play are free in there, like DAVdroid.


----------



## obsigna (May 9, 2018)

kpedersen said:


> iOS is an absolute no go for me. I refuse to use a device that I cannot install and run software offline. I will not be tied to servers run by idiots or criminals. Not being able to run software that *I* have written without requesting it from Apple is an absolute embarrassment I am surprised any techie finds acceptable. ...


Actually, you can put your own software which you have developed or for which you got the sources onto your iOS device. You only need a Mac with a recent Xcode and a free Apple-ID. You would connect the iOS device to your Mac for deploying the software compiled and built with Xcode. You can develop your part in Objective-C++.

The US$ 99/y Apple Developer account would be only necessary if you want to distribute your software via Apple's App Store to the ROW. The very details can be found here:

https://blog.ionicframework.com/deploying-to-a-device-without-an-apple-developer-account/


----------



## michael_hackson (May 9, 2018)

lebarondemerde said:


> Phishfry
> I have F-Droid installed and some apps (<--- I hate this word) what are paid on Google Play are free in there, like DAVdroid.



Hate the word "apps" too and as far as I remember I learnt that it was named "programs" and nothing else. Looking back in similar or same literature is now showing the word "application" and not "program". I bet this is a Mandela Effect.


----------



## aragats (May 9, 2018)

Phishfry said:


> I use StraightTalk tablet plan myself and use 5gig's every 2 months=$50


I believe H2O (AT&T reseller) has better plans, I switched to it from Straightalk.


----------



## aragats (May 9, 2018)

I also use BlackBerry (like kpedersen ), however, now they just sell QNX itself, and discontinued their phones. So, it's a dead end...
Regarding robroy 's original question: if you're not an "app" or mobile OS developer why do you even worry about FreeBSD "friendliness"? You can always install an SSH or Samba server in your smartphone (regardless what OS it has) and access it via the network. It's waste of time and efforts to install and configure all those fancy tools to interface modern smartphones. I never even connect my phone to a computer.


----------



## kpedersen (May 9, 2018)

obsigna said:


> Actually, you can put your own software which you have developed or for which you got the sources onto your iOS device. You only need a Mac with a recent Xcode and a free Apple-ID. You would connect the iOS device to your Mac for deploying the software compiled and built with Xcode. You can develop your part in Objective-C++.
> 
> The US$ 99/y Apple Developer account would be only necessary if you want to distribute your software via Apple's App Store to the ROW. The very details can be found here:
> 
> https://blog.ionicframework.com/deploying-to-a-device-without-an-apple-developer-account/



Exactly. You need to ask Apple to allow you to run your own code. The "free Apple-ID" online connection to your hardware is their form of control and adding their DRM and broken workflows into your life and solutions.
Not only this but obviously it is "per-device". So you need what is known as a provisioning profile which is locked to your specific handset (so they can retain absolute control of you from the hardware level). So when your Apple iPhone breaks in the next 6 months, you have to croock your neck so that they can spoon-feed you your next provisioning profile so that your code works on your next disgraceful device.

And when Apple is finally defeated and retreats back under the sea from where it came, these broken "provisioning" servers will no longer exist and your device will effectively be bricked, and sent to the landfill where Apple can stick one last finger up at you.

Yes, I am being a tad melodramatic and I do occasionally work contracts where an older software needs porting to iOS but I would never actively choose to support a company that is such a massive c*nt towards other humans.


----------



## obsigna (May 9, 2018)

kpedersen said:


> Exactly. You need to ask Apple to allow you to run your own code. The "free Apple-ID" online connection to your hardware is their form of control and adding their DRM and broken workflows into your life and solutions.


I don't want to argue about your personal feelings with Apple here, this is your choice and I am happy with this. Some of your misconceptions need a clarification though:

the free Apple-ID is needed for creating the Personal Development Team identifier within Xcode on the Mac, and this is a onetime operation and no iOS device needs to be connected in this stage.


still within Xcode on the Mac, the personal App signing certificate needs to be created, and this personal certificate will be a self-signed one, using the just created Personal Development Team identifier. This certificate can't be validated against Apple's CA anyway, and so it wouldn't matter in this respect if the Apple server goes down forever – still no iOS device is connected.


when building the self-developed App with Xcode, it would be signed, using the self-signed certificate in the same breath –  still no iOS device is connected.


now comes the free Apple-ID into play on the iOS device, it is needed to tell the Device Management of iOS to trust the self-signed certificate – this is a onetime operation, and it can be repeated on as many devices which are owned by the person having said Apple-ID.


now the iOS device would be connected to the Mac, and hitting the Play button in Xcode would transfer the self-developed and self-signed App to the device.
Resume of the opera, we can develop our Apps for our iOS devices and put it on them using a self-signed signing certificate, which would even work if Apple would tomorrow stop with its computer business and starts selling ice cream.


----------



## robroy (May 9, 2018)

aragats, obsigna, kpetersen, michael_hackson, lebarondemerde, Phishfry, abishai and chrbr, thank you all so much for your excellent replies.



aragats said:


> I also use BlackBerry (like kpedersen ), however, now they just sell QNX itself, and discontinued their phones. So, it's a dead end...



That's sad; I'd love to use a QNX device.  I wonder if their current Android-based devices may be a little better than those from other manufacturers.



aragats said:


> Regarding robroy 's original question: if you're not an "app" or mobile OS developer why do you even worry about FreeBSD "friendliness"?



Indeed I am not an "app" or mobile OS developer, and I doubt I'll ever go down that road.  

I worry about FreeBSD-friendliness because when considering a time and money investment in anything technology-related, how my actions relate to FreeBSD matters to me; if "option A" tends to support FreeBSD (even if only indirectly), and "option B" seems more likely to detract from FreeBSD in some way (i.e. buying an Android kind of says, "big business, you were right to go with Linux"), I'll go with option A.

Yet knowing ~nothing about iOS and Android, it's not clear to me which choice is friendlier to FreeBSD.  Maybe they're equal in this way, but I doubt it, considering that (I'm guessing here) iOS may directly include code from FreeBSD (like macOS does).



aragats said:


> You can always install an SSH or Samba server in your smartphone (regardless what OS it has) and access it via the network.



Really?  I played around with an iPad Mini back around 2015, and it appeared to have no SMB support at all.  This really blew my mind.  

And what I really wanted was an NFS client, which it also didn't have (which seemed ridiculous to me, because I'm pretty sure the building blocks for that are there).

I searched for something that would add SMB support to it, and all of the options I found smelled profoundly "hokey-pokey."  I definitely did not see any easy way to put Samba or OpenSSH on it.



aragats said:


> It's waste of time and efforts to install and configure all those fancy tools to interface modern smartphones. I never even connect my phone to a computer.



Yeah, I can imagine.  I'm not really all that interested in those fancy tools either.

One of the most interesting things about this thread is that the poll's currently tied!

Yet so far, most comments seem to favor the Android.

Those of you who voted for iOS:  I'd enjoy hearing about your reasons for choosing it _over_ Android.

Thanks so much once again; I really appreciate y'all's thoughts on this!
Robroy


----------



## obsigna (May 9, 2018)

robroy said:


> ...
> Really?  I played around with an iPad Mini back around 2015, and it appeared to have no SMB support at all.  This really blew my mind.
> 
> And what I really wanted was an NFS client, which it also didn't have (which seemed ridiculous to me, because I'm pretty sure the building blocks for that are there).
> ...



Well, I jail breaked my iPhone, and I put Netatalk (AFP) and Samba (SMB) on it, and even NFS would be possible. And I even am able to SSH into it. That said, I do not recommend this, and I did not use this for anything besides serving my curiosity. 
IMO, the way to go for mobile devices either of iOS or Android is WebDAV over HTTPS, I setup a WebDAV share on my FreeBSD home server using Apache24 and its DAV modules, this does simply work. The other file services are simply not safe over the internet. WebDAV works very well with my iPhone without jail breaking, and also with sharing of iWorks documents among different devices (no iCloud needed).


----------



## aragats (May 9, 2018)

The iOS jail-breaking is needed to use the privileged ports. It should be possible to run an SSH server on a port number >1024. 
The same is true for Android: there many SSH Server apps are available, but you cannot run them on port 22 if the device is not rooted.


----------



## kpedersen (May 9, 2018)

obsigna said:


> Some of your misconceptions need a clarification though


Like I mentioned I do work on iOS occasionally and my strong words were partially in jest (still think they are a bunch o' c*nts though .

However, you might be falling for their "invisible" DRM. This can be exposed using the "desert island" technique.

1) Make a backup of all the software you need to develop iOS apps (i.e USB, DVD, etc)
2) Unplug your router and make your house go offline (no wifi, etc).
3) Reset your iOS device
4) Reformat and reinstall Mac OS X, Xcode etc...
5) Run through your development process
6) You will be unpleasantly surprised that you will hit a brick wall in your workflow.

This is DRM.

The most obvious points of failure:
- Step 3 will fail. iOS will not get past the initial setup without authenticating with Apple servers
- Step 5 will fail. Your provisioning profile will no longer work with your refreshed iOS (its unique key has changed)
- Step 5 will also demonstrate that existing compiled IPAs will also refuse to install because sideloading is impossible unless the device has been authorized to do so.


----------



## bookwormep (May 9, 2018)

I only use a dumb flip-phone myself; however, I really want to make my own custom phone if possible. If it can be designed and engineered to use FreeBSD - well I am always interested. I tend to rebuild my older hardware devices anyway...hence the knickname bookworm.


----------



## aragats (May 9, 2018)

bookwormep said:


> I really want to make my own custom phone if possible.


Have you heard about OpenMoko?



bookwormep said:


> If it can be designed and engineered to use FreeBSD


The main problem will be the radio equipment drivers, most likely you'll have to write them yourself.


----------



## tingo (May 10, 2018)

That would depend on the FreeBSD user, right? Personally, I like Android.
As for the "make my own custom phone", look at the Jolla guys and SailfishOS project, as well as postmarketOS. The "ecosystem" for a working mobile phone contains so many parts in addition to hardware drivers, that getting this working and be reliable is going to be much, much work


----------



## bookwormep (May 10, 2018)

aragats - I just looked at OpenMoko and it is interesting but seems pricey.

I was dreaming big to think that unused recycled cellphones could be fixed
at zero cost and turned into working mobile devices running FreeBSD..?
I did see an MIT project done by Mellis:
DIY Cellphone ; this had an original design and specific parts listing which 
is available on GitHub, as well.

Tingo - I have not looked at those projects, also looks interesting.


----------

