Skip to content

Instantly share code, notes, and snippets.

@DomeDan
Forked from dz0ny/99java
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DomeDan/5ceb3e46ff4de76b432e to your computer and use it in GitHub Desktop.
Save DomeDan/5ceb3e46ff4de76b432e to your computer and use it in GitHub Desktop.

#Flash, java, mp3 and mp4 and pdf support for Chromium OS builds by hexxeh

This script downloads and installs libraries needed for Chromium, so that you can actually "TEST" multimedia experience.

##How to use?

Simply run as root user

curl -L http://goo.gl/CBWBev | bash

or if you prefer wget

wget -qO- http://goo.gl/CBWBev | bash

Then reboot computer!

##You don't know how to become root user?

CTRL+ALT+F2
$ chronos   (user)
$ facepunch (password)
$ sudo su

That's it, enjoy!

No sound?

Login as root

$ mount -o remount, rw /
$ alsaconf

Choose your sound card, then reboot!

Bugs

deb2tar.py was the hardest thing to do here, it should have a lot of bugs (probably) and might only work for this version.

Domedan Notes

Have tried i386 on a default build using the sdk 20140321, flashplayer and pdf viewer worked, but not mp3/mp4 and java

#!/bin/bash
#based on https://wiki.archlinux.org/index.php/Chromium
if [ `uname -m` == 'x86_64' ]; then
# 64-bit
export CHROME="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
export TALK="https://dl.google.com/linux/direct/google-talkplugin_current_amd64.deb"
export JAVA="http://javadl.sun.com/webapps/download/AutoDL?BundleId=104760"
else
# 32-bit
export CHROME="https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_i386.deb"
export TALK="https://dl.google.com/linux/direct/google-talkplugin_current_i386.deb"
export JAVA="http://javadl.sun.com/webapps/download/AutoDL?BundleId=104758"
fi
#clean stuff
mount -o remount, rw /
cd /opt/
rm "/opt/deb2tar.py"
curl -o "/opt/deb2tar.py" "https://gist.githubusercontent.com/DomeDan/5ceb3e46ff4de76b432e/raw/deb2tar.py"
mkdir -p /usr/lib/mozilla/plugins/
#Flash, pdf
echo "Downloading Google Chrome"
curl -z "/opt/chrome-bin.deb" -o "/opt/chrome-bin.deb" -L $CHROME
python /opt/deb2tar.py /opt/chrome-bin.deb /opt/chrome.tar.lzma
rm -rf chrome-unstable
mkdir chrome-unstable
tar -xvf /opt/chrome.tar.lzma -C chrome-unstable ./opt/google/chrome/libffmpegsumo.so ./opt/google/chrome/libpdf.so ./opt/google/chrome/PepperFlash/libpepflashplayer.so ./opt/google/chrome/PepperFlash/manifest.json
#mp3,mp4
mkdir /usr/lib/cromo/
cp /opt/chrome-unstable/opt/google/chrome/libffmpegsumo.so /usr/lib/cromo/ -f
cp /opt/chrome-unstable/opt/google/chrome/libffmpegsumo.so /opt/google/chrome/ -f
cp /opt/chrome-unstable/opt/google/chrome/libffmpegsumo.so /usr/lib/mozilla/plugins/ -f
#pdf
cp /opt/chrome-unstable/opt/google/chrome/libpdf.so /opt/google/chrome/ -f
#flash
mkdir /opt/google/chrome/pepper/
cp /opt/chrome-unstable/opt/google/chrome/PepperFlash/libpepflashplayer.so /opt/google/chrome/pepper/ -f
cp /opt/chrome-unstable/opt/google/chrome/PepperFlash/manifest.json /opt/google/chrome/pepper/ -f
curl -L https://gist.githubusercontent.com/DomeDan/5ceb3e46ff4de76b432e/raw/pepper-flash.info > /opt/google/chrome/pepper/pepper-flash.info
rm -rf chrome-unstable/
rm /opt/chrome.tar.lzma
rm /opt/chrome-bin.deb
## Google Talk
echo "Downloading Google Talk plugin"
curl -z "/opt/talk-bin.deb" -o "/opt/talk-bin.deb" -L $TALK
python /opt/deb2tar.py /opt/talk-bin.deb /opt/talk.tar.gz
rm -rf /opt/google/talkplugin
tar -xvf /opt/talk.tar.gz -C /
rm /opt/google/chrome/pepper/libnpgoogletalk.so
ln -s /opt/google/talkplugin/libnpgoogletalk.so /opt/google/chrome/pepper/libnpgoogletalk.so
rm /opt/google/chrome/pepper/libnpgtpo3dautoplugin.so
ln -s /opt/google/talkplugin/libnpgtpo3dautoplugin.so /opt/google/chrome/pepper/libnpgtpo3dautoplugin.so
rm /opt/talk.tar.gz
rm /opt/talk-bin.deb
## JAVA
## JAVA
echo "Downloading Oracle Java"
curl -z "/opt/java-bin.tar.gz" -o "/opt/java-bin.tar.gz" -L $JAVA
rm -rf /usr/lib/jvm/java-8-oracle/jre/
mkdir -p /usr/lib/jvm/java-8-oracle/jre/
tar -xvf /opt/java-bin.tar.gz -C /usr/lib/jvm/java-8-oracle/jre/ --strip-components 1
rm /usr/lib/cromo/libnpjp2.so
rm /opt/google/chrome/libnpjp2.so
if [ `uname -m` == 'x86_64' ]; then
rm /usr/lib64/cromo/libnpjp2.so
rm /usr/lib64/mozilla/plugins/libnpjp2.so
rm /usr/lib64/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so /usr/lib64/cromo/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so /usr/lib64/mozilla/plugins/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so /usr/lib64/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so /opt/google/chrome/libnpjp2.so
echo "PATH=\"/usr/lib64/jvm/java-8-oracle/jre/bin/\"" > /etc/env.d/99java
echo "JAVA_HOME=\"/usr/lib64/jvm/java-8-oracle/\"" >> /etc/env.d/99java
else
rm /usr/lib/cromo/libnpjp2.so
rm /usr/lib/mozilla/plugins/libnpjp2.so
rm /usr/lib/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/i386/libnpjp2.so /usr/lib/cromo/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/i386/libnpjp2.so /usr/lib/libnpjp2.so
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/i386/libnpjp2.so /opt/google/chrome/libnpjp2.so
echo "PATH=\"/usr/lib/jvm/java-8-oracle/jre/bin/\"" > /etc/env.d/99java
echo "JAVA_HOME=\"/usr/lib/jvm/java-8-oracle/\"" >> /etc/env.d/99java
fi
chmod a+x /etc/env.d/99java
rm /opt/java-bin.tar.gz
env-update
restart ui
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
# deb2tar - convert a Debian Linux .deb file to a .tar
#
# First line -- file header: "!<arch>" or similar
# Multiple blocks -- each one, a header line followed by data
# Header line -- <filename> <num1> <num2> <num3> <mode> <len>
# Data -- <len> bytes of data
# We want the block called "data.tar.*"
"""
import shlex
import os
import sys
def copypart(
src,
dest,
start,
length,
bufsize=1024 * 1024,
):
"""
Binary copy
"""
in_file = open(src, 'rb')
in_file.seek(start)
out_file = open(dest, 'wb')
pointer = start
chunk = False
amount = bufsize
while pointer < length:
if length - pointer < amount:
amount = length - pointer
chunk = in_file.read(amount)
pointer += len(chunk)
out_file.write(chunk)
in_file.close()
out_file.close()
def main(file_open, file_write):
"""
Copy tar data block
"""
print 'Source file:', file_open
print 'Destination file:', file_write
zacetek = 0
konec = 0
file_name = ''
with open(file_open, 'r', 1024 * 1024) as in_file:
for (pointer, line) in enumerate(in_file):
zacetek += len(line)
if 'data.tar' in line:
meta = shlex.split(line[line.find('data.tar'):len(line)])
konec = int(meta[5])
file_name = str(meta[0])
break
statinfo = os.stat(file_open)
if statinfo.st_size - konec == zacetek:
copypart(file_open, file_write, int(zacetek), int(konec) + int(zacetek))
else:
print '----DEBUG----'
print 'start block', zacetek
print 'end block', konec
print 'end deb', statinfo.st_size
print 'diff', statinfo.st_size - konec
print 'Internal filename is ' + file_name
print 'meta', meta
print 'Failed parsing file! Internal meta mismatch, please report this to author!'
print '----DEBUG----'
if __name__ == '__main__':
try:
main(sys.argv[1], sys.argv[2])
except Exception, e:
print e
print 'Usage:', sys.argv[0], 'debian_file.deb', 'tar_file.tar.lzma or gz'
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Registration file for Pepper Flash player.
FILE_NAME=/opt/google/chrome/pepper/libpepflashplayer.so
PLUGIN_NAME="Shockwave Flash"
VERSION="17.0.0.134"
VISIBLE_VERSION="17.0 r13844"
DESCRIPTION="$PLUGIN_NAME $VISIBLE_VERSION"
MIME_TYPES="application/x-shockwave-flash"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment