The Complete Guide For Galaxy 3 i5800/i5801
Index:
1) Android Basics
2) Galaxy 3 Features
3) Hardware
4) ROM Basics, Tutorials
5) Kernel Basics
6) Tools/Imp Download Links
7) Complete List of ROMs,Kernels for G3
8) FAQ
9) EPIC Fail Ideas for G3
Android Basics
1) Android Basics
Introduction:
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Google Inc. purchased the initial developer of the software, Android Inc., in 2005. Android's mobile operating system is based on the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android. The Android operating system is currently the world's best-selling Smartphone platform.
Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently over 200,000 apps available for Android. Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites. Developers write primarily in the Java language, controlling the device via Google-developed Java libraries.
The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license.
The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc. The Android operating system, including the Linux kernel, consists of roughly 12 million lines of code including 3 million lines of XML, 2.8 million lines of C, 2.1 million lines of Java, and 1.75 million lines of C++.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Version history
2.1 Eclair
Changelog:
Sync: Expanded Account sync. Multiple accounts can be added to a device for email and contact synchronization
Email: Exchange support, Combined inbox to browse email from multiple accounts in one page.
Bluetooth: 2.1 support
Contacts: Tap a contact photo and select to call, SMS, or email the person.
Messaging: Search all saved SMS and MMS messages. Auto delete oldest messages in a conversation when a defined limit is reached.
Camera: Flash support, Digital zoom, Scene mode, White balance, Color effect, Macro focus
Virtual keyboard: Improved typing speed, smarter dictionary learns from word usage and includes contact names as suggestions.
Browser: Refreshed UI, Bookmark thumbnails, Double-tap zoom, Support for HTML5
Calendar: Agenda view enhanced, Attending status for each invitee, Invite new guests to events.
System: Optimized hardware speed, Revamped UI
Display: Support for more screen sizes and resolutions, Better contrast ratio
Maps: Improved Google Maps 3.1.2
MotionEvent class enhanced to track multi-touch events
Live Wallpapers: Home screen background images can be animated to show movement
2.2 Froyo
Changelog:
System: Speed, memory, and performance optimizations
Additional application speed improvements courtesy of JIT implementation
Integration of Chrome's V8 JavaScript engine into the Browser application
Improved Microsoft Exchange support (security policies, auto-discovery, GAL look-up, calendar synchronization, remote wipe)
Improved application launcher with shortcuts to Phone and Browser applications
USB tethering and Wi-Fi hotspot functionality
Added an option to disable data access over mobile network
Updated Market application with batch and automatic update features
Quick switching between multiple keyboard languages and their dictionaries
Voice dialing and contact sharing over Bluetooth
Support for numeric and alphanumeric passwords
Support for file upload fields in the Browser application
Support for installing applications to the expandable memory
Adobe Flash support
Support for extra high DPI screens (320 dpi), such as 4" 720p
2.3 Gingerbread
Changelog:
System: Updated user interface design for simplicity and speed
Display: Support for extra-large screen sizes and resolutions (WXGA and higher)
Internet calling: Native support for SIP VoIP telephony
Virtual Keyboard: Faster, more intuitive text input, improved accuracy, better suggested text. Voice input mode
Copy/Paste: Enhanced. Select a word by press-hold, copy, and paste.
Near Field Communication lets the user read an NFC tag embedded in a poster, sticker, or advertisement.
New audio effects such as reverb, equalization, headphone virtualization, and bass boost
System: Improved power management with a more active role in managing apps that are keeping the device awake for too long.
Download Manager gives the user easy access to any file downloaded from the browser, email, or another application.
Camera: Access multiple cameras on the device, including a front-facing camera, if available.
Media: Support for WebM/VP8 video playback, and AAC audio encoding
System: Enhanced support for native code development
Audio, graphical, and input enhancements for game developers
Concurrent garbage collection for increased performance
Native support for more sensors (such as gyroscopes and barometers)
Switched from YAFFS to ext4 on newer devices
Android Architecture
FEATURES OF ANDROID
Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts.
Storage SQLite, a lightweight relational database, is used for data storage purposes
Connectivity Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi (no connections through Proxy server and no Ad hoc wireless network), LTE, NFC and WiMAX.
Messaging SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud To Device Messaging Framework(C2DM) is also a part of Android Push Messaging service.
Multiple Language Support Multiple languages are available on Android. The number of languages more than doubled for the platform 2.3 Gingerbread. Android lacks font rendering of several languages even after official announcements[citation needed] of added support (e.g. Hindi).
Web browser The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test.
Java support While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on the Dalvik virtual machine. Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party applications.
Media support Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF (though earlier versions do not support animated GIFs, BMP.
Streaming media support RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Mobile, and by the operating system in Android 3.0 (Honeycomb). Microsoft Smooth Streaming is planned to be supported through the awaited port of Silverlight plugin to Android.
Additional hardware support Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.
Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively.
Bluetooth Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available through manufacturer customizations and third-party applications. Full HID support is planned for Android 3.0 (Honeycomb).
Video calling Android does not provide native video calling support, but some handsets have a customized version of the operating system that support it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later.
Multitasking Multitasking of applications is available.
Voice based features Google search through voice has been available since initial release. Voice actions for calling, texting, navigation, etc. are supported on Android 2.2 onwards.
Tethering Android supports tethering, which allows a phone to be used as a wireless/wired hotspot. Prior to Android 2.2 this was supported by third-party applications or manufacturer customizations.
Screen Capture Android does not currently support screenshot capture. This is supported by manufacturer and third-party customizations.
2) Galaxy 3 Features
General
2G Network GSM 850 / 900 / 1800 / 1900
3G Network HSDPA 900 / 2100
Announced 2010, June
Status Available. Released 2010, July
SIZE
I5801
Dimensions 113.5 x 55 x 12.6 mm
Weight 113 g
I5800
Dimensions 113.5 x 55 x 12.9 mm
Weight 109 g
DISPLAY
Type TFT capacitive touchscreen, 16M colors
Size 240 x 400 pixels, 3.2 inches
Features - Touch Wiz 3.0
- Accelerometer sensor for UI auto-rotate
- Proximity sensor for auto turn-off
- Multi-touch input method
SOUND
Alert types Vibration; MP3, WAV ringtones
Loudspeaker Yes
3.5mm jack Yes
- DNSe (Digital Natural Sound Engine)
MEMORY
Phonebook Practically unlimited entries and fields, Photocall
Call records Practically unlimited
Internal 512MB ROM, 256MB RAM
Card slot microSD, up to 32GB
DATA
GPRS Class 10 (4+1/3+2 slots), 32 - 48 kbps
EDGE Class 10, 236.8 kbps
3G HSDPA, 3.6 Mbps
WLAN Wi-Fi 802.11 b/g/n, Wi-Fi hotspot (Android 2.2)
Bluetooth Yes, v3.0 with A2DP
Infrared port No
USB Yes, v2.0 microUSB
CAMERA
Primary 3.15 MP, 2048x1536 pixels, autofocus
Features Geo-tagging, face and smile detection
Video Yes, [email protected]
Secondary No
SOFTWARE
OS Android OS, v2.1 (Eclair), upgradable to v2.2
CPU Samsung S5P6442 667 MHz processor
Messaging SMS(threaded view), MMS, Email, Push Mail, IM
Browser HTML
Radio Stereo FM radio with RDS
Games
Colors Black, White
GPS Yes, with A-GPS support
Java Yes, via Java MIDP emulator
- Orange Application Shop
- Orange Maps, Orange TV, Orange Push Email
- Contact Back & Restore, Orange Photo
- Digital compass
- MP4/DivX/XviD/WMV/H.264/H.263 player
- MP3/WAV/eAAC+ player
- Organizer
- Document editor(Word, Excel, PowerPoint, PDF)
- Google Search, Maps, Gmail, YouTube, Calendar, Google Talk integration
- Voice memo
- Predictive text input
BATTERY
Type Standard battery, Li-Ion 1500 mAh
Stand-by Up to 620 h (2G) / Up to 480 h (3G)
Talk time Up to 15 h 30 min (2G) / Up to 7 h 15 min (3G)
3) Hardware
Processor: Samsung S5P6442 (It is modified version of S5P6440)
General Description
SAMSUNG's S5P6440, AKA "Vega-L", is the first member of the "Vega" Series, which is our newest family of Application Processors. Each Application Processor in the Vega Series will maintain a high level of compatibility with each other in order to allow for PND Makers to design their entire line-up of products on a single SoC platform.
The S5P6440 will be Samsung's first AP designed solely for PND's with a strong emphasis on high performance while maintaining cost competitiveness.
In terms of performance, the S5P6440 is run by a powerful ARM1176 processor running at 533MHz, 667MHz with a 64-bit AXI bus.
Additionally, the S5P6440 features both 2D Graphics HW and OpenVG HW, thus providing exceptional graphics acceleration for mainstream PND products. We have also focused heavily on providing optimum IP's and interfaces in order to reduce the Bill-of-Materials of the system as a whole. As an example, the S5P6440 features upgraded NAND Error Correction HW to be able to support next generation MLC NAND Flash devices. The S5P6440 also supports serial LCD protocols via the MIPI DSI standard, which allows for lower cost, lower EMI and simpler integration.
Block Diagram
Features
ARM1176JZF-S 533MHz, 667MHz, 16KB/16KB L1 Cache with Java acceleration Engine
Memory Subsystem
- NAND Flash Interface with x8 data bus, with 1/4/8/12/16-bit hardware ECC circuit and 4KB page mode
- Mobile DDR Interface with x16 or x32 data bus (up to 333Mbps/pin)
- DDR2 Interface with x16 or x32 data bus (up to 333Mbps/pin)
2D Graphics Accelerator with BitBlit and Rotation
Vector Graphics Accelerator with dedicated Anti-Aliasing HW
1/2/4/8 bpp Palletized or 8/16/24bpp Non-Palletized Color-TFT support up to 800x480
Serial LCD I/F support with MIPI DSI
- Two data lanes and one clock lane
4 channel UART: 1 channel muxed with IrDA SIR/FIR
1 channel I2S
2 channel I2C interface support
3 channel MMC/SDHC/SDIO (or 1 ch HS-MMC & 1 ch SD/MMC/SDIO)
On-chip USB 2.0 OTG controller and PHY transceiver supporting high speed
Real time clock, 3 PLL's, timer with PWM and watch dog timer
8 channel DMA controller
12 channel 12-bit ADC (Touch screen interface)
2 channel SPI: 1ch muxed with TSI (transport stream interface)
Configurable GPIOs
Technical Documents:
The Only Technical Document that we have currently is the User Manual of S3C6410 RISC Processor. It is not exactly same as S5P6442 but can be used as a reference.
Download S3C6410 User Manual
TouchScreen: ATMEL mXT224(AT42QT602240)
General Desciption
A 224-node highly configurable touchscreen controller that is part of the Atmel maXTouch product platform. An optimal and scalable architecture enables smart processing of a capacitive touch image to accurately regenerate and report the user’s interaction with the touchscreen. Multi-touch performance identifies and individually tracks touches and allows a range of built-in gestures to be reported to the host processor. The IC provides position data of 12-bit x 12-bit resolution, as well as information on the size and angle of touch. Position data is reported at >250Hz, providing fast and smooth finger tracking, making it suitable for use with demanding applications such as handwriting recognition. Due to the high signal-to-noise ratio (SNR) of up to 80:1, the device works well with fingertip touch and can also be used with a conductive stylus. It is designed to work in demanding, rapidly changing environments. Only the touchscreen area is touch-sensitive, allowing design freedom to place the chip on the main board or adjacent to the sensor. The device is ideally suited to mobile phone-sized touchscreens and can also be used on screens of up to 7", supporting single-touch or two-touch with a larger finger separation.
Technical Documents
mXT224 Datasheet
TFT LCD PANEL: Samsung S6D04D1
General Description
S6D04D1 is a single-chip display driver IC for a TFT-LCD panel. Integrated on this chip are source drivers with built-in
memory, gate drivers and power sources. S6D04D1 can support a TFT-LCD panel up to a resolution of 240-RGB x 432-
dot graphics with 16M-color. S6D04D1 also supports various types of peripheral interface such as 80-series MCU
interface (8-/9-/16-/18-/24-bits data), 3-wire 9bit / 4-wire 8bit serial interface, and MDDI(Mobile Display Digital Interface)
S6D04D1 supports various types of RGB interface (24-/18-/16-/8-/6-bits data).
The Integrated on-chip functions that are described in this document include:
- Power saving: It reduces the overall power consumed in a TFT-LCD panel module.
- Internal GRAM:
- Internal DC/DC voltage converter
- MIE (Mobile Image Enhancement) functions
S6D04D1 features several power saving functions to reduce the overall power consumed in a TFT-LCD panel module:
S6D04D1 operates at low voltage and has internal GRAMs that can store 240-RGB x 432-dot 16M-color image data. In
addition, it has an internal DC/DC voltage converter that generates various voltages needed for driving the TFT-LCD
panel by using breeder resistors and the voltage followers.
Features
A single-chip TFT-LCD Controller/gate driver/source driver with built-in Graphic RAM
Supported Display panel resolution: 240*R/G/B (H) * 432 (V) , 240*R/G/B (H) * 400 (V) & 240*R/G/B (H) * 320 (V)
Integrated 2,488,320bit of graphic RAM (GRAM)
-GRAM configuration: 240 x 432 x 24-bits = 2,488,320bits
Supported Interfaces
-3-wire 9-bit data, 4-wire 8-bit data serial interface (for RGB parallel Interface)
-8-/9-/16-/18-/24- bit interface with 80-Series MCU (so called 80-Series)
-VSYNC I/F
-MDDI(Mobile Display Digital Interface)
Outputs
-Common electrode output
-Gate outputs
-Source outputs
Color Display mode
-Full color mode (Idle mode off): 16M / 260k / 65k colors
-Reduced color mode (Idle mode on): 8-colors (3-bit binary mode)
Color modes on the display host interface
-16-bits/Pixel: RGB= (565) using the 1,843k bit frame memory
-18-bits/Pixel: RGB= (666) using the 1,843k bit frame memory
-24-bits/Pixel: RGB= (888) using the 1,843k bit frame memory
Display features
-Partial display mode
Driving scheme: line inversion & frame inversion
MIE (Mobile Image Enhancement) functions
-Adaptive luminance/contrast enhancement function.
-Reduce the power consumption of backlight.
SE ( Sharpness Enhancement) functions
On-chip functions
-Voltage Boosters
-Adjustable VCOM voltage source generator
-An oscillator for display clock generation & Timing generation
-Factory default value (Contrast, Module ID, Module version, etc) can be stored inside IC
-MTP (Multi-time Programmable) Memory
-MTP initialization & program voltages are generated automatically from the built-in power circuit.
-Each 8-bits product ID1, ID2, ID3
-6-bits VCM Offset adjustment
-Each 5-bits for VML, GVD Offset adjustment
-1 bit for MTP writing protection
Voltage Supplies
-2.3V – 3.3V for VCI, supply voltage for Analog blocks
-1.65V – 3.3V for VDD3, Supply voltage for I/O
Output voltage levels
-2.5V to 5.0V for GVDD, Source output voltage
-AVDD, Power supply for driver circuit (Note 1)
-Maximum 6.0V for VCOM, Common electrode output voltage
-11.25V to 16.50V for VGH, Positive Gate output voltage (Note 2, Note 3)
--13.75V to - 6.75V for VGL, Negative Gate output voltage (Note 2)
CMOS compatible inputs
COG package
Operating temperature range: -40℃ to +85℃
Technical Documents
S6D04D1 Datasheet
4) ROM Basics, Tutorials
STOCK ROM
A stock ROM is the version of the phone's operating system that comes with your phone when you buy it.
Samsung letter code
AW-Hungary AZ-France BD-Cyprus, Greece BY-Greece CB-Poland CE-Benelux CP-Denmark, Finland, Norway, Sweden DB-Vietnam DC-Thailand DD-India DT-Australia DX-Indonesia, Malaysia, Philippines, Singapore, Vietnam DZ-Malaysia, Singapore JA-South Africa JC-Algeria, Morocco, Nigeria, South Africa, Tunisia JP-Arabic JR-Arabic JV-Algeria, Egypt, Iran, Iraq, Kuwait, Morocco, Nigeria, Oman, Pakistan, Saudi Arabia,South Africa, Syria, Tunisia, Turkey JW-West Africa JX-Algeria, Egypt, Iran, Iraq, Kuwait, Morocco, Nigeria, Oman, Pakistan, Saudi Arabia,South Africa, Syria, Tunisia, Turkey KA-Turkey ME-France MK-Serbia MS-France, Germany, Italy, Netherlands, Portugal, Spain, Turkey, UK MT-Switserland MY-Italy NH-Latvia PO-France PU-Russia UB-Brazil XA-Austria, France, Germany, Italy, Netherlands, Switzerland, United Kingdom XB-Denmark, Norway, Sweden XC-Portugal, Spain XD-Croatia, Czech, Hungary, Slovakia XE-Bulgaria, Estonia, Kazakhstan, Latvia, Lithuania, Russia, Ukraine XF-Bulgaria, Croatia, Romania XP-UK, France, Italy, Spain, Netherlands, Poland, Portuguese, Turkey XX-Austria, Belgium, France, Germany, Hungary, Italy, Spain, United Kingdom XW-Austria, Belgium, France, Germany, Hungary, Italy, Spain, United Kingdom ZC-China, Hong Kong ZH-Hong Kong ZS-China, Hong Kong ZT-Taiwan
Custom ROM
A custom ROM is a fully standalone version of the OS, including the kernel (which makes everything run), apps, services, etc - everything you need to operate the device, except it's customized by someone in some way.
So what does the "customized" part mean? Since Android is open source, developers are free to take stock ROMs, modify them, strip them of garbage, optimize them, add things, and pretty much do whatever their imagination and skills allow.
Flashing
Flashing Process is basically, installing a new ROM/Kernel, Stock/Custom, via Odin.
Odin is a software used to flash ROM's to the phone in the Download Mode.
Odin used for Galaxy 3 is v4.252.
Steps to follow:
1) Install Samsung Kies
2) Connect phone to PC and let it detect and install drivers automatically.
3) Download Odin with ops file from here.
4) Extract them to some folder.
5) Run Odin as Administrator.
6) Odin will now open.
7) Put phone in download mode. (Vol Down + HOME + POWER)
8) Connect Phone to PC via USB and wait till Odin shows detected.
9) Select One Package.
10) Select .ops file and .tar file for flashing.
11) Press Start button.
12) Wait till the message box on odin shows the following message and phone reboots.
13) You have now successfully flashed new ROM / Kernel.
Rooting
Rooting is a process that allows users of cellphones and other devices running the Android operating system to attain privileged control (known as "root access") within Android's Linux subsystem, similar to jailbreaking on Apple devices running the iOS operating system, overcoming limitations that the carriers and manufacturers put on such phones.
Most retail devices running the Android operating system must be rooted in order to install custom versions of the Android system such as CyanogenMod. This is because in the stock configuration (unrooted), user-installed applications do not have direct access to the flash memory chip on the device and, thus, are not able to replace or modify the operating system itself. Rooting is also necessary for certain applications and widgets that require additional system and hardware rights such as for rebooting the phone, certain backup utilities, and other access to other hardware such as status LEDs. Rooting is also needed to disable or remove manufacturer-installed applications such as City ID. Rooting the phone typically also includes installing an application called Superuser that supervises which applications are granted root rights.
Steps to follow:
1) Download SuperOneClick - Download
2) Run SuperOneClick
3) Press on Root
4) It will show "Waiting for device"
5) Put your phone in USB Debugging Mode.
6) Connect to PC via USB Cable.
7) Press Yes, for the subsequent messages that follow
8) Done
Deodexing
WHAT IS AN ODEX FILE?
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
THEN COMES DEODEX
Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
In summary, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
HOW THIS WORKS
For the more geeky amongst us, Android OS uses a Java-based virtual machine for running applications, called the Dalvik Virtual Machine. A deodexed, or .dex file contains the cache used by this virtual machine (referred to as Dalvik-cache) for a program, and it is stored inside the APK. An .odex file, on the other hand, is an optimized version of this same .dex file that is stored next to the APK as opposed to inside it. Android applies this technique by default to all the system applications.
Now, when an Android-based system is booting, the davlik cache for the Davlik VM is built using these .odex files, allowing the OS to learn in advance what applications will be loaded, and thus speeds up the booting process.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
ADVANTAGES & DISADVANTAGES
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, since that would not only allow him to modify various APKs, but also leave room for post-install theming.
On the other hand, since the .odex files were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
For a casual user, the main implication is in theming possibilities. Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
Steps to follow:
1) Download xUltimate - Download
2) Run Main.exe
3) Press N to continue
4) Press Y to continue
5) You should get a complete menu
6) Connect phone to PC in USB Debugging Mode
7) Run Option 1
8) Run Option 2
9) Run Option 3
10) Run Option 4
11) You Will now have deodexed apps and framework files in done_app and done_frame folders.
12) Copy these folders where you have your adb setup.
13) Run the following Code
Code:
adb -d shell "mount -o remount,rw /dev/block/stl6 /system"
adb -d shell "stop"
adb -d shell "rm /system/app/*.apk"
adb -d shell "rm /system/app/*.odex"
adb -d shell "rm /system/framework/*.jar"
adb -d shell "rm /system/framework/*.odex"
adb -d push done_app /system/app/
adb -d push done_frame /system/framework/
adb reboot
14) Your phone should reboot successfully, and you now have a deodexed ROM.
Clean ROM
The following list of files you can delete to clean ROM
1) BuddiesNow
2) Dlna
3) DualClock
4) FlashSVGPlayer
5) HTMLViewer
6) InfoAlarm
7) InputEventApp
8) Layar-samsung
9) Maps
10) MobileTrackerEngineTwo
11) MobileTrackerUI
12) Protips
13) SamsungApps
14) SamsungWidget_CalendarClock
15) SamsungWidget_FeedAndUpdate
16) SamsungWidget_ProgramMonitor
17) SamsungWidget_StockClock
18) Street
19) UNAService
20) UnifiedInbox
21) VoiceRecorder
22) wipereceiver
23) WriteandGo
5) Kernel Basics
dhirend_6d said:
What Is a Kernel?
The UNIX kernel is the software that manages the user program's access to the systems hardware and software resources. These resources range from being granted CPU time, accessing memory, reading and writing to the disk drives, connecting to the network, and interacting with the terminal or GUI interface. The kernel makes this all possible by controlling and providing access to memory, processor, input/output devices, disk files, and special services to user programs.
Kernel Services
The basic UNIX kernel can be broken into four main subsystems:
Process Management
Memory Management
I/O Management
File Management
These subsystems should be viewed as separate entities that work in concert to provide services to a program that enable it to do meaningful work. These management subsystems make it possible for a user to access a database via a Web interface, print a report, or do something as complex as managing a 911 emergency system. At any moment in the system, numerous programs may request services from these subsystems. It is the kernel's responsibility to schedule work and, if the process is authorized, grant access to utilize these subsystems. In short, programs interact with the subsystems via software libraries and the systems call interface. We'll start by looking at how the UNIX kernel comes to life by way of the system initialization process.
System Initialization
System initialization (booting) is the first step toward bringing your system into an operational state. A number of machine-dependent and machine-independent steps are gone through before your system is ready to begin servicing users. At system startup, there is nothing running on the Central Processing Unit (CPU). The kernel is a complex program that must have its binary image loaded at a specific address from some type of storage device, usually a disk drive. The boot disk maintains a small restricted area called the boot sector that contains a boot program that loads and initializes the kernel. You'll find that this is a vendor specific procedure that reflects the architectural hardware differences between the various UNIX vendor platforms. When this step is completed, the CPU must jump to a specific memory address and start executing the code at that location. Once the kernel is loaded, it goes through its own hardware and software initialization.
Kernel Mode
The operating system, or kernel, runs in a privileged manner known as kernel mode. This mode of operation allows the kernel to run without being interfered with by other programs currently in the system. The microprocessor enforces this line of demarcation between user and kernel level mode. With the kernel operating in its own protected address space, it is guaranteed to maintain the integrity of its own data structures and that of other processes. (That's not to say that a privileged process could not inadvertently cause corruption within the kernel.) These data structures are used by the kernel to manage and control itself and any other programs that may be running in the system. If any of these data structures were allowed to be accidentally or intentionally altered, the system could quickly crash. Now that we have learned what a UNIX kernel is and how it is loaded into the system, we are ready to take a look at the four UNIX subsystems Process Management, Memory Management, Filesystem Management and I/O Management.
Process Management
The Process Management subsystem controls the creation, termination, accounting, and scheduling of processes. It also oversees process state transitions and the switching between privileged and nonprivileged modes of execution. The Process Management subsystem also facilitates and manages the complex task of the creation of child processes.
A simple definition of a process is that it is an executing program. It is an entity that requires system resources, and it has a finite lifetime. It has the capability to create other processes via the system call interface. In short, it is an electronic representation of a user's or programmer's desire to accomplish some useful piece of work. A process may appear to the user as if it is the only job running in the machine. This "sleight of hand" is only an illusion. At any one time a processor is only executing a single process.
Process Structure
A process has a definite structure (see Figure 19.1). The kernel views this string of bits as the process image. This binary image consists of both a user and system address space as well as registers that store the process's data during its execution. The user address space is also known as the user image. This is the code that is written by a programmer and compiled into an ".o " object file. An object file is a file that contains machine language code/data and is in a format that the linker program can use to then create an executable program.
Diagram of process areas.
The user address space consists of five separate areas: Text, Data, Bss, stack, and user area.
Text Segment The first area of a process is its text segment. This area contains the executable program code for the process. This area is shared by other processes that execute the program. It is therefore fixed and unchangeable and is usually swapped out to disk by the system when memory gets too tight.
Data Area The data area contains both the global and static variables used by the program. For example, a programmer may know in advance that a certain data variable needs to be set to a certain value. In the C programming language, it would look like:
Code:
int x = 15;
If you were to look at the data segment when the program was loaded, you would see that the variable x was an integer type with an initial value of 15.
Bss Area The bss area, like the data area, holds information for the programs variables. The difference is that the bss area maintains variables that will have their data values assigned to them during the programs execution. For example, a programmer may know that she needs variables to hold certain data that will be input by a user during the execution of the program.
Code:
int a,b,c; // a,b and c are variables that hold integer values.
char *ptr; // ptr is an unitialized character pointer.
The program code can also make calls to library routines like malloc to obtain a chunk of memory and assign it to a variable like the one declared above.
Stack Area The stack area maintains the process's local variables, parameters used in functions, and values returned by functions. For example, a program may contain code that calls another block of code (possibly written by someone else). The calling block of code passes data to the receiving block of code by way of the stack. The called block of code then process's the data and returns data back to the calling code. The stack plays an important role in allowing a process to work with temporary data.
User Area The user area maintains data that is used by the kernel while the process is running. The user area contains the real and effective user identifiers, real and effective group identifiers, current directory, and a list of open files. Sizes of the text, data, and stack areas, as well as pointers to process data structures, are maintained. Other areas that can be considered part of the process's address space are the heap, private shared libraries data, shared libraries, and shared memory. During initial startup and execution of the program, the kernel allocates the memory and creates the necessary structures to maintain these areas.
The user area is used by the kernel to manage the process. This area maintains the majority of the accounting information for a process. It is part of the process address space and is only used by the kernel while the process is executing(see Figure 19.2). When the process is not executing, its user area may be swapped out to disk by the Memory Manager. In most versions of UNIX, the user area is mapped to a fixed virtual memory address. Under HP-UX 10.X, this virtual address is 0x7FFE6000. When the kernel performs a context switch (starts executing a different process) to a new process, it will always map the process's physical address to this virtual address. Since the kernel already has a pointer fixed to this location in memory, it is a simple matter of referencing the current u pointer to be able to begin managing the newly switched in process. The file /usr/include/sys/user.h contains the user area's structure definition for your version of UNIX.
Diagram of kernel address space.
Process Table The process table is another important structure used by the kernel to manage the processes in the system. The process table is an array of process structures that the kernel uses to manage the execution of programs. Each table entry defines a process that the kernel has created. The process table is always resident in the computer's memory. This is because the kernel is repeatedly querying and updating this table as it switches processes in and out of the CPU. For those processes that are not currently executing, their process table structures are being updated by the kernel for scheduling purposes. The process structures for your system are defined in /usr/include/sys/proc.h.
Fork Process The kernel provides each process with the tools to duplicate itself for the purpose of creating a new process. This new entity is termed a child process. The fork() system call is invoked by an existing process (termed the parent process) and creates a replica of the parent process. While a process will have one parent, it can spawn many children. The new child process inherits certain attributes from its parent.
Process Run States
A process moves between several states during its lifetime, although a process can only be in one state at any one time. Certain events, such as system interrupts, blocking of resources, or software traps will cause a process to change its run state. The kernel maintains queues in memory that it uses to assign a process to based upon that process's state. It keeps track of the process by its user ID.
UNIX version System V Release 4 (SVR4) recognizes the following process run states:
Code:
- SIDLE This is the state right after a process has issued
a fork() system call. A process image has yet to be copied into memory.
- SRUN The process is ready to run and is waiting to be executed by the CPU.
- SONPROC The process is currently being executed by the CPU.
- SSLEEP The process is blocking on an event or resource.
- SZOMB The process has terminated and is waiting on
either its parent or the init process to allow it to completely exit.
- SXBRK The process is has been switched out so that another process can be executed.
- SSTOP The process is stopped.[/COLOR]
When a process first starts, the kernel allocates it a slot in the process table and places the process in the SIDL state. Once the process has the resources it needs to run, the kernel places it onto the run queue. The process is now in the SRUN state awaiting its turn in the CPU. Once its turn comes for the process to be switched into the CPU, the kernel will tag it as being in the SONPROC state. In this state, the process will execute in either user or kernel mode. User mode is where the process is executing nonprivileged code from the user's compiled program. Kernel mode is where kernel code is being executed from the kernel's privileged address space via a system call.
At some point the process is switched out of the CPU because it has either been signaled to do so (for instance, the user issues a stop signal--SSTOP state) or the process has exceeded its quota of allowable CPU time and the kernel needs the CPU to do some work for another process. The act of switching the focus of the CPU from one process to another is called a context switch. When this occurs, the process enters what is known as the SXBRK state. If the process still needs to run and is waiting for another system resource, such as disk services, it will enter the SSLEEP state until the resource is available and the kernel wakes the process up and places it on the SRUN queue. When the process has finally completed its work and is ready to terminate, it enters the SZOMB state. We have seen the fundamentals of what states a process can exist in and how it moves through them. Let's now learn how a kernel schedules a process to run.
Process Scheduler
Most modern versions of UNIX (for instance, SVR4 and Solaris 2.x) are classified as preemptive operating systems. They are capable of interrupting an executing a process and "freezing" it so that the CPU can service a different process. This obviously has the advantage of fairly allocating the system's resources to all the processes in the system. This is one goal of the many systems architects and programmers who design and write schedulers. The disadvantages are that not all processes are equal and that complex algorithms must be designed and implemented as kernel code in order to maintain the illusion that each user process is running as if it was the only job in the system. The kernel maintains this balance by placing processes in the various priority queues or run queues and apportioning its CPU time-slice based on its priority class (Real-Time versus Timeshare).
Memory Management
Random access memory (RAM) is a very critical component in any computer system. It's the one component that always seems to be in short supply on most systems. Unfortunately, most organizations' budgets don't allow for the purchase of all the memory that their technical staff feel is necessary to support all their projects. Luckily, UNIX allows us to execute all sorts of programs without, what appears at first glance to be, enough physical memory. This comes in very handy when the system is required to support a user community that needs to execute an organization's custom and commercial software to gain access to its data.
Memory chips are high-speed electronic devices that plug directly into your computer. Main memory is also called core memory by some technicians. Ever heard of a core dump? (Writing out main memory to a storage device for post-dump analysis.) Usually it is caused by a program or system crash or failure. An important aspect of memory chips is that they can store data at specific locations called addresses. This makes it quite convenient for another hardware device called the central processing unit (CPU) to access these locations to run your programs. The kernel uses a paging and segmentation arrangement to organize process memory. This is where the memory management subsystem plays a significant role. Memory management can be defined as the efficient managing and sharing of the system's memory resources by the kernel and user processes.
Memory management follows certain rules that manage both physical and virtual memory. Since we already have an idea of what a physical memory chip or card is, we will provide a definition of virtual memory. Virtual memory is where the addressable memory locations that a process can be mapped into are independent of the physical address space of the CPU. Generally speaking, a process can exceed the physical address space/size of main memory and still load and execute.
The systems administrator should be aware that just because she has a fixed amount of physical memory, she should not expect it all to be available to execute user programs. The kernel is always resident in main memory and depending upon the kernel's configuration (tunable-like kernel tables, daemons, device drivers loaded, and so on), the amount left over can be classified as available memory. It is important for the systems administrator to know how much available memory the system has to work with when supporting his environment. Most systems display memory statistics during boot time. If your kernel is larger than it needs to be to support your environment, consider reconfiguring a smaller kernel to free up resources.
We learned before that a process has a well-defined structure and has certain specific control data structures that the kernel uses to manage the process during its system lifetime. One of the more important data structures that the kernel uses is the virtual address space (vas in HP-UX and as in SVR4. For a more detailed description of the layout of these structures, look at the vas.h or as.h header files under /usr/include on your system.).
A virtual address space exists for each process and is used by the process to keep track of process logical segments or regions that point to specific segments of the process's text (code), data, u_area, user, and kernel stacks; shared memory; shared library; and memory mapped file segments. Per-process regions protect and maintain the number of pages mapped into the segments. Each segment has a virtual address space segment as well. Multiple programs can share the process's text segment. The data segment holds the process's initialized and uninitialized (BSS) data. These areas can change size as the program executes.
The u_area and kernel stack contain information used by the kernel, and are a fixed size. The user stack is contained in the u_area; however, its size will fluctuate during its execution. Memory mapped files allow programmers to bring files into memory and work with them while in memory. Obviously, there is a limit to the size of the file you can load into memory (check your system documentation). Shared memory segments are usually set up and used by a process to share data with other processes. For example, a programmer may want to be able to pass messages to other programs by writing to a shared memory segment and having the receiving programs attach to that specific shared memory segment and read the message. Shared libraries allow programs to link to commonly used code at runtime. Shared libraries reduce the amount of memory needed by executing programs because only one copy of the code is required to be in memory. Each program will access the code at that memory location when necessary.
When a programmer writes and compiles a program, the compiler generates the object file from the source code. The linker program (ld) links the object file with the appropriate libraries and, if necessary, other object files to generate the executable program. The executable program contains virtual addresses that are converted into physical memory addresses when the program is run. This address translation must occur prior to the program being loaded into memory so that the CPU can reference the actual code.
When the program starts to run, the kernel sets up its data structures (proc, virtual address space, per-process region) and begins to execute the process in user mode. Eventually, the process will access a page that's not in main memory (for instance, the pages in its working set are not in main memory). This is called a page fault. When this occurs, the kernel puts the process to sleep, switches from user mode to kernel mode, and attempts to load the page that the process was requesting to be loaded. The kernel searches for the page by locating the per-process region where the virtual address is located. It then goes to the segments (text, data, or other) per-process region to find the actual region that contains the information necessary to read in the page.
The kernel must now find a free page in which to load the process's requested page. If there are no free pages, the kernel must either page or swap out pages to make room for the new page request. Once there is some free space, the kernel pages in a block of pages from disk. This block contains the requested page plus additional pages that may be used by the process. Finally the kernel establishes the permissions and sets the protections for the newly loaded pages. The kernel wakes the process and switches back to user mode so the process can begin executing using the requested page. Pages are not brought into memory until the process requests them for execution. This is why the system is referred to as a demand paging system.
The memory management unit is a hardware component that handles the translation of virtual address spaces to physical memory addresses. The memory management unit also prevents a process from accessing another process's address space unless it is permitted to do so (protection fault). Memory is thus protected at the page level. The Translation Lookaside Buffer (TLB) is a hardware cache that maintains the most recently used virtual address space to physical address translations. It is controlled by the memory management unit to reduce the number of address translations that occur on the system.
Input and Output Management
The simplest definition of input/output is the control of data between hardware devices and software. A systems administrator is concerned with I/O at two separate levels. The first level is concerned with I/O between user address space and kernel address space; the second level is concerned with I/O between kernel address space and physical hardware devices. When data is written to disk, the first level of the I/O subsystem copies the data from user space to kernel space. Data is then passed from the kernel address space to the second level of the I/O subsystem. This is when the physical hardware device activates its own I/O subsystems, which determine the best location for the data on the available disks.
The OEM (Original Equipment Manufacture) UNIX configuration is satisfactory for many work environments, but does not take into consideration the network traffic or the behavior of specific applications on your system. Systems administrators find that they need to reconfigure the systems I/O to meet the expectations of the users and the demands of their applications. You should use the default configuration as a starting point and, as experience is gained with the demands on the system resources, tune the system to achieve peak I/O performance.
UNIX comes with a wide variety of tools that monitor system performance. Learning to use these tools will help you determine whether a performance problem is hardware or software related. Using these tools will help you determine whether a problem is poor user training, application tuning, system maintenance, or system configuration. sar, iostat, and monitor are some of your best basic I/O performance monitoring tools.
1) sar The sar command writes to standard output the contents of selected cumulative activity counters in the operating system. The following list is a breakdown of those activity counters that sar accumulates.
* File access
* Buffer usage
* system call activity
* Disk and tape input/output activity
* Free memory and swap space
* Kernel Memory Allocation (KMA)
* Interprocess communication
* Paging
* Queue Activity
* Central Processing Unit (CPU)
* Kernel tables
* Switching
* Terminal device activity
2) iostat Reports CPU statistics and input/output statistics for TTY devices, disks, and CD-ROMs.
3) monitor Like the sar command, but with a visual representation of the computer state.
RAM I/O
The memory subsystem comes into effect when the programs start requesting access to more physical RAM memory than is installed on your system. Once this point is reached, UNIX will start I/O processes called paging and swapping. This is when kernel procedures start moving pages of stored memory out to the paging or swap areas defined on your hard drives. (This procedure reflects how swap files work in Windows by Microsoft for a PC.) All UNIX systems use these procedures to free physical memory for reuse by other programs. The drawback to this is that once paging and swapping have started, system performance decreases rapidly. The system will continue using these techniques until demands for physical RAM drop to the amount that is installed on your system. There are only two physical states for memory performance on your system: Either you have enough RAM or you don't, and performance drops through the floor.
Memory performance problems are simple to diagnose; either you have enough memory or your system is thrashing. Computer systems start thrashing when more resources are dedicated to moving memory (paging and swapping) from RAM to the hard drives. Performance decreases as the CPUs and all subsystems become dedicated to trying to free physical RAM for themselves and other processes.
This summary doesn't do justice, however, to the complexity of memory management nor does it help you to deal with problems as they arise. To provide the background to understand these problems, we need to discuss virtual memory activity in more detail.
We have been discussing two memory processes: paging and swapping. These two processes help UNIX fulfill memory requirements for all processes. UNIX systems employ both paging and swapping to reduce I/O traffic and execute better control over the system's total aggregate memory. Keep in mind that paging and swapping are temporary measures; they cannot fix the underlying problem of low physical RAM memory.
Swapping moves entire idle processes to disk for reclamation of memory, and is a normal procedure for the UNIX operating system. When the idle process is called by the system again, it will copy the memory image from the disk swap area back into RAM.
On systems performing paging and swapping, swapping occurs in two separate situations. Swapping is often a part of normal housekeeping. Jobs that sleep for more that 20 seconds are considered idle and may be swapped out at any time. Swapping is also an emergency technique used to combat extreme memory shortages. Remember our definition of thrashing; this is when a system is in trouble. Some system administrators sum this up very well by calling it "desperation swapping."
Paging, on the other hand, moves individual pages (or pieces) of processes to disk and reclaims the freed memory, with most of the process remaining loaded in memory. Paging employs an algorithm to monitor usage of the pages, to leave recently accessed pages in physical memory, and to move idle pages into disk storage. This allows for optimum performance of I/O and reduces the amount of I/O traffic that swapping would normally require.
NOTE: Monitoring what the system is doing is easy with the ps command. ps is a "process status" command on all UNIX systems and typically shows many idle and swapped-out jobs. This command has a rich amount of options to show you what the computer is doing.
I/O performance management, like all administrative tasks, is a continual process. Generating performance statistics on a routine basis will assist in identifying and correcting potential problems before they have an impact on your system or, worst case, your users. UNIX offers basic system usage statistics packages that will assist you in automatically collecting and examining usage statistics.
You will find the load on the system will increase rapidly as new jobs are submitted and resources are not freed quickly enough. Performance drops as the disks become I/O bound trying to satisfy paging and swapping calls. Memory overload quickly forces a system to become I/O and CPU bound.
Filesystem Concept
Filesystem is the collection place on disk device(s) for files. Visualize the filesystem as consisting of a single node at the highest level (ROOT) and all other nodes descending from the root node in a tree-like fashion (see Figure 19.5) . The second meaning will be used for this discussion, and Hewlett Packard's High-performance Filesystem will be used for technical reference purposes.
Diagram of a Android' s hierarchical filesystem.
The superblock is the key to maintaining the filesystem. It's an 8 KB block of disk space that maintains the current status of the filesystem. Because of its importance, a copy is maintained in memory and at each cylinder group within the filesystem. The copy in main memory is updated as events transpire. The update daemon is the actual process that calls on the kernel to flush the cached superblocks, modified inodes, and cached data blocks to disk. The superblock maintains the following static and dynamic information about the
Click to expand...
Click to collapse
6) Tools/Imp Download Links
rickslick said:
Samsung USB drivers(no more kies) for 32bit and 64bit windows: Driver
Adb with ncessary dll : Click here
Flashing tools(odin+ops):click here
Click to expand...
Click to collapse
7) Complete List of ROMs,Kernels for G3
dhirend_6d said:
GINGERBREAD BASED ROMS : -
CYANOGENMOD 7 AND GINGERBREAD AOSP by Marcellusbe.
AOSP FROYO BASED ROMS : -
CYANOGENMOD 6.2 by Marcellusbe.
SAMSUNG FROYO BASED ROMS : -
1) G3MOD ROM by DharamG3 and G3Mod team.
2) KYRILLOS' ROM by Kyrillos13.
3) INDROID by Rudolf895, Arunmcops, Neeljinwala, Akash, Chirayu.
4) DUTCHMODS by Werker123.
5) DESTINY by Hodostamas.
6) KYORAROM by Hillbeast.
7) STYLOO' S AOSP STYLE ROM by Styloo.
8) LESTATIOUS ROM by The Dark Lestat.
9) GRIGORA ROM by RafayelG.
10) SUMEE ROM by Ash!sh.
11) STOCK DEODEXED ROOTED ROMS by DharamG3.
12) DHARAM' S ROM COLLECTION by DharamG3.
13) SAMSUNG STOCK FIRMWARES (WITHOUT BOOTLOADERS) by Kyrillos13.
14) IBREAD.NITESH by Niteshtak.
15) GREENMODS POX by Jazux, Akash, Pauri, s3th.g3ck0.
16) ATROM by Dpthakar.
17) SPEEDMOD ROM by Styloo and DharamG3.
18) RAFO' S ROM by RafayelG.
19) REAPER REVIVAL ROM by Jihaa.
20) APOCALYPSE by ARMVKDevs.
21) BURAK' S ROM by Burak721.
22) CYANOBROZZU MOD ROM by Superfancy97.
23) OUM ROM by Revant.
24) THE PEOPLE' S ROM by Shekhargreen.
25) GALACTIC BLUE ROM by Cdesai, Shubhamchamaria, Aarun.
26) PSYCHOTIK ROM by TotorLeTaureau
27) [KERNEL+ROM] APOLLO by Apollo5801
28) THE BLUE by Abhi0n0nakul.
KERNELS : -
KERNELS BY DHARAM AND TEAM G3MOD : -
1) G3Mod Kernels for Froyo.
2) G3Mod Kernels for CM 6.2.
All the kernels of G3Mod along with changelog and features can be found here.
KERNELS BY MARCELLUSBE : -
1) FuguMod 2.4 Beta 3 (JFS/REISERFS Supported), 800 Mhz Edition.
2) FuguMod 2.4 Beta 3 (JFS/REISERFS Supported), Standard Edition.
3) FuguMod 2.4 Beta 3, 800 MHz Edition.
4) FuguMod 2.4 Beta 3, Standard Edition.
5) FuguMod 2.2 Bleeding Edge Edition.
6) FuguMod 2.2 Standard Edition.
Link to all the above kernels here.
For features and changelog see here.
7) FuguMod Ultra.
KERNELS BY APOLLO5801 : -
Dual Boot kernel.
KERNELS BY GSAM101 : -
SAM' S KERNEL V0.1.
Click to expand...
Click to collapse
8) FAQ For G3
9) EPIC Fail Ideas for G3
hillbeast said:
Seeing nobody has posted any real epic fail ideas, I will post one: I saw a guy wanting to post iOS to our phone. Now I can understand an iOS skin, but why would we want an OS that can't even handle multitasking properly and replace the glory of Android with Steve Jobs' locked down nutjob OS?
Click to expand...
Click to collapse
Credits
1) Android Basics
http://www.wikipedia.org/
http://developer.android.com/index.html
2) Galaxy 3 Features
www.gsmarena.com
3) Hardware
http://www.samsung.com/
http://www.atmel.com
4) ROM Basics/Tutorails
Flashing - BraveBuddy
dharamg3 said:
Credits
rudolf895, jazux and sekhargreen for their tutorials and how-to's....
loads more too come...i will add as i add the context...
but thanks to all the developers doing the wonderful work for Galaxy 3
Click to expand...
Click to collapse
Damn this is going to be a long one because you reserved 10 posts good luck
jazux said:
Damn this is going to be a long one because you reserved 10 posts good luck
Click to expand...
Click to collapse
just wait and see..hoping to cover everything
dharamg3 said:
Credits
rudolf895, jazux and sekhargreen for their tutorials and how-to's....
loads more too come...i will add as i add the context...
but thanks to all the developers doing the wonderful work for Galaxy 3
Click to expand...
Click to collapse
Hi,
It is good to get all the stuff at one place.
Let me know if any help needed.
sekhargreen said:
Hi,
It is good to get all the stuff at one place.
Let me know if any help needed.
Click to expand...
Click to collapse
sure, you can give me links here on what all can be added...
you can call the topic: "the ultimate guide for the galaxy 3"
vonuzu said:
you can call the topic: "the ultimate guide for the galaxy 3"
Click to expand...
Click to collapse
let me start off...it will take time to make it the ultimate
Android Basics Added to start off...Much More To Come
NICE WORK! Im definetly going to mail the xda newswriter about this
done in week you are going to be in news, for sure
This subject topic will be the most significant added value to this forum:
For the new members (sometime old once) that are joining the G3 revolution (and this is happing here), there is a need to provide them the basics before they can dive into elements such as: Custom ROM's, Kernel's...etc.
Myself as a junior user and others will greatly appreciate this new introduced topic.
Hi
Always though it is a plus on phone to have IR blasting capability to replace old remotes.
Replacement for old remotes or higher specs remotes such as PRONTO, needs to be fully customizable, not only the screen designed ( the activity of the remote for a specific device) but also the DEVICE database and the “bindings” actions to buttons.
With this APP you can currently control IR natively on the GS4 as well as exposing VIDEOVIEW with URL pointing to your WEBCAM in activity screen you would design yourself.
You can also go through WIFI and control IR using (USB-UIRT) or PLUGWISE devices or anything else if you do it yourself.
This APP if you decide to spend little time on it using the GS4 is SIMPLE and will allow you I believe to quickly create yourself your own customizable remote screen(s) in 5 minutes: see video example bellow "Design remote from scratch".
As all other application out there, not having GS4 IR learning implies you need to find the code that work for your device. Most APP uses there own DB, I'm not sure how open these application are in this respect. RemoteGATE APP supports both the REMOTECENTRAL DB as well as the LIRC database and allow you to edit import any *PRONTO* device code found. So chances you will find your code is quite high but not guarantee.
Basically if you decide to use use ONLY the GS4 internal IR blaster and have found working remote codes for your device, you can design your own remote in 5 minutes.
If you like to go further then you can decide to use the GATE part of RemoteGATE, that is a Python socket server that would blast IR code via USB-UIRT but also can control other device such as PLUGWISE or any other device you like if you do it yourself such as X10 etc… For example you could interface the APP to EventGhost ( I use currently part of there work on USB-UIRT for blasting and learning capability)
Also using the server part would allow you to use any other Android devices ( OLD phone ) as your remote control replacement. I currently use my OLD GALAXY ACE phone for this and it is totally usable for me.
Enjoy!
OVERVIEW:
-Create/use fully customizable remote control design screen for IR, Plugwise devices and RTSP IPCAM video feed
-Android APP minimum OS version 4.1.2
-Tested working devices GS4, NOTE 2, GATAB 7.7, ACE ( Cyanogen mode 4.2 ).
Other devices should work fine as long as OS requirement meets.
Remote activity created on GS4 (higher resolution) would open down scaled automatically on lower resolution I.E. GALAXY ACE.
-Controlling IR devices via
GS4 IR blaster
OR blast IR code via USB-UIRT (currently the only one supported device) via WIFI
-Control any other devices RemoteGate Server WIFI(Python socket server )
Blasting IR via USB-UIRT
IR learning via USB-UIRT
Plugwise support (on/off/toggle/wattage)
-Design Remote activity
add / remove / pinch zoom / alignment / sizing / rotation / cloning for ImageView/TextView/VideoView objects
Undo / Redo
Color / gray scale for ImageView Objects
bring to front/back objects
Color or Image background for remote activity
Automatic down scale of remote activity created on higher resolution devices
-Fully customizable Device DATABASE
IR code fetching for user devices from Remote Central and LIRC database
Add new devices / functions : free input field of IR PRONTO CODE or anything else (if NOT IR goes on Python RemoteGate Sever )
Delete devices/functions
IR code learning from USB-UIRT via WIFI
Auto generate remote Activity template from Device Database that can be re-designed if wished in the design activity
-Fully customizable activity actions
Add/remove bindings to designed remote activity objects
Bind ImageView (buttons) to one or more Device database function IR or WIFI
Bind VideoView to RTSP video URL
Bind TextView to Plugwise Device for wattage query
The focus on this project is mainly user interface and full customization for the user of the remote activity/screen as well as handling of your IR code.
All files are XML this mean they can be modified externally, screen activity could be built on the PC. Etc....
VIDEOS:
Design remote from scratch:
https://www.dropbox.com/s/ey6fvbkt94xesn6/Create remote from scratch.mp4
RemoteGate running on GALAXY ACE, GTAB 7.7 and NOTE 2, GS4 used for the video
The 3 devices since they don't have a blaster uses the RemoteGate Python socket server with USB-UIRT ( the blaster running on a PC)
https://www.dropbox.com/s/svoq9r1uk1uakw3/ACE NOTE GTAB 7.7.avi
RemoteGate learning remote code via RemoteGate Python socket server with USB-UIRT
https://www.dropbox.com/s/up7by7jk4bp2kbf/NOTE 2 LEARNING .avi
RemoteGate and Plugwise toggle/on/off and wattage
https://www.dropbox.com/s/jtpiyu89vsldahj/NOTE2 PLUGWISE WATT.avi
RemoteGate showing shortcut creation of any button on your launcher, use of simple and complex activity as well as use off remotegate over the internet via 3G.
https://www.dropbox.com/s/fl1m25kip...rtcuts complex activity and 3G connection.mp4
In details
1)open remote gate and create "My Remote" ( shortcut to your HOME activity on the launcher.
Then showing the use of the remote. This is equivalent to open RemoteGate and touch launch remote menu.
RemoteGate is the APP that you would use to create your device DB, then activity screen and the action bound to buttons
"My Remote" is the runtime that is a shortcut to the RemoteGate launch remote menu.
2)Launch RemoteGate again and go in activity action
-show action for the designed TV activity
-Long press on the TV button the create the shortcut
-Do the same for the Stream button ( this is a complex activity ) and create a shortcut
-next open the TV activity show the action for 2 channels and create the shortcut as well for the TV power button
-next go in the dimmer activity and create shortcut to open / close light.
NOTE: I am using LightMan this is a device that receive blaster IR and then blast it to RF to some sheap switches and dimmers.
3)Finally show the launcher home screen with the created shortcuts
-The VIDEO widget is not from RemoteGate it only serve the purpose to show the action on clicking on the shortcut created.
RemoteGate has is own VIDEOVIEW ( RTSP only ) and no widget for it for the moment
-touch the Dimmers ON shortcut
==>show light tuning on in the VIDEO vidget ( reflexion on the TV)
-Dimmers off
-touch the TV power button
=>open the TV
-touch HISTORY HD shortcut
=>blast IR, 6,0,2
-touch France
=>blast IR 6,2,2
NOTE you can blast IR with the GS4 as you know, here in my case I use USB-UIRT and the RemoteGate Python server
4)Next touch stream a complex RemoteGate activity
-It shows a video view of my IPCAM
-It shows current wattage of the TV
-Touching the HARDKEY menu opens the TV menu
-Long press (repeat down button )
5)Lately DISABLE wifi and use 3G and do the SAME as above.
With RemoteGate you can control your devices remotely, you can design your own activities etc...
DOWNLOAD:
http://gemperle.home.xs4all.nl/PROTON/REMOTEGATE.zip
INSTALL:
Unzip and move the entire REMOTEGATE folder to your internal storage or extSdCard ( change to /storage/extSdCard in the application settings menu OR to where you placed the REMOTEGATE folder ).
The ZIP contains RemoteGATE.py; delete this file if you don't need to blast IR from WIFI and only want to use the GS4 blaster.
If you do want to use RemoteGATE server you will need to run RemoteGATE.py with Python 2.7 with the required dependencies and with USB-UIRT device on machine acting as a server.
The structure of the folder should be maintained i.e.:
/storage/emulated/0/REMOTEGATE
DEVICES.xml
BUTTONS
ACTIVITY
BACKGROUND
-Install Remotegate.apk
Change remotegate HOME path if needed...(you can do this from the application setting menu)
NOTE:
The ZIP package contains remote activity/actions and device DB I currently use that serves also as examples for you. I recommend you to have a look at it from the main menu in Design activity/Activity Action and Device database so to see the current application features and familiarize yourself with the application and the design and ultimately to see if this application is for you....
If you use other DEVICES with lower resolution such as GALAXY NOTE2, GTAB 7.7 or ACE you would need to open ALL activity I created in the DESIGN ACTIVITY menu so to down scale the activity I created BEFORE launching the remote.
Once done playing with my defined remote and find it useful try doing your own remote: You can delete DEVICE.XML in the root of the REMOTEGATE folder as well as delete ALL activities in the ACTIVITY folder ( the ACTIVITY folder must not be deleted ).
RemoteGATE.py: Python socket server using USB-UIRT and PLUGWISE
Full credit for the USB-UIRT module from EventGhost: http://www.eventghost.org/
Plugwise modules from hadara python-plugwise: https://bitbucket.org/hadara/python-plugwise/wiki/Home
I currently use it with Python 2.7 on WINDOWS but it should be fine on Linux with some mod.
It requires PythonSerial, CRCMOD and Plugwise modules from the above link.
SCREENSHOTS:
RemoteGate main view
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
RemoteGate Design screen and menu listing of the activities
RemoteGate Design screen more menu ( controls etc)
RemoteGate Design screen more menu ( alignment/resizing/moving etc...)
RemoteGate Design LANDSCAPE screen
RemoteGate Activity action menu
Custom Gesture Edit
Non visual actions edit and view
Non visual actions (speech) go to discovery channel on sharp TV
RemoteGate Activity action on gesture IE. Swipe right.
RemoteGate Activity action (bindings) to a button that support repeat ( long touch)
RemoteGate Activity action XBMC / TV and long action test example
RemoteGate device DB menu
RemoteGate DB supported DEVICES : IR=device internal blaster. VIDEO RTSP stream, USB-UIRT via WIFI RemoteGATE.py SERVER
RemoteGate device DB Editing and testing IR
RemoteGate device DB fetching BRAND from RemoteCentrale or LIRC DB
RemoteGate device DB fetching MODEL from RemoteCentrale or LIRC DB
RemoteGate device DB testing fetched code from RemoteCentrale or LIRC DB
RemoteGate device DB Learning IR from original remote using USB-UIRT and RemoteGATE.py server
RemoteGate device DB Learning IR from original remote using USB-UIRT and RemoteGATE.py server
RemoteGate device DB generating remote template from selected devices
Settings General
Settings User interface for remote activities
RemoteGate shortcuts on HOME screen launcher
REMOTEGATE USAGE:
==================
SETTINGS
-Not much for the moment, the only important settings are
HOME path : this need to point to the REMOTEGATE folder you unzipped (see install )
Gate IP address : Only use if you use the Python RemoteGATE.py server
LAUNCH REMOTE
-Select Launch Remote from the menu
This will show you my HOME designed activity.
This is the remote I designed for my usage. You can edit or start a new HOME screen from scratch.
The visual objects are stored im the HOME.XML from /REMOTEGATE/ACTIVITY folder.
Touching any of the button will bring you to other activities as well as blasting IR (see activity action)
Touching hard key back button will go back to the HOME screen.
DESIGN ACTIVITY
-You can create ACTIVITIES as much as you want, designing your own screen with your own picture for the remote button.
To do this from the main menu select "Design Activity"
Here you can create a NEW or OPEN an existing ACTIVITY.
Then you can add a new control(s) , you can set a background, delete controls etc...
As an example adding a new IMAGEVIEW control will look at the provide folder /REMOTEGATE/BUTTONS
This is a folder containing ICONS/PICTURE, you can use your own .
It will exposes icons and here you can multi-select to add to your activity
When selecting, the button(s) they will show on the activity and you can then pinch zoom to move position it in your activity
You can further align the button(s) etc.. to design you own remote activity.
Once finish with the design touch BACK hard button.
This will update or SAVE your new activity in the /REMOTEGATE/ACTIVITY folder as the NAME.XML you gave when you saved the activity...
So this should explain how to create new activities....
DEVICE DATABASE
This is DEVICES.XML file in /REMOTEGATE that contains all your DEVICE IR CODE or PLUGWISE mac address of plugs ( this require the Python RemoteGATE.py server running. The provided DEVICES.XML is my own DB as an example.
To open the XML DB go to the MAIN main menu and select "Device database"
You can scroll right / left to see the full contents.
Here in the Device DB you can edit and save your own pronto IR
The Device DB menu allows you to Save/ Delete selected rows but also to lookup a device from the internet ( using REMOTECENTRAL OR LIRC database)
The dialog will go through BRANDS then the model selection
Finally the function of the device. Here you can test IR codes
Once you tested your IR code fine just add them
You can also create new devices touching + in the menu. Then from the new device you created, you can touch the + on the row to add new function
At this point either you copy and paste an IR PRONTO code in your new function OR you can use Python RemoteGATE.py server to learn code of your original remote ONLY if you have USB-UIRT. Or set anything you want here, it be sent as a message string to the server to process any kind of action you want if you programmed it on the server.
See VIDEO
"RemoteGate learning remote code via RemoteGate Python socket server with USB-UIRT"
ACTIVITY ACTION
Finally once you have created activities from your DEVICE DB you can BIND your activities button(s)/icon(s) to function(s) from your DEVICE DB or to another activity ( jump to activity).
You can bind and send IR code via NATIVE GS4 IR device or via IP Python RemoteGATE.py server that uses currently only USB-UIRT
The binding is done in REMOTEGATE APP main menu selecting "Activity Actions"
All buttons without action(s) will show in purple gray
Open an existing activity and click the button. If there are already binding(s) you can see the list to update it or delete it.
If there isn't binding(s) you can add actions in a list to accomplish multiple actions ( IR or WIFI ) to be blasted when touching the button when the remote got launched. SEE the TV, MEDIA PLAYER, Satellite actions as a example.
CHANGELOG
03./03/2014:
-Further improvements in activity actions performance
-Custom gesture now GLOBAL or LOCAL to an activity screen. Allowing specific gesture per remote screen (avoiding conflicts with other one )
MORE details : on post #87 http://forum.xda-developers.com/showthread.php?p=50787504
VIDEO : https://www.dropbox.com/s/7xvyebnhrgqhco4/gesture type and scope (global local).mp4
24/02/2014:
-Support Android 4.4.2 (KitKat ) ConsumerIrManager
-Many improvements in activity action ( performance editing non visual action ) gesture / speech /hard key
-Device DATABASE : import of LIRC .conf file, so that you can import LIRC code from a file instead of looking at the remote in the LIRC remote database
-Device DATABASE: import of psiloc s60 .ir file, file that embed LIRC code definition in XML.
02/02/2014
-Custom gesture support for remote actions ( works also on Galaxy ACE)
-Speech recognition for remote action ( not supported on Galaxy ACE, OK on Note 2, TAB 7.7).
To make this feature work make sure in Language and Input settings you select Google Voice typing and choose your language and for offline speech recognition download you language
-List of non-visual actions (i.e.: HARD KEY, GESTURE, SPEECH ) in RemoteGate activity action, so you can delete / edit non visual actions.
-Syncing actions against the device database in RemoteGate activity action; All screen you device that bind action from the DEVICE DB stores the actions inside the ACTIVITY XML file, *not* as reference to the Device DB but statically. Hence when modifying the devices in the RemoteGate Device Database view, you can sync / refresh the action for your remote activity.
-Support look and feel transition between remote activities ( none:default, fade in/out, slide in/out)
-RemoteGate Config screen support now
-RemoteGate password
-Change of transition for your remote screen
-Disable/Enable notification
-Disable/Enable overlay gesture view
-Enable vibration on touch button else default sound ( if android sound config enabled “Touch sounds”)
20/1/2014
Add notifications : Showing ICON in status bar of sent actions : IR (red) or WIFI (blue), Delay and Activity
19/1/2014
Add Simple Gesture ( swipe up/down/right/left ) in edit activity action so to bind these gesture to list of actions: JUMP to an activity + BLAST + DELAY
15/1/2014
-Improved shortcut: if shortcut of UI activity are launched and then closed via the HOME hardkey button, as expected it would stay in memory and when opening another different shortcut the same previous shortcut would show instead of the selected one. So now only for shortcut, going back to the launcher via the HOME key would finish() the the application shortcut opened so that new opened shortcut would display fine.
-Improved DEVICE DB : now if using a android DEVICE with native IR capability ADDING a device from RemoteCentral or LIRC will set the field to "IR" instead of "Infra Red".
If the android device does not support IR natively, "USB-UIRT" would be set instead implying you have to set RemoteGate.py server to have a functional remote.
A NOTE about shortcut : The data of the shortcut; ACTIVITY to OPEN and OR IR to be blasted / DELAYS are bundled in the shortcut itself this means if the BUTTON action that has a shortcut on the launcher is modified, the shortcut MUST BE RECREATED ( long press). I think it is better to have the DATA in the shortcut itself instead of the shortcut referencing some file with the data... The inconvenience of re-creating the shortcut is IMO less than having extra files lying around
12/1/2014
-Implement RemoteGate shortcut on launcher home screen.
-Improve action threading (delay and blast).
NOTE: Action of buttons containing activity and or delay cannot be repeatable button ( long press)
You can have multiple activities ( jump to a screen activity ) on a button BUT only the last activity will show.
Activity or SCREEN UI are shown FIRST then all the action BLASTING IR/DELAY are EXECUTED IN ORDER.
See VIDEO:
https://www.dropbox.com/s/fl1m25kip...rtcuts complex activity and 3G connection.mp4
IMPORTANT info for current version:
DEVICE DB screen, find IR code from remote central or lirc when adding a device to the database will add your device as "Infra Red"
This field can be edited and should be changed/edit to "IR" instead to blast IR code from the GS4 natively
27/12/2013:
-DEVICE DB: recognize KEYWORD IR= use the native device IR blaster.
USB-UIRT: Blast IR via WIFI to the RemoteGATE.py server.
VIDEO: Video URL ( supported by Android VIDEOVIEW)
These are KEYWORDS that must be used. IF you only plan to use RemoteGATE with the S4 internal blaster set your DEVICE ( edit field to IR ). Later on setting screen will deal about that automatically with list of supported devices : I.E.: it should be possible to use the VISTA USB IR dongle ( cheap ) for blasting and learning IR using eventGhost py modules
-Implemented LONG TOUCH ( repeatable button) in the remote activity action: you can check any button you want to allow repeat. This is working both for IR and USB-UIRT. Currently timings are hard coded but they be soon or later in the config screen. When USING USB-UIRT and this via the internet, it actually works quite fine...there is some latencies but it is workable.
-Implemented DELAY in milliseconds in activity action, to separate IR blast or USB-UIRT wifi blast to set delays in between blasted actions...
-Implemented MOVE UP/ DOWN action in the list. It supports multi-selections move up/down of contiguous on non contiguous items
(See snapshots above )
-Improved PLUGWISE threads getting watts info.
IMPORTANT: If you use remoteGATE and did design couple screen, you will have open your screen in activity action and click on your buttons that defines your actions so that the XML updates. There as been quite some change. Again you just must open the action for the button and click OK. You don't have to delete/recreate your actions.
Sorry for the inconveniences...
08/12/2013:
-Redesign of all menus
- Multi device support mdpi/hdpi and xhdpi ( minimum Android 4.1)
-Improve performance loading activity ( this became apparent when using the GALAXY ACE)
-Undo / Redo
-Generate remote template from the DEVICE database
-Support LEARNING when using RemoteGate Python socket server ( provided in the ZIP)
10/11/2013:
-Soon an update : Generate remote activity from LIRC remotes
http://lirc.sourceforge.net/remotes/
Here a long video showing I believe how simple this is to create remotes both from remote central and LIRC:
https://www.dropbox.com/s/cjhdpox3ji...110_122024.mp4
29/10/2013:
-Worked on menu ICONS design...not fully done now.
-Auto generate remote activity from device database. This is something that I believe really will help the QUICK usage of the application..See snapshot bellow and short explanation
-In design activity : Added cloning of selected objects. Also now for the selected item(s) you can change the picture ( before that was not possible, you add to remove the object and re-create it)
-Blasting IR was lagging : I did not see that as I use IP wifi to blast from a USB-UIRT device, I don't use the generally the S4 IR blaster. Fixed issue doing threads. It is fine now at least much better. Still there is no long press IE for volume support now...
-Try to improve TextView / zooming / position: It is better but I'm still not fully satisfied here: I guess the idea to render bmps from text so to allow pinch zoom on ImageView was a mistake first place, better increase font size through pinch zoom... It is not so critical for the moment but ZOOMING certain TextView that has single or multiple line can be visually slightly of...
26/08/2013: Bug fixes, integrating JNI LIRC and LIRC2XML to conver LIRC code to pronto code. See post
http://forum.xda-developers.com/show...45955630593165
12/08/2013: Bug fixes... but new bugs as more feature came in. LABEL in activities are still not fully implemented and FC quite a lot ( changing color or editing)
05/08/2013: More features... IPCAM view in remote activity. Only rtsp stream ( mjpgeg lib out there very unstable.) For the moment only a VIDEO shows the feature.
I need to stabilize all these new things ( especially labels). I'm just toying for the moment
04/08/2013: Added TextView ( LABEL for remote screen in design ACTIVITY). This is not complete for the moment; i.e.: Label will not show when launching the remote.
This will be soon implemented as well as the need to re-organizing design activity menu.
27/07/2013 : "Design Activity" were you bind IR Code from the DB improved a lot. It now shows existing binding(s) for the selected button.
You can also delete (multiple) bound actions...When entering lot of actions, you will notice some performance issues...but this is not really a problem, just does not look that professional...will find a solution.
22/07/2013 : Start remove the custom DIALOG and use menudrawer instead i.e. : in design activity the created activity will show dynamically in menu instead of using a DIALOG...
20/07/2013 : Use simonvt menu drawer, many bug fixes and couple features implemented
04/06/2013 : Some minor update and improvements. Start to work the alignments of picture in the design of a remote activity.
Very good work here man think you can go quite far with this,
I request though that you can add custom code support as there are TONS of devices that the mainstream apps currently available dont support, anyway best of luck and great work!
Thanks for encouraging me. Sweated real hard on the design activity layouts and android graphic matrix; you can put icon there, positions, zooming, background etc.. Need to work on alignment sizing, and grouping etc... Also the fun was on the scraping remotecentral in the device db view...
I'm not sure what you mean by custom code you mean other code formats than pronto code?
Also if anyone can tell me if gs4 IR supports learning that be great or how to find out...
Thanks
Jean-Marc
Sent from my GT-I9505 using Tapatalk 2
the developers of Smart Remote for S4 said it doesn't have the hardware to learn unfortunately :/
I can't wait to see how this turns out, good luck!
This sounds great
PLUG313 said:
the developers of Smart Remote for S4 said it doesn't have the hardware to learn unfortunately :/
I can't wait to see how this turns out, good luck!
Click to expand...
Click to collapse
This sounds great
Very interesting fir MySky HD Italy, not supported till now...thanks a lot
Great work, customisability is what Im waiting for...what a shame it has not learning function ...after the last update I have no problem with Watchon to remote common devices like TV, DVD, etc. But I miss support for air conditioning, DVB-T TV card for notebook. Is it possible to add these types of devices to your support?
edit: OK, so every app I saw on google play is based on internet database, but what if I have file with code to my device? Is it possible to add support for manual IR codes file upload for some special devices? There is possibility to download files from some sites (e.g. http://irremote.psiloc.com)
BTW, Im in for alpha testing if you want...
kultus said:
Great work, customisability is what Im waiting for...what a shame it has not learning function ...after the last update I have no problem with Watchon to remote common devices like TV, DVD, etc. But I miss support for air conditioning, DVB-T TV card for notebook. Is it possible to add these types of devices to your support?
edit: OK, so every app I saw on google play is based on internet database, but what if I have file with code to my device? Is it possible to add support for manual IR codes file upload for some special devices? There is possibility to download files from some sites (e.g. http://irremote.psiloc.com)
BTW, Im in for alpha testing if you want...
Click to expand...
Click to collapse
+1 if you need a beta tester
lukemo said:
+1 if you need a beta tester
Click to expand...
Click to collapse
+1
... tapat*lked
kultus said:
Great work, customisability is what Im waiting for...what a shame it has not learning function ...after the last update I have no problem with Watchon to remote common devices like TV, DVD, etc. But I miss support for air conditioning, DVB-T TV card for notebook. Is it possible to add these types of devices to your support?
edit: OK, so every app I saw on google play is based on internet database, but what if I have file with code to my device? Is it possible to add support for manual IR codes file upload for some special devices? There is possibility to download files from some sites (e.g. http://irremote.psiloc.com)
BTW, Im in for alpha testing if you want...
Click to expand...
Click to collapse
Customisability is what Im waiting for : Yes me too as I used and continue to use Pronto remote and these one IMO are the most customizable out there.
So the basis of this project is to make it as customizable as Pronto remotes...that is ambitious
Having a remote on your Galaxy S4 is NICE but if you think about it will you use it really as such? an universal remote control? I don't think so BUT you might in couple years ( when the device is obsolete ) to use it as such assuming it does a good job as any universal remote...then it makes sense.. The GS4 beam though seems relatively narrow / weak well comparing with a pronto remote, it is OK but need to be more aimed to the device... Hence using a Gateway to something running on a PC or other devices is a +.
The "activities" in the APP is kind of like launcher ( of course less nice currently ) where you can send IR from the GS4 or actually anything via TCP to a server to either send again IR via USB-UIRT or Plusgwise (a smart plug that monitors also energy consumption). This gateway part I will provide later because the server is written using Python and actually runs on my FritzBox router and it be I guess to complicated for most people to MOD it to make it work for them assuming they have the USB-UIRT dongle or even Plugwise smart plugs. So when I heard GS4 will have IR I though it is time I start to share what I did and later one this gateway will come. Also button could be coupled to scripts...using
android-scripting
Furthermore using DEVICE like JB Lightman : This is a cute device that runs by itself a little box that convert IR to most cheap FM switchers or what ever you can think of to further control you house. For example I was out of my home for a month, remotely can activate web cam ( power one the cheap FM plug ) then switch on TV via IR change channel what ever...as if at home...
Does not make much sense but can simulate presence....
But I miss support for air conditioning, DVB-T TV card for notebook. Is it possible to add these types of devices to your support?
....but what if I have file with code to my device? Is it possible to add support for manual IR codes
Yes you can directly in the APP see the picture attached surely it be a pain to enter in from the app (long codes) . The DEVICE database is an XML and as such you can edit it with what ever you want.
Cheers
JM
lukemo said:
+1 if you need a beta tester
Click to expand...
Click to collapse
Yes. This will by the way stay a fully FREE APP even if posted on Google.
I hope by this Sunday to post on my FTP the APP and the required files. I need to clean up / remove couple stuff like ICONS that are probably copyrighted.
Some other ICONS are freely avail on the internet and I will leave them. In any case you can just create your own stuff...
Also will need to do a README for basic usage. Well this should not be complicated basically the process is
1)install APK
2)copy the REMOTE folder to your SDCARD; this be the place activities (your remote screens) XML files and DATABASE XML will be saved as well as a folder containing PICTURES backgrounds etc for your remote screen and buttons
3)Go in device database and fetch remote codes and test one or all in a list picker ( hopefully you will find some of your devices) else try to find the pronto code of your device and edit the XML or edit it in the APP ( good luck that be a pain for long codes)
4)select the working code => this creates the DEVICE DB
5)Menu : Design an activity layout ; add controls ( buttons ) zoom places them where you want. This is currently OK but there is no alignment to grid or to other controls (align top bottom etc) implemented currently ( this will come) so placement work but is is a pain i.e.: to align/size neatly buttons
6)Save your screen layout ( the first one be your HOME and home buttons you create will jump to your other defined activities). Create layout for TV, STEREO etc....
7)Edit activity actions : Here you can BIND to the button in your activities to ANOTHER activity (JUMP) or AN IR code...this is a list so you can perform multiple actions jump to activity and or send IR codes. Pause / delay not implemented currently)
8)finally in menu select USE REMOTE. The DEFAULT activity name ( screen you create ) must be called HOME and use.
What is badely missing
1)alignment of controls in activity creation, grid aligments, possibly grouping / moving zoom of the grouped pictures
2)Better remote UI IE: when pressing button showing button pressed / de-pressed.
3)handling long press
4)Labels in activities and possibly standard object CheckBox, Radio, Spinner, ScrollBar
5)many more improvements. Like generating automatically an activity screen from a device found on the internet so that later on for each button an customer ICON can be set
6)Features : Since the activity are XML serialized as well as the DB it be nice and more convenient to create activities / devices from a PC making a .NET app...then transfer the XML file to the GS4.
The state though currently is functional for me and quite handy.
anyway more on this next week.
Cheers
JM
Awesome initiative.
Will follow this thread to see how it develops.
Awesome! Looking forward to seeing the progress. I'm also available for alpha and beta testing
Sent from my GT-I9505
Where's the download link?
Sent from my GT-I9505 using Tapatalk 2
It be there by Sunday
Sent from my GT-I9505 using Tapatalk 2
walda said:
+1
... tapat*lked
Click to expand...
Click to collapse
this +1
Odoslané z GT-I9505 cez Tapatalk 2
lukemo said:
Very interesting fir MySky HD Italy, not supported till now...thanks a lot
Click to expand...
Click to collapse
For MySky HD issue, after you setup TV select "set top box", select "Sky" under "brand" and after some failed codes it found the right code. It works for me (MySky HD Italy)
Good work and I'm going to be following along. I've done several prontos setups, both the old and the newer pro version so I have a couple thoughts. Its very difficult to have much automation without being able to set delays. Sometimes even direct dialing a tv channel wont work without an appropriate delay. You may want to reconsider putting this out there until you do add them because you are not going to be able to develop the application very far when people cant do (some) basic functions. You cant get feedback on something when people run into show stoppers before they can give it to you.
A would further this and say that having some basic four ways, keypads, and transport buttons along with at least adding the ability to add a text label to buttons would also be helpful as setting up a bunch of buttons and then trying to remember what they do can be a hard and really slow you down. I used to do a quick mock up of differnet setups on my prontos and to save time on what might be changed anyways I wouldn't label or customize them but it turned out the extra confusion took more time to sort out than it was to simply throw a quick label on them which I could change later and I eventually started doing that way from scratch.
I also agree with your thoughts on a pc interface. I know a lot of people wouldn't want that but if you get into these setups you end up having a lot of pages, jumps, macros, buttons, icons, etc and it would be hugely easier to deal with it all on the pc where you can view multiple pages similtaneously.
Anyhow good luck with it. I likely jump on when you get a little further along.
krabman said:
Good work and I'm going to be following along. I've done several prontos setups, both the old and the newer pro version so I have a couple thoughts. Its very difficult to have much automation without being able to set delays. Sometimes even direct dialing a tv channel wont work without an appropriate delay. You may want to reconsider putting this out there until you do add them because you are not going to be able to develop the application very far when people cant do (some) basic functions. You cant get feedback on something when people run into show stoppers before they can give it to you.
A would further this and say that having some basic four ways, keypads, and transport buttons along with at least adding the ability to add a text label to buttons would also be helpful as setting up a bunch of buttons and then trying to remember what they do can be a hard and really slow you down. I used to do a quick mock up of differnet setups on my prontos and to save time on what might be changed anyways I wouldn't label or customize them but it turned out the extra confusion took more time to sort out than it was to simply throw a quick label on them which I could change later and I eventually started doing that way from scratch.
I also agree with your thoughts on a pc interface. I know a lot of people wouldn't want that but if you get into these setups you end up having a lot of pages, jumps, macros, buttons, icons, etc and it would be hugely easier to deal with it all on the pc where you can view multiple pages similtaneously.
Anyhow good luck with it. I likely jump on when you get a little further along.
Click to expand...
Click to collapse
" I've done several prontos setups, both the old and the newer pro version "
I can see the pronto aficionado here.... I'm the same currently TSU9300. Lovely remote but so expensive even more than the SG4 ( 700 EUR 3 / 4 years ago!!). But still the best out there... So the goal is to try to mimic one in case it dies on me... I say mimic cause I know it is challenging at least to me as I'm relatively new to android programing and have relatively few hours a week on this project. But that is a challenge and I will learn a lot about android did already. All is there in android to get things close to these marvelous remotes... I'm a hobbyist "developer" and ONLY ANDROID allows this so hat down to Android...
PC interface: in a much, much later stage assuming I managed these challenges. Designing screen would be so much more easier yet I feel with Android it it possible to get it done really well all is there for that...
"Anyhow good luck with it "
I surely will need it. Hopefully this thread will not be a waste of anyone time, for the one that will try it...
Cheers
thanks