android

Google Android stuff

RemixOS Single Disk MBR Install (No Dual Boot)

This information is to help you install RemixOS directly on a hard disk, using (Legacy) BIOS boot method and MBR style partition table. Remix OS will utilize the entire hard disk and will not limit you to a 4GB /data partition. I will be using 2 USB thumb drives to get this working, none of which you will need to keep around when done.

Grab a copy of the 32- or 64-bit ISO. Just down the one you want here: http://www.jide.com/remixos-for-pc. It’s about 3/4 down the page.

Get a copy of Archlinux. We will use this as a live distro to modify the hard drive partition tables and format the disks as the RemixOS installer is very limited and does not offer the setup we need. You can find this here: https://www.archlinux.org/download/ choose any local mirror to you and get the ISO. Archlinux recently went to only 64-bit. You might need a different linux distro if your target machine is only 32-bit.

Open the zip file with WinRAR, 7Zip, WinZip. The default zip handler in Windows Explorer will probably work just as well. Copy out the RemixOS ISO file to your desktop or another folder. Do the same with the Archlinux ISO file.

I prefer to use Rufus to write ISO files to USB. You can grab Rufus here: http://rufus.akeo.ie/. Get the portable version, there is no need to install this utility.

Plug in a USB drive. Start Rufus with Admin Rights. Choose your USB drive on the top drop down, for the partition scheme choose: “MBR partition scheme for BIOS or UEFI”. Near the bottom click the CD-ROM Drive looking icon and choose the RemixOS ISO file you downloaded earlier. Uncheck the “Create extended label and icon files” box.

Click Start.

After Rufus is done set this RemixOS USB drive to the side. Do the same for the Archlinux ISO.

First we will boot using the Archlinux USB.

You sould be dropped to a command line once Archlinux is fully booted. I will use /dev/sda as our disk, first (primary) SATA drive in the system.

Wipe our primary hard disk:

gdisk /dev/sda
`Choose Expert Options then Zap the table. You will confirm and then booted back to the console.

Create MBR partition:

fdisk /dev/sda
`Create new partition, type (default) linux. Full size. Set flag bootable as well. Use the help screen.

Format partition:

mkfs.ext4 /dev/sda1

Mount the partition:

mount /dev/sda1 /mnt

Install GRUB bootloader:

grub-install --root-directory=/mnt /dev/sda

Edit grub.cfg file:

cd /mnt/boot/grub
nano grub.cfg

`grub.cfg file:
`--------------------------
set default=0
set timeout=3
set gfxmode=800x600
terminal_output gfxterm

menuentry 'Remix OS' --class android-x86 {
search --file --no-floppy --set=root /RemixOS/kernel
linux /RemixOS/kernel root=/dev/sda1 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive SERIAL=random DATA=/data
initrd /RemixOS/initrd.img
}
`--------------------------
`Change the androidboot.hardware=remix_x86_64 to androidboot.hardware=remix_x86 if your using 32-bit.

Save the file. Unmount the RemixOS disk and poweroff.

cd /
umount /mnt
poweroff

Put RemixOS USB into port remove Archlinux USB and power on computer.

Boot from RemixOS USB. On RemixOS Boot Menu hit [TAB] on “Resident Mode” so you can edit the boot parameters below the menu. Do not remove anything just append to the end of the line: INSTALL=1

So it looks like: …SRC= DATA= CREATE_DATA_IMG=1 INSTALL=1

Hit Enter to boot with the modified line.

Select your partition to install RemixOS on (sda1). When asked to format say “Do not format”. Do you want to install Boot Loader? SKIP! Do you want to install /system as read-write? YES

When asked to start RemixOS or Reboot. Choose reboot. Remove all USB drives.

You should get the boot menu with RemixOS and should be good.

By |May 3rd, 2017|0 Comments

Updating Kolab 3.1 or 3.2 to 3.3

I have recently updated my Kolab Groupware install from version 3.2 to version 3.3, there are not a ton of new features but I wanted to see if this would be a huge process or go fairly quickly.

First of all, take a backup. Really take a backup. You never know what your going to blow up with Kolab updates. Sometime they work great, and they are getting better. Just do it. At the very least backup your IMAP store. If you are like me at all and have your IMAP mounted over NFS, stop the Cyrus service and unmount the IMAP store.

Also, I am using CentOS 6 this guide will be based on that, the fixes at the end might apply though if you are not running CentOS 6.

Here is what I did, also I will list a few things I did to fix some issues.

Backup the server. I use VMWare ESX so I made a snapshot.

Stop the Cyrus Server.


service cyrus-imapd stop

I unmounted the IMAP store since I use NFS.


umount /var/spool/imap

Follow this guide (I will copy it’s content below, possibly with some differences).


https://docs.kolab.org/administrator-guide/upgrading-from-kolab-3.1-to-3.3.html

Update your CentOS Installation


# cd /etc/yum.repos.d/
# rm Kolab*.repo
# wget http://obs.kolabsys.com/repositories/Kolab:/3.3/CentOS_6/Kolab:3.3.repo
# wget http://obs.kolabsys.com/repositories/Kolab:/3.3:/Updates/CentOS_6/Kolab:3.3:Updates.repo
# yum update

FILE TO EDIT: /etc/kolab/kolab.conf
Replace example.org with your LDAP and installation primary domain name.


[ldap]
sharedfolder_acl_entry_attribute = acl
modifytimestamp_format = %Y%m%d%H%M%SZ

[kolab_smtp_access_policy]
delegate_sender_header = True
alias_sender_header = True
sender_header = True
xsender_header = True
cache_uri = 

[wallace]
modules = resources, invitationpolicy, footer
kolab_invitation_policy = ACT_ACCEPT_IF_NO_CONFLICT:example.org, ACT_MANUAL

If you’re planning to make use of wallace please make sure wallace is enabled to start using chkconfig on RHEL/Centos or /etc/default/wallace on debian.


# service kolab-server restart
# service wallace restart

FILE TO EDIT: /etc/kolab-freebusy/config.ini
Instead of editing the configuration by hand it’s easier to just recreate the configuration using the setup-kolab tool. Your choice.
This step did not work for me, but I do not use freebusy!


# cp /etc/kolab-freebusy/config.ini.rpmnew /etc/kolab-freebusy/config.ini
or
# setup-kolab freebusy

FILE TO EDIT: /etc/roundcubemail/config.inc.php
The plugins where correct on my server excepting adding the new ones, kolab_notes and kolab_tags.


Change the plugin load order the follwing way:

    move kolab_auth to the top position
    move kolab_config after kolab_addressbook
    add kolab_notes after kolab_folders
    add kolab_tags after kolab_notes

$config['use_secure_urls'] = true;
$config['assets_path'] = '/roundcubemail/assets/';

FILE TO EDIT: /etc/roundcubemail/password.inc.php
Change the password driver from ldap to ldap_simple.


$config['password_driver'] = 'ldap_simple';

FILE TO EDIT: /etc/roundcubemail/kolab_files.inc.php
Update the kolab_files_url to /chwala/ to be protocol independent.
This would not work for me, I kept my old setup.


$config['kolab_files_url'] = '/chwala/';

FILE TO EDIT: /etc/iRony/dav.inc.php
The iRony configuration doesn’t have anything special configurations. You might want to consider just to take the new default config file or change it based on the differences between the previous version.
For me, nothing changed from 3.2 to 3.3 but you should check.


# cp /etc/iRony/dav.inc.php.rpmnew /etc/iRony/dav.inc.php

FILE TO EDIT: /etc/postfix/ldap/virtual_alias_maps_sharedfolders.cf
To fix the handling of resource invitations you’ve to adjust your existing virtual alias maps, otherwise you end up with non-delivery-reports.
I just had to add the last part.


query_filter = (&(|(mail=%s)(alias=%s))(objectclass=kolabsharedfolder)(kolabFolderType=mail))

FILE TO EDIT: /etc/postfix/master.cf
This will put wallace as the next content-filter after the mail has been returned from amavis to postfix. If you’re don’t want to make use of iTip processing or resource management you can skip this section.


[...]
127.0.0.1:10025     inet        n       -       n       -       100     smtpd
    -o cleanup_service_name=cleanup_internal
    -o content_filter=smtp-wallace:[127.0.0.1]:10026
    -o local_recipient_maps=
[...]

Restart Postfix


# service postfix restart

Update MySQL Database
Connect to MySQL, use the password you use for SQL on that server.


# mysql -u root -p -D kolab

--
-- Table structure for table `ou_types`
--

DROP TABLE IF EXISTS `ou_types`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `ou_types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` text NOT NULL,
  `name` varchar(256) NOT NULL,
  `description` text NOT NULL,
  `attributes` longtext NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `ou_types`
--

LOCK TABLES `ou_types` WRITE;
/*!40000 ALTER TABLE `ou_types` DISABLE KEYS */;
INSERT INTO `ou_types` VALUES (1,'unit','Standard Organizational Unit','A standard organizational unit definition','{\"auto_form_fields\":[],\"fields\":{\"objectclass\":[\"top\",\"organizationalunit\"]},\"form_fields\":{\"ou\":[],\"description\":[],\"aci\":{\"optional\":true,\"type\":\"aci\"}}}');
/*!40000 ALTER TABLE `ou_types` ENABLE KEYS */;
UNLOCK TABLES;


--
-- Table structure for table `sharedfolder_types`
--

DROP TABLE IF EXISTS `sharedfolder_types`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `sharedfolder_types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` text NOT NULL,
  `name` varchar(256) NOT NULL,
  `description` text NOT NULL,
  `attributes` longtext NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `sharedfolder_types`
--

LOCK TABLES `sharedfolder_types` WRITE;
/*!40000 ALTER TABLE `sharedfolder_types` DISABLE KEYS */;
INSERT INTO `sharedfolder_types` VALUES (1,'addressbook','Shared Address Book','A shared address book','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"contact\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(2,'calendar','Shared Calendar','A shared calendar','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"event\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(3,'journal','Shared Journal','A shared journal','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"journal\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(4,'task','Shared Tasks','A shared tasks folder','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"task\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(5,'note','Shared Notes','A shared Notes folder','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"note\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(6,'file','Shared Files','A shared Files folder','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"file\"],\"objectclass\":[\"top\",\"kolabsharedfolder\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[]}}'),(7,'mail','Shared Mail Folder','A shared mail folder','{\"auto_form_fields\":[],\"fields\":{\"kolabfoldertype\":[\"mail\"],\"objectclass\":[\"top\",\"kolabsharedfolder\",\"mailrecipient\"]},\"form_fields\":{\"acl\":{\"type\":\"imap_acl\",\"optional\":true,\"default\":\"anyone, lrs\"},\"cn\":[],\"alias\":{\"type\":\"list\",\"optional\":true},\"kolabdelegate\":{\"type\":\"list\",\"autocomplete\":true,\"optional\":true},\"kolaballowsmtprecipient\":{\"type\":\"list\",\"optional\":true},\"kolaballowsmtpsender\":{\"type\":\"list\",\"optional\":true},\"kolabtargetfolder\":[],\"mail\":[]}}');
/*!40000 ALTER TABLE `sharedfolder_types` ENABLE KEYS */;
UNLOCK TABLES;

Go ahead and restart the server now to load stuff, you don’t really have to I suppose.

Stuff I fixed/updated/changed to make stuff work…

The assets will not load, images, css and such on roundcube web interface:

Edit /etc/roundcubemail/config.inc.php and change


$config['assets_path'] = '/roundcubemail/assets/';

to


$config['assets_path'] = '/assets/';

Still no assets, using SSL? No images and stuff? Let’s check your Apache configuration. I had to add an Include line in the ssl.conf

Edit /etc/httpd/conf.d/ssl.conf
I just added the Include line below, your setup may be different as some people use a VHOST some use SSL some use mod_ssl (like me) some use other SSL setups. Some people need to include the roundcubemail.conf and some won’t.


#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#

Include conf.d/roundcubemail.conf

#   SSL Engine Options:

Okay, I also use a custom port number with my setup to access the web, it’s SSL but it’s not on port 443. You need to turn off secure_urls and change a PHP variable.
Edit /etc/roundcubemail/config.inc.php


$config['use_secure_urls'] = false;

Edit /usr/share/roundcubemail/program/include/rcmail_output_html.php
Line ~187. You can see I changed the $_SERVER line to be HTTP_HOST this will catch the custom port.


                $base = implode('/', $_base);
            }

            $path = (rcube_utils::https_check() ? 'https' : 'http') . '://'
                . $_SERVER['HTTP_HOST'] . $base . '/' . $path;
        }

        $this->assets_path = $path;
        $this->set_env('assets_path', $path);

Do you use the files portion of Kolab and it’s not working? Lets check our configuration for Chwala.

Edit /usr/share/roundcubemail/config/kolab_files.inc.php
Here is my file, check the top lines, the URL fields. I at one point needed to specify HTTPS, maybe you do. I no longer need to.



Have an android device or other Exchange client that you know supports sub-folders and user created folders and they never show up? Do the emails all clump together in the inbox? Try this.

Edit /usr/share/kolab-syncroton/lib/kolab_sync_data_email.php
Line ~108. Change the windowsoutlook15 to android


    public function __construct(Syncroton_Model_IDevice $device, DateTime $syncTimeStamp)
    {
        parent::__construct($device, $syncTimeStamp);

        $this->storage = rcube::get_instance()->get_storage();

        // Outlook 2013 support multi-folder
        //$this->ext_devices[] = 'windowsoutlook15';
        $this->ext_devices[] = 'android';

        if ($this->asversion >= 14) {
            $this->tag_categories = true;
        }
    }

Make sure you go into roundcube settings, and then folders. Check the new folders are checked. Then settings and ActiveSync and under your device check the new folders as well.

After everything was good, I was still getting some odd errors with the notes portion. I could make a new Noteboot in Roundcube and add notes there, but I could not add or move notes into the primary notebook ‘Notes’ I kept getting an error. My androids could not add or read notes from it either. Very odd. After poking around I figured it’s probably something with the IMAP storage portion. I was right for my issue, and this is what I did.

Login to kolab server using SSH or console as root and then change user to cyrus.


su - cyrus

If you get an error with that command, then you need to probably check the login shell for cyrus. I changed the users login shell to bash.


usermod -s /bin/bash cyrus

Once you are running as Cyrus we need to reconstruct the IMAP mailbox.


cd /usr/lib/cyrus-imapd
./reconstruct -r user/test.user

For me the user/test.user was user/username@domain.net

While here I also ran


./cyr_expire -E 3 -D 3 -X 3

To remove some deleted crap and clear out stuff.

By |December 27th, 2014|0 Comments

Updated GPG/PGP Public Key

Just my public key if you want to email me encrypted stuff.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Mailvelope v0.8.0b1
Comment: Email security by Mailvelope - http://www.mailvelope.com

mQENBFMU7A8BCADCTO6iVMwwKJj8OF3U2KXmUJ0HqCo6A8LJEQh/n1vv+x3O
Am123OAA05R1cTOkgxbVZSEGjs+kz/0VJKLe214j5THjLJTWjms+zJGRkzAS
zKutgwsDmwOPFm963gUK2usZXhsOdgtJiQuUfXLDnXhorBn7GV//VTRiAqkj
+ghXLHie2hWp8OkdRd+fs4E9D7ZwP4+gUBpF0d/aZfkyPH8rdHneeU4yOfCT
9ARz+RPiA2xvXhpGhy23LOYoDOL+v44gz4DuS2wbNND0iEytgJDoPC/FY2rg
o0DHDJZwOmqeHCQO1a34MBc0tpeeMMeK4dWRyO4zch1bANwVyfPseu05ABEB
AAHNI1poYXJ2ZWsgPHpoYXJ2ZWtAYXJjaGFpY2JpbmFyeS5uZXQ+wsBcBBMB
AgAGBQJTFOwQAAoJEI+naXkeq5O5VoYH/1TaHPVghBbkQJPt+FfeFO1yw2un
zz7HgirXbliYVACJhxEiDdsBHDWphzhUIcwlt/ghVaXsjlcM5HPkyQ/t4xNl
q1/fCjVm2thlAS2aa2fa4CJhfWgExr/GGK77XDCqvmiqKzNe5uu7qYAPmwQt
Y2X+hy9rJiHww1/CLNd3BewXohuPwSm+Y0qn0kMAf6S4YHHDH3brp07NOcIG
ZIsEk+aWkgXwN5FGxScMZQ6EYWrQe86/ycF/oVB1HnU7cJsAzlzEWC90BXV5
FXZlzNCrLz61ix6/jIpbywJTtuUjIsxrCeooZkE0VdvEpyZ/9y4jzhk3kJ8E
MOgYbQRygOJwHgk=
=SjYf
-----END PGP PUBLIC KEY BLOCK-----

If you use a webmail interface you should check out Mailvelope. It’s a great addon to your browser that allows you to encrypt/decrypt/sign email and any other text inputs.

Note: If you also use APG for Android, and your just getting started with GPG/PGP generate your private key in APG and then export it to Mailvelope. Going the opposite way (Mailvelope to APG) does not work and you won’t be able to sign/encrypt messages on your Android. Not sure why, but APG just won’t import the key as of this post.

By |March 3rd, 2014|0 Comments

Google Voice forward to Asterisk PBX

I recently started at a new place of employment and wanted to port my cell number over from Sprint which my old employer used. This was okay with them so I ended up porting the number to my Google Voice account. I wanted to forward it to a new DID that I would get with a SIP provider and run my Asterisk PBX from that.

I then got a new phone from the employer and installed a Android SIP client on it. Registered the extension to my Asterisk server and started some testing.

Well sometimes the calls work fine, and sometimes Google Voice ends up just sending the call to the Google Voicemail. I wanted to fix this problem, and I believe I have found the solution if your trying the same thing.

On your incoming route in Asterisk for your Google Voice number, you need to setup a wait period. In the incoming route screen of FreePBX there is a field that allows you to wait before picking up the call. I changed this from an empty default field to 2 seconds.

I then checked the box above it to enable Signal RINGING.

It took me a while to figure this out, but I now have my incoming Google Voice number coming to my Asterisk server, hitting the incoming route, then an IVR, then to various extensions and ring groups.

By |April 2nd, 2013|6 Comments

NOVO7 Fire Android Tablet

Back on November 9th, 2012 I placed an order for two Ainol-Novo 7 Fire 7″ tablets. The tablets arrived from China yesterday (December 3rd, 2012). The shipping was actually very fast, shipped out on Saturday and received on Monday. The wait was because they ran out of the IPS touch screen components.

Upon opening the package I also found that they sent me a free 7″ tablet sleeve and HDMI cable an unexpected but nice find.

The tablets are quite nice for the $179.90 price tag. The specs are the same on their website:

OS: Android 4.0.4 support Android 4.1 Jelly Bean Update
CPU: Dual Core AMLogic AML8726-M6 1.5GHz
GPU: Dual Core Mali 400*2 3D
RAM: 1GB DDR3
Storage: 16GB
Shell Material: Metal
Bluetooth: Yes (Bluetooth 2.1)
Screen: Capacitive Touchscreen, 1280*800 IPS High-Resolution Screen
Size: 7 inch
Resolution: 1280*800 Pixels
Visible Angle: 180°
Gravity Sensor: 3 Axis
Flash: Support Flash and HTML 5
Google Play (Market): Yes
Dual Camera: Front 2.0 Megapixels,Back 5.0 Megapixels Auto Focus LED Light

The tablets came packed very well and secure with foam and in a tightly taped up box. Along with the power adapters and usb cables. (This tablet can charge from the USB port as well as a barrel plug charger connection)

As for the tablet hardware, the camera could use some work, it’s sensitive to light and takes a few seconds to fully focus. The speaker has a slight popping sound when the tablet goes to sleep, and the vibrator feels a little odd, but works fine.

The screen is beautiful though at its 1280×800 resolution in a 7″ package.

The default applications that came installed and are not able to uninstall (without root) include a few Chinese applications including a keyboard app, and some other multimedia applications and a web browser, English ES File Explorer, and some others. Most of which can be disabled in the Android Settings.

I purchased the tablets for children in the family and I’m sure they will enjoy them despite the few slight flaws.

By |December 4th, 2012|0 Comments
Load More Posts